Zadanie 10. CMS wielojęzycznego portalu firmowego z

Transkrypt

Zadanie 10. CMS wielojęzycznego portalu firmowego z
Zadanie 10. CMS wielojęzycznego portalu firmowego z „inteligentnym asystentem” – chatbotem oraz NLP
System zarządzania treścią (Content Management System, CMS) jest to aplikacja internetowa, pozwalająca na łatwe
utworzenie serwisu WWW oraz jego późniejszą aktualizację i rozbudowę przez redakcyjny personel nietechniczny, tzn.
osoby, które nie posiadają umiejętności programowania aplikacji webowych. Kształtowanie treści i sposobu ich
prezentacji w serwisie internetowym zarządzanym przez CMS odbywa się za pomocą prostych w obsłudze interfejsów
użytkownika, zazwyczaj w postaci stron WWW, zawierających rozbudowane formularze i moduły.
Chatbot (chatterbot / linguabot) – umożliwia prowadzenie konwersacji przy użyciu języka naturalnego lub komunikatora
tekstowego. Chatboty są używane na stronach internetowych jako interaktywne, animowane postacie, zastępujące
żywych konsultantów. Odpowiadają zwykle na pytania z zakresu towarów i usług oferowanych przez firmę.
Charakterystyka chatbotów: https://pl.wikipedia.org/wiki/Chatbot
Przetestuj przykładowe chatboty np. http://www.chatbot.pl/, http://www.chatbot4u.com/pl
Popularny sposób tworzenia bazy wiedzy chatbotów z wykorzystaniem XML-a: https://pl.wikipedia.org/wiki/AIML
Silnik AI Google’a udostępniony ze źródłami, który można również wykorzystać we własnych aplikacjach:

http://www.dobreprogramy.pl/Maszynowe-uczenie-sie-teraz-dla-kazdego.-Google-otworzylo-silnik-AI-TensorFlow,News,68071.html
 https://www.tensorflow.org/
1. Stwórz szablon systemu zarządzania treścią CMS, który pozwala zalogowanemu administratorowi na pełną
konfigurację wyświetlanych treści, w ramach podanych niżej elementów portalu firmowego.
2. Firmowy CMS ma składać się z trzech części:
a. górna część – podłużne logo firmy, do jego konfiguracji administrator wskazuje lokalny plik do przesłania na
serwer, w razie potrzeby powinna być możliwość zastąpienia istniejącego Logo nowym, przez ponowne
wskazanie kolejnego pliku do wyświetlenia w charakterze logo,
b. menu: lewa część ekranu – elementy stałe – konfigurowalna jest jedynie treść wyświetlana w prawej części
ekranu, po kliknięciu na dany element menu,
c. część właściwa: prawa część ekranu – konfigurowalna część pojawiająca się po kliknięciu stałych elementów
menu umieszczonych po lewej stronie.
3. Funkcjonalność systemu
a. Administrator po zalogowaniu (login/hasło - admin/admin) wchodzi do EDYCJI portalu, która pozwala na
kliknięcie elementu menu po lewej stronie ekranu, w wyniku czego po prawej stronie wyświetli się w oknie
wizualnego edytora np. CKEditor, treść przypisana obecnie do tego elementu, treść ma być trzymana w BD,
przydatne linki:
i. https://pl.wikipedia.org/wiki/CKEditor
ii. http://ckeditor.com/
b. Zwykli użytkownicy mogą jedynie przeglądać portal poprzez klikanie elementów menu z lewej strony i
wyświetlanie w prawej części okna przypisanych do nich treści.
4. Struktura menu (firma może być fikcyjna)
a. Strona główna – podstawowe informacje o firmie.
b. Kontakt – adres, telefon, mail, fb itd.
c. Jak do nas dotrzeć – fragment internetowej mapy danego regionu z Google wraz z mechanizmem
poruszania się po niej – podpowiedź dotyczącą sposobu umieszczenia mapki na stronie:
i. https://support.google.com/maps/answer/144361?co=GENIE.Platform%3DDesktop&hl=pl
ii. http://gmapsapi.com/ - inne pomocne informacje dotyczące Google maps.
d. Historia firmy – fikcyjna historia firmy.
e. Referencje – fikcyjne referencje firmy.
f. Oferta – fikcyjna oferta handlowa firmy.
g. Chatbot – opcja wyświetlająca formularz umożliwiający wprowadzenie i przesłanie na serwer jednego
wiersza tekstu, który będzie traktowany jak pytanie do „inteligentnego asystenta” - Chatbota. Pytanie to ma
być zapisane w BD, a odpowiedź na nie ma być również pobrana z BD. Podczas wyboru właściwej
odpowiedzi aplikacja powinna ignorować różnicę między dużymi i małymi literami oraz ignorować znaki
przystankowe oraz odpowiadać w następujący sposób na kilka pytań:
i. cześć lub czesc lub dzień dobry lub hejka lub siema lub witaj lub witam -> Dzień dobry
ii. kontakt -> Dane kontaktowe z BD,
iii. historia firmy lub historia -> Historia firmy z BD,
iv. referencje -> Referencje z BD,
v. oferta -> Oferta firmy z BD,
vi. ? lub h -> lista pytań, na które chatbot jest w stanie odpowiedzieć,
vii. na pozostałe pytania Chatbot ma odpowiadać -> Niestety nie umiem odpowiedzieć na to pytanie.
h. Każda grupa powinna dodatkowo oprogramować obsługę 10 zapytań do chatbota z jednej z poniżej
wymienionych grup zagadnień:
i. Podstawowe pytania zadawane podczas zagajania rozmowy oraz odpowiednie odpowiedzi, np.
 Jak się nazywasz -> Nazywam się euGeniusz.
 Ile masz lat -> Mam 100 lat. itd.
