Grammar extension

This commit is contained in:
Adrian Klessa 2024-05-11 19:41:13 +02:00
parent d1758cfcef
commit 2f91de8a22
2 changed files with 21 additions and 3 deletions

View File

@ -6,13 +6,12 @@ public <hello> = <hej_siema> <who_are_you> | witam system | dzien dobry | czesc
public <welcomemsg> = czesc jestem agentem dialogowym przyjmujacym zamowienia w restauracji moge doradzic ci w wyborze odpowiedniej pozycji z menu w czym moge ci pomoc ;
public <ack> = potwierdzam | tak | tak potwierdzam | tak to wszystko | to poprosze | super to zatem wszystko | oki | to odbiore ;
public <ack> = potwierdzam | tak | tak potwierdzam | tak to wszystko | to poprosze | super to zatem wszystko | oki | to odbiore | wszystko jest ok dziekuje;
<hej_siema> = hej | siema | czesc | witam ;
<who_are_you> = w czym mozesz mi pomoc | w czym mi mozesz pomoc | jakim botem jestes | czym sie zajmujesz ;
public <rezerwuj> = chcialbym zarezerwowac stolik <dzien_rezerwacji> <godzina_rezerwacji> <liczba_osob> ;
<dzien_rezerwacji> = (na | w) <dzien> {day};
@ -30,3 +29,11 @@ public <rezerwuj> = chcialbym zarezerwowac stolik <dzien_rezerwacji> <godzina_re
<liczba_osob> = (na | dla) <liczba> {size} osob;
<liczba> = dwie | dwoch | trzy | trzech | cztery | czterech | piec | pieciu | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
public <platnosc> = [zaplace] <metoda_platnosci> {payment_method} | poprosze <metoda_platnosci>;
<metoda_platnosci> = (karta | gotowka | blikiem) [<miejsce_platnosci>] ;
<miejsce_platnosci> = (na miejscu | przy odbiorze | z gory);
public <bye> = (dobrze nie moge sie juz doczekac | do widzenia | dziekuje milego dnia);

View File

@ -1,6 +1,15 @@
import os
import pandas as pd
import jsgf
from unidecode import unidecode
import string
def decode_prompt(prompt):
prompt_decoded = unidecode(prompt)
translator = str.maketrans('', '', string.punctuation)
prompt_decoded = prompt_decoded.translate(translator)
return prompt_decoded
grammar = jsgf.parse_grammar_file('book.jsgf')
data_files = []
@ -23,8 +32,10 @@ for df in data_files:
user_speech_rows = df[df['agent'] == "user"]
user_speeches = user_speech_rows["message"]
entries_count = len(user_speeches)
parsed = user_speeches.apply(
lambda x: bool(grammar.find_matching_rules(x)))
lambda x: bool(grammar.find_matching_rules(decode_prompt(x))))
true_count = parsed.sum()
false_count = len(parsed) - true_count
recognized += true_count