From 505bde0aaf574266f94c1521a100485c4dd520f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Raczy=C5=84ski?= Date: Tue, 30 Apr 2024 00:10:20 +0200 Subject: [PATCH] =?UTF-8?q?pr=C3=B3ba=20dodania=20stworzenia=20gramatyki?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Main.py | 2 +- NaturalLanguageAnalyzer.py | 2 +- grammar_1.jsgf | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 grammar_1.jsgf diff --git a/Main.py b/Main.py index 75dbbba..dd61ebc 100644 --- a/Main.py +++ b/Main.py @@ -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) diff --git a/NaturalLanguageAnalyzer.py b/NaturalLanguageAnalyzer.py index 2b94134..cc454c2 100644 --- a/NaturalLanguageAnalyzer.py +++ b/NaturalLanguageAnalyzer.py @@ -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) diff --git a/grammar_1.jsgf b/grammar_1.jsgf new file mode 100644 index 0000000..665f192 --- /dev/null +++ b/grammar_1.jsgf @@ -0,0 +1,35 @@ +#JSGF V1.0 UTF-8 pl; + +grammar rezerwacja; + +public = (chciałbym zarezerwować | proszę zarezerwować) (pokój | nocleg) w ; + +public = (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 = [na ] | {termin}; + +public = [rok]; + +public = (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 = (stycznia | lutego | marca | kwietnia | maja | czerwca | lipca | sierpnia | września | października | listopada | grudnia); + +public = (20 | 21) ; + +public = (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9); + +public = (rano | wieczorem | wieczór | popołudnie | noc | ranem | południe | południem) | [i ] | ; + +public = (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 = (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9) | (10 | 20 | 30 | 40 | 50); + +public = (ten piątek | dzisiejszego wieczoru | dzisiejszego dnia | dziś | weekend | nadchodzący weekend | następny weekend); + +public = (najbliższy | nadchodzący | przyszły); + +public = (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 = (Warszawie | Wrocławiu | Poznaniu) {lokalizacja}; + +public = (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);