Fully working NLU with book

Teraz wystarczy dodać następne kwestie w "book.jsfg"
This commit is contained in:
Dominik 2021-05-09 21:05:16 +02:00
parent aaadcecbd2
commit 7b53ff1361
2 changed files with 11 additions and 4 deletions

View File

@ -46,9 +46,11 @@ class NLU: #Natural Language Understanding
def test_nlu(self, utterance):
matched = self.book_grammar.find_matching_rules(utterance)
print(matched)
if matched:
return self.get_dialog_act(matched[0])
else:
return {'act': 'null', 'slots': []}
@ -134,7 +136,7 @@ class Janet:
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, jsgf.parse_grammar_file('test_book.jsgf'))
self.nlu = NLU(self.acts, self.arguments, jsgf.parse_grammar_file('book.jsgf'))
def test(self, command):
out = self.nlu.test_nlu(command)
@ -147,7 +149,8 @@ class Janet:
return self.nlg.change_to_text(dest_act)
janet = Janet()
print(janet.test('chciałbym zarezerwować stolik na jutro na godzinę dziesiątą dla trzech osób'))
print(janet.test('chciałbym się umówić na wizytę do Piotra Pająka na jutro')) #Testowy print na start
while(1):
print('\n')
text = input("Wpisz tekst: ")
print(janet.test(text))

View File

@ -4,9 +4,13 @@ grammar book;
public <greeting> = hej | cześć | elo | dzień dobry | witam | siemanko | siemanko witam w mojej kuchni | gitara siema;
<appointment> = chciałbym się umówić na wizytę <doctor> <dzien_rezerwacji>;
public <appointment> = chciałbym się umówić na wizytę <doctor> <dzien_rezerwacji>;
<doctor> = do [imie_lekarza] {doc_list};
public <appointment_test> = chciałbym się umówić na wizytę <dzien_rezerwacji>;
<doctor> = do <imie_lekarza> {doctor_name};
<imie_lekarza> = Jana Kolano | Tomasza Łokieto | Piotra Pająka;
<dzien_rezerwacji> = na <dzien> {day};