ii. Odpowiadanie na pytania, na które nie ma zaprogramowanych odpowiedzi, poprzez cykliczne
cytowanie wyświechtanych sformułowań, które nic nie znaczą w danym kontekście np. na dowolne
pytanie można odpowiedzieć – Gadał dziad do obrazu, a obraz ni razu.
iii. Odpowiadanie na pytania, na które nie ma zaprogramowanych odpowiedzi, poprzez próbę
odpowiedzi pytaniem na pytanie, np. – A Ty i tutaj cytat zadanego pytania.
iv. Odpowiadanie na pytania, na które nie ma zaprogramowanych odpowiedzi w następujący sposób:
Niestety nie umiem odpowiedzieć na to pytanie, ale Dane kontaktowe są następujące i tu należy
podać dane z BD. Przy następnym pytaniu, na które nie ma zaprogramowanej odpowiedzi powinna
być wypowiedź dotycząca kolejnych informacji z BD dotyczących firmy, czyli historii firmy itd.
v. Odpowiadanie na pytania, na które nie ma zaprogramowanych odpowiedzi w następujący sposób:
Niestety nie umiem odpowiedzieć na to pytanie, ale Mr Google podpowiada i tu należy wyświetlić
odpowiedź na zapytanie rozmówcy przekierowane do przeszukiwarki Google.
i. UWAGA: bazę wiedzy chatbotów często tworzy się w AIML z wykorzystaniem XML-a, ale w tym konkretnym
przypadku można tę aplikację uprościć i odpowiadać tylko na dokładnie pasujące pytania, a wszystkie inne
traktować, jako niezrozumiałe. Jednak w przypadku tworzenia takiego „inteligentnego asystenta” na
potrzeby pracy inżynierskiej lub na potrzeby komercyjne należy bezwzględnie stworzyć asystenta zgodnie z
regułami tworzenia chatbotów. Zachęcam ambitniejszych studentów do stworzenia chatbota zgodnie z
regułami, jednak uproszczenie realizacji zadania nie ma wpływu na zaliczenie zadania.
Przykładowy wygląd portalu, gdy Administrator nie jest zalogowany, przy włączonej opcji podglądu elementu menu o
nazwie Jak do nas dotrzeć
Obrazek
Strona główna
Kontakt
Jak do nas dotrzeć
Historia firmy
Referencje
Oferta
Chatbot
Tutaj się mieści nasza firma:
ul. Kwiatowa 6
Lokalizacja firmy z
Świdwin
Google Maps
tel. 550 333 111
[email protected]
uslugiIT.swidwin.pl
Admin - logowanie
Przykładowy wygląd portalu po zalogowaniu administratora, przy włączonej opcji edycji elementu menu o
nazwie Referencje
Obrazek
Strona główna
Kontakt
Jak do nas dotrzeć
Historia firmy
Referencje
Oferta
Chatbot
Okno wizualnego
edytora CKEdit
Lista referencji:
- stworzenie portalu Totalizatora Sportowego,
- stworzenie portalu Ministerstwa Skarbu .
Admin zalogowany
Przetwarzanie języka naturalnego (natural language processing, NLP) – interdyscyplinarna dziedzina, łącząca
zagadnienia AI i językoznawstwa, zajmująca się automatyzacją analizy, rozumienia, tłumaczenia i generowania języka
naturalnego przez komputer. System generujący język naturalny przekształca informacje zapisane w bazie danych
komputera na język łatwy do odczytania i zrozumienia przez człowieka. Zaś system rozumiejący język naturalny
przekształca próbki języka naturalnego na bardziej formalne symbole, łatwiejsze do przetworzenia dla programów
komputerowych. Wiele problemów NLP wiąże się zarówno z generacją, jak i rozumieniem języka np. model
morfologiczny zdania (struktura słów), który komputer powinien zbudować, jest potrzebny zarazem do tego by zdanie
było zrozumiałe, jak i gramatycznie poprawne. NLP pokrywa się również w znacznej mierze z działem lingwistyki
komputerowej i często uważany jest za poddział AI. Natomiast termin język naturalny używany jest, by odróżnić języki
ludzkie (np. angielski, czy polski) od języka formalnego czy komputerowego (jak C++, Java lub Prolog).
(źródło: pl.wikipedia.org/wiki/Przetwarzanie_j%C4%99zyka_naturalnego)
Istnieje wiele mechanizmów tłumaczenia jednego języka naturalnego na drugi. Wiele z nich jest wspieranych przez
światowe koncerny np. Google, chociaż to wsparcie w pewnym zakresie może być nieodpłatne, a od pewnego zakresu
jest już usługą komercyjną, jest to uzależnione zwykle od wielkości tłumaczonego tekstu np. 2000 znaków w jednym
zapytaniu lub 100.000 znaków/dzień z danego adresu IP:
 Tłumaczenie witryn internetowych https://translate.google.com/manager/website/
 Informacje o ograniczeniach korzystania z usługi w wersji bezpłatnej oraz o kosztach korzystania z wersji
