diff --git a/book.jsgf b/book.jsgf index 8d51241..5212a08 100644 --- a/book.jsgf +++ b/book.jsgf @@ -6,13 +6,12 @@ public = | witam system | dzien dobry | czesc public = czesc jestem agentem dialogowym przyjmujacym zamowienia w restauracji moge doradzic ci w wyborze odpowiedniej pozycji z menu w czym moge ci pomoc ; -public = potwierdzam | tak | tak potwierdzam | tak to wszystko | to poprosze | super to zatem wszystko | oki | to odbiore ; +public = potwierdzam | tak | tak potwierdzam | tak to wszystko | to poprosze | super to zatem wszystko | oki | to odbiore | wszystko jest ok dziekuje; = hej | siema | czesc | witam ; = w czym mozesz mi pomoc | w czym mi mozesz pomoc | jakim botem jestes | czym sie zajmujesz ; - public = chcialbym zarezerwowac stolik ; = (na | w) {day}; @@ -30,3 +29,11 @@ public = chcialbym zarezerwowac stolik = (na | dla) {size} osob; = dwie | dwoch | trzy | trzech | cztery | czterech | piec | pieciu | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10; + +public = [zaplace] {payment_method} | poprosze ; + + = (karta | gotowka | blikiem) [] ; + + = (na miejscu | przy odbiorze | z gory); + +public = (dobrze nie moge sie juz doczekac | do widzenia | dziekuje milego dnia); \ No newline at end of file diff --git a/evaluate.py b/evaluate.py index a14898a..68df562 100644 --- a/evaluate.py +++ b/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