Grammar extension
This commit is contained in:
parent
d1758cfcef
commit
2f91de8a22
11
book.jsgf
11
book.jsgf
@ -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);
|
13
evaluate.py
13
evaluate.py
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user