komercyjnej https://cloud.google.com/translate/pricing
Jeśli dana aplikacja, portal internetowy lub inna forma elektronicznego przekazu lub przetwarzania danych była dobrze
przystosowana do mniej lub bardziej zautomatyzowanych form internacjonalizacji (umiędzynarodowienia), należy
trzymać się określonych zasad popularyzowanych przez twórców oprogramowania, które od wielu lat jest rozwijane dla
wielu nacji np. Linux, Android, Windows, MacOSX, MySQL, PostreSQL, WordPress, Joomla, phpBB i inne. Zagadnienia te
są szerzej opisane:
 http://blog.performancemedia.pl/seo/witryny-miedzynarodowe-kilka-porad-dla-webdeveloperow
 http://www.yiiframework.com/doc/guide/1.0/pl/topics.i18n
 http://www.cmlocalization.pl/i18n.php
5. Przetestuj jedną z funkcjonalności automatycznego tłumaczenia portali udostępnianą przez koncern Google.
a. Utwórz plik test.htm zawierający kilka zdań tekstu w języku polskim.
b. Umieść go na swoim hostingu i przetestuj, czy wyświetla się prawidłowo.
c. Dodaj w początkowej części <body> tego pliku następujący kod:
<a href="http://translate.google.com/translate?hl=pl&amp;ie=UTF8&amp;sl=pl&amp;tl=en&amp;u=http://adres_twojego_pliku"
target="_blank">tłumaczenie</a><br>
d. Przetestuj wywoływanie usługi tłumacza w stosunku do pliku test.htm.
e. Opcja targer=”_blank” powoduje, że tłumaczenie otwiera się w nowym oknie, jeśli nie chcesz takiego,
zachowania się aplikacji możesz wybrać inne opcje np. „_self”, wówczas tłumaczenie wyświetli się w tym
samym oknie.
f. Przetestuj działanie tłumacza na swoim portalu – szczególnie język białoruski, rosyjski, arabski, angielski.
Zwróć uwagę, że w niektórych sytuacjach pewne elementy szablonu mogą nie zostać poprawnie
przetłumaczone.
6. Stwórz sprawozdanie i zgłoś zakończenie realizacji zadania.