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&ie=UTF8&sl=pl&tl=en&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.