""" Przykład user: Cześć, jak masz na imię? system: Witaj, nazywam się Dia. """ class NLU: #Natural Language Understanding """ Moduł odpowiedzialny za analizę tekstu. W wyniku jego działania tekstowa reprezentacja wypowiedzi użytkownika zostaje zamieniona na jej reprezentację semantyczną, najczęściej w postaci ramy. Wejście: Tekst Wyjście: Akt użytkownika (rama) """ def Analizuj(self, text): #Analiza Tekstu wprowadzonego przez użytkownika i zamiana na akt (rama) print("Analiza Tekstu: " + text) akt = "(greetings()&request(name))" print("Akt to: " + akt) #przerobienie na wektor rama = [[1],[1,0]] #1 wektor to greetings, a 2 wektor to request z argumentem "name" print("Zamiana na: ") print(rama) return rama class DST: #Dialogue State Tracker """ Moduł odpowiedzialny za śledzenie stanu dialogu. Przechowuje informacje o tym jakie dane zostały uzyskane od użytkownika w toku prowadzonej konwersacji. Wejście: Akt użytkownika (rama) Wyjście: Reprezentacja stanu dialogu (rama) """ frame_List= [] def Przechowuj(self, rama): #Dodanie nowego aktu do listy print("\nDodanie do listy nowej ramy: ") print(rama) self.frame_List.append(rama) def Przekaz(self): print("Przekazanie dalej listy ram: ") print(frame_List) return self.frame_list class DP: """ Moduł decydujący o wyborze kolejnego aktu, który ma podjąć system prowadząc rozmowę. Wejście: Reprezentacja stanu dialogu (rama) Wyjście: Akt systemu (rama) """ def ObierzTaktyke(self, Frame_List): #Obieranie taktyki na podstawie aktów usera. Bardzo ważna jest kolejność dodawanych do Frame_List wartości. return akt_rama class NLG: """ Moduł, który tworzy reprezentację tekstową aktu systemowego wybranego przez taktykę dialogu. Wejście: Akt systemu (rama) Wyjście: Tekst """ def ChangeToText(self, akt_rama): #Funkcja zamieniająca akt systemu na tekst rozumiany przez użytkownika. return text