diff --git a/Modules.py b/Modules.py new file mode 100644 index 0000000..e8486fc --- /dev/null +++ b/Modules.py @@ -0,0 +1,75 @@ +#Natural Language Understanding +class NLU: + #Text analysys + def __init__(self, acts, arguments): + self.acts = acts + self.arguments = arguments + + def analyze(self, text): + #Turn text into frame + #return vector for further use + + act = "(greetings()&request(name))" + vector = [[0],[1,0]] + return vector + +#Dialogue policy +class DP: + #Module decide what act takes next + def __init__(self, acts, arguments): + self.acts = acts + self.arguments = arguments + + def tacticChoice(self, frame_list): + act_vector = [0, 0] + return act_vector + +#Dialogue State Tracker +class DST: + #Contain informations about state of the dialogue and data taken from user + def __init__(self, acts, arguments): + self.acts = acts + self.arguments = arguments + self.frame_list= [] + + #store new act into frame + def store(self, frame): + self.frame_list.append(frame) + + def transfer(self): + return self.frame_list +#Natural Language Generator +class NLG: + def __init__(self, acts, arguments): + self.acts = acts + self.arguments = arguments + + def vectorToText(self, act_vector): + if(act_vector == [0, 0]): + return "Cześć, mam na imię Mateusz" + return "Nie rozumiem Cię" + +class Run: + def __init__(self): + self.acts={ + 0: "greetings", + 1: "request", + } + self.arguments={ + 0: "name" + } + self.nlu = NLU(self.acts, self.arguments) + self.dp = DP(self.acts, self.arguments) + self.nlg = NLG(self.acts, self.arguments) + self.dst = DST(self.acts, self.arguments) + + def process(self, command): + act = self.nlu.analyze(command) + self.dst.store(act) + dest_act = self.dp.tacticChoice(self.dst.transfer()) + return self.nlg.vectorToText(dest_act) + +run = Run() +while(1): + message = input("Napisz coś: ") + print(run.process(message)) \ No newline at end of file