próba dodania stworzenia gramatyki

This commit is contained in:
Krzysztof Raczyński 2024-04-30 00:10:20 +02:00
parent a9cb38f82a
commit 505bde0aaf
3 changed files with 37 additions and 2 deletions

View File

@ -4,7 +4,7 @@ from DialoguePolicy import DialoguePolicy
from NaturalLanguageGeneration import NaturalLanguageGeneration
if __name__ == "__main__":
text = "chciałbym zarezerwować hotel"
text = "chciałbym zarezerwować pokój z balkonem 1 stycznia w Warszawie"
nla = NaturalLanguageAnalyzer()
user_act = nla.process(text)
print(user_act)

View File

@ -9,7 +9,7 @@ class NaturalLanguageAnalyzer:
# return user_act
def process(self, text):
with open('grammar.jsgf', 'r', encoding='utf-8') as f:
with open('grammar_1.jsgf', 'r', encoding='utf-8') as f:
content = f.read()
book_grammar = jsgf.parse_grammar_string(content)
matched = book_grammar.find_matching_rules(text)

35
grammar_1.jsgf Normal file
View File

@ -0,0 +1,35 @@
#JSGF V1.0 UTF-8 pl;
grammar rezerwacja;
public <rezerwacja> = (chciałbym zarezerwować | proszę zarezerwować) (pokój | nocleg) <opcje_rezerwacji> <termin> w <lokalizacja>;
public <opcje_rezerwacji> = (z widokiem na morze | nad Bałtykiem | z balkonem | ze śniadaniami do łóżka | dla całej rodziny | dla jednej osoby | dla 2 osób | dla 2 dorosłych i 2 dzieci) {opcje};
public <termin> = <data> [na <czas>] | <przedzial_czasu> {termin};
public <data> = <dzien> <miesiac> [rok];
public <dzien> = (1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31);
public <miesiac> = (stycznia | lutego | marca | kwietnia | maja | czerwca | lipca | sierpnia | września | października | listopada | grudnia);
public <rok> = (20 | 21) <cyfry>;
public <cyfry> = (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9);
public <czas> = (rano | wieczorem | wieczór | popołudnie | noc | ranem | południe | południem) | <godzina> [i <minuta>] | <przedzial_czasu>;
public <godzina> = (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12) | (13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23);
public <minuta> = (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9) | (10 | 20 | 30 | 40 | 50);
public <przedzial_czasu> = (ten piątek | dzisiejszego wieczoru | dzisiejszego dnia | dziś | weekend | nadchodzący weekend | następny weekend);
public <weekend> = (najbliższy | nadchodzący | przyszły);
public <dlugosc_pobytu> = (cały pobyt | 3 godziny | 4 godziny | 5 godzin | 6 godzin | 7 godzin | 8 godzin | 9 godzin | 10 godzin | 11 godzin | 12 godzin | 13 godzin | 14 godzin | 15 godzin | 16 godzin | 17 godzin | 18 godzin | 19 godzin | 20 godzin | 21 godzin | 22 godziny | 23 godziny | 24 godziny);
public <lokalizacja> = (Warszawie | Wrocławiu | Poznaniu) {lokalizacja};
public <opcje_pokoj> = (z widokiem na wieże eifla | z widokiem na morze | z widokiem na morze | z widokiem na morze | z widokiem na morze | z widokiem na morze | z widokiem na morze | z widokiem na morze);