72 lines
2.2 KiB
Python
72 lines
2.2 KiB
Python
|
"""
|
||
|
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
|