Merge branch 'dummy'
This commit is contained in:
commit
b3ec608ae7
99
Makiety.py
99
Makiety.py
@ -13,17 +13,22 @@ class NLU: #Natural Language Understanding
|
|||||||
|
|
||||||
Wyjście: Akt użytkownika (rama)
|
Wyjście: Akt użytkownika (rama)
|
||||||
"""
|
"""
|
||||||
def Analizuj(self, text):
|
def __init__(self, acts, arguments):
|
||||||
#Analiza Tekstu wprowadzonego przez użytkownika i zamiana na akt (rama)
|
self.acts = acts
|
||||||
print("Analiza Tekstu: " + text)
|
self.arguments = arguments
|
||||||
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
|
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
|
class DST: #Dialogue State Tracker
|
||||||
"""
|
"""
|
||||||
@ -33,17 +38,24 @@ class DST: #Dialogue State Tracker
|
|||||||
|
|
||||||
Wyjście: Reprezentacja stanu dialogu (rama)
|
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("\nDodanie do listy nowej ramy: ")
|
||||||
print(rama)
|
print(rama)
|
||||||
self.frame_List.append(rama)
|
self.frame_list.append(rama)
|
||||||
|
|
||||||
def Przekaz(self):
|
|
||||||
|
def transfer(self):
|
||||||
print("Przekazanie dalej listy ram: ")
|
print("Przekazanie dalej listy ram: ")
|
||||||
print(frame_List)
|
print(self.frame_list)
|
||||||
return self.frame_list
|
return self.frame_list
|
||||||
|
|
||||||
class DP:
|
class DP:
|
||||||
@ -54,10 +66,17 @@ class DP:
|
|||||||
|
|
||||||
Wyjście: Akt systemu (rama)
|
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.
|
def choose_tactic(self, frame_list):
|
||||||
return akt_rama
|
"""
|
||||||
|
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:
|
class NLG:
|
||||||
"""
|
"""
|
||||||
@ -67,6 +86,42 @@ class NLG:
|
|||||||
|
|
||||||
Wyjście: Tekst
|
Wyjście: Tekst
|
||||||
"""
|
"""
|
||||||
def ChangeToText(self, akt_rama):
|
def __init__(self, acts, arguments):
|
||||||
#Funkcja zamieniająca akt systemu na tekst rozumiany przez użytkownika.
|
self.acts = acts
|
||||||
return text
|
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))
|
Loading…
Reference in New Issue
Block a user