Merge branch 'dummy'

This commit is contained in:
Anna Nowak 2021-04-25 12:09:02 +02:00
commit b3ec608ae7

View File

@ -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
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))