From bbdf2b1b17213483c9828b2cdf6c9be199d80c94 Mon Sep 17 00:00:00 2001 From: Anna Nowak Date: Sun, 25 Apr 2021 11:44:21 +0200 Subject: [PATCH] changed comments, sample system --- Makiety.py | 99 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 77 insertions(+), 22 deletions(-) diff --git a/Makiety.py b/Makiety.py index 40482c0..f382823 100644 --- a/Makiety.py +++ b/Makiety.py @@ -13,17 +13,22 @@ class NLU: #Natural Language Understanding 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) + def __init__(self, acts, arguments): + self.acts = acts + self.arguments = arguments - return rama + def analyze(self, text): + """ + Analiza Tekstu wprowadzonego przez użytkownika i zamiana na akt (rama) + """ + print("Analiza Tekstu: " + text) + act = "(greetings()&request(name))" + print("Akt to: " + act) + #przerobienie na wektor + act_vector = [[0],[1,0]] #1 wektor to greetings, a 2 wektor to request z argumentem "name" + print("Zamiana na: ") + print(act_vector) + return act_vector class DST: #Dialogue State Tracker """ @@ -33,17 +38,24 @@ class DST: #Dialogue State Tracker Wyjście: Reprezentacja stanu dialogu (rama) """ - frame_List= [] + def __init__(self, acts, arguments): + self.acts = acts + self.arguments = arguments + self.frame_list= [] - def Przechowuj(self, rama): - #Dodanie nowego aktu do listy + + def store(self, rama): + """ + Dodanie nowego aktu do listy + """ print("\nDodanie do listy nowej ramy: ") print(rama) - self.frame_List.append(rama) + self.frame_list.append(rama) - def Przekaz(self): + + def transfer(self): print("Przekazanie dalej listy ram: ") - print(frame_List) + print(self.frame_list) return self.frame_list class DP: @@ -54,10 +66,17 @@ class DP: Wyjście: Akt systemu (rama) """ + def __init__(self, acts, arguments): + self.acts = acts + self.arguments = arguments - 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 + + def choose_tactic(self, frame_list): + """ + Obieranie taktyki na podstawie aktów usera. Bardzo ważna jest kolejność dodawanych do frame_list wartości. + """ + act_vector = [0, 0] + return act_vector class NLG: """ @@ -67,6 +86,42 @@ class NLG: Wyjście: Tekst """ - def ChangeToText(self, akt_rama): - #Funkcja zamieniająca akt systemu na tekst rozumiany przez użytkownika. - return text \ No newline at end of file + def __init__(self, acts, arguments): + self.acts = acts + self.arguments = arguments + + + def change_to_text(self, act_vector): + """ + Funkcja zamieniająca akt systemu na tekst rozumiany przez użytkownika. + """ + if(act_vector == [0, 0]): + return "Cześć, mam na imię Janet" + return "Nie rozumiem" + + +class Janet: + def __init__(self): + self.acts={ + 0: "greetings", + 1: "request", + } + self.arguments={ + 0: "name" + } + self.nlg = NLG(self.acts, self.arguments) + self.dp = DP(self.acts, self.arguments) + self.dst = DST(self.acts, self.arguments) + self.nlu = NLU(self.acts, self.arguments) + + + def process(self, command): + act = self.nlu.analyze(command) + self.dst.store(act) + dest_act = self.dp.choose_tactic(self.dst.transfer()) + return self.nlg.change_to_text(dest_act) + +janet = Janet() +while(1): + text = input("Wpisz tekst: ") + print(janet.process(text)) \ No newline at end of file