System_Dialogowy_Janet/Makiety.py
2021-04-19 17:03:06 +02:00

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