edit grammar1

This commit is contained in:
Eugene 2023-05-03 21:59:32 +02:00
parent 94acf7f8e7
commit c4abf9c60f
2 changed files with 35 additions and 79 deletions

View File

@ -1,6 +1,10 @@
import jsgf
from pathlib import Path
import os
book_grammar = jsgf.parse_grammar_file('grammar1.jsgf')
__location__ = Path().resolve()
book_grammar = jsgf.parse_grammar_file(os.path.join(__location__, "grammar1.jsgf"))
book_grammar
@ -31,10 +35,10 @@ def nlu(utterance):
utterance = 'chciałbym zarezerwować stolik na jutro na godzinę dwunastą trzydzieści na pięć osób'
utterance = 'dzień dobry chcę kupić mięso wołowe'
matched = book_grammar.find_matching_rules(utterance)
matched
nlu('chciałbym zarezerwować stolik na jutro na godzinę dziesiątą dla trzech osób')
nlu('dzień dobry chcę kupić mięso wołowe')
get_dialog_act(matched[0])

View File

@ -1,107 +1,59 @@
#JSGF V1.0;
#JSGF V1.0 UTF-8 pl;
grammar online_shopping;
/
* Polecenia użytkownika
*/
public <command> = (dodaj | usuń | zaktualizuj | przeczytaj | kontynuuj | przejdź_do | sprawdź | zakończ);
/
* Lista produktów
*/
public <products> = (jajka | chleb | mleko | ser | woda | cukier | sól | mięso_wołowe | mięso_kurczak | mięso_indyk | mięso_wieprzowe | bułka_tarta | kajzerka);
/
* Wszystkie produkty w sklepie
*/
public <all_products> = (<products>);
/
* Wszystkie typy mięsa mielonego
*/
public <meat_types> = (mięso_wołowe | mięso_kurczak | mięso_indyk | mięso_wieprzowe);
/
* Wszystkie jednostki miary
*/
public <units> = (kg | dag | g | sztuki);
/
* Komendy dotyczące koszyka
*/
public <cart_command> = (dodaj | usuń | zaktualizuj | przeczytaj | kontynuuj | przejdź_do | sprawdź | pusty_koszyk);
/
* Pytania użytkownika
*/
public <question> = (jaka_jest_cena | kiedy_mogę_odebrać | jakie_są_dostępne_produkty | jakie_jest_cena | jaki_jest_stan_magazynowy | czy_chcę_zapłacić_online | jakie_są_opłaty | jakie_są_promocje | jakie_są_godziny_otwarcia);
/
* Witamy użytkownika w systemie
*/
public <welcome> = (Witaj użytkowniku <number> w systemie zakupów sieci sklepów spożywczych "Galaktyczny Skład".);
/
* Powitanie użytkownika w sklepie
*/
public <greeting> = (Dzień dobry | Cześć | Witaj);
/
* Wszystkie pytania użytkownika
*/
public <all_questions> = (<question>)+;
/
* Wszystkie komendy dotyczące koszyka
*/
public <all_cart_commands> = (<cart_command>)+;
/
* Dialog
/
public <dialog> = <welcome> <greeting> <command> (<products> | <meat_types> | <units> | koszyk | żadne | <all_cart_commands> | <all_questions>)+;
public <request> = (dla jakiego rodzaju sklepów działa system |
chcę kupić |
zamówienie |
potrzebuję zakupów |
jakie sklepy oferuje system);
public <request> = dla jakiego rodzaju sklepów działa system |
chcę kupić |
zamówienie |
potrzebuję zakupów |
jakie sklepy oferuje system ;
public <list> = {(<products> | <meat_types> | <units>)+};
public <inform> = (w naszej ofercie znajdują się produkty spożywcze |
dodano <list> do koszyka |
karta lojalnościowa założona pomyślnie |
na numer telefonu zostanie wysłany sms z informacją gdy zakupy będą gotowe do odbioru |
dziękujemy za skorzystanie ze sklepu {<shopname>});
public <inform> = w naszej ofercie znajdują się produkty spożywcze |
dodano {<list>} do koszyka |
karta lojalnościowa założona pomyślnie |
na numer telefonu zostanie wysłany sms z informacją gdy zakupy będą gotowe do odbioru |
dziękujemy za skorzystanie ze sklepu {<shopname>} ;
public <deny> = (nie |
nie ten |
zmień |
nie chcę |
nie teraz |
nie tak |
cofnij |
usuń <productname> <brandname> z listy);
public <add_to_list> = (dodaj do listy zakupów <brandname>);
public <deny> = nie |
nie ten |
zmień |
nie chcę |
nie teraz |
nie tak |
cofnij |
usuń <productname> <brandname> z listy;
public <reqalts> = (ale może coś innego |
czy jest jakaś inna opcja);
public <inform> = dodaj do listy zakupów <brandname>;
public <reqalts> = ale może coś innego |
czy jest jakaś inna opcja ;
public <affirm> = tak |
zgoda |
oczywiście |
dokładnie |
pewnie |
jasne |
dobrze |
właśnie tak |
ok |
rozumiem ;
public <bye> = do widzenia |
dziękuję |
miłego dnia |
do zobaczenia ;
public <affirm> = (tak |
zgoda |
oczywiście);