update data and get function to print acts
This commit is contained in:
parent
6090d5d923
commit
48b0371578
@ -10,5 +10,5 @@ user Jestem wysoce niepocieszony z powodu braku trunków siarczystych, ale jako
|
||||
system Tak oczywiśćie nasza restauracja serwuje doskonałe tiramisu. Czy to wszystko? inform(dessert=tiramisu),reqmore()
|
||||
user Jeszcze pytanie czy w waszym obiekcie znajduje się toaleta, pytam ponieważ na google można znaleźć opinie, że trzeba korzystać z latryny? request(restroom)
|
||||
system Tak w naszym obiekcie znaduje się darmowa toaleta. Opinie na platformie goolge są w błędzie. inform(restroom=available)
|
||||
user Dobrze w takim razie dziękuję za informację i będę o tej 19. thankyou,inform(time=19:00)
|
||||
user Dobrze w takim razie dziękuję za informację i będę o tej 19. thankyou&inform(time=19:00)
|
||||
system Doskonale, w takim razie potwierdzam Pana rezerwację stolika na dziś wieczorem o godzinie 19:00. Życzę Panu miłego wieczoru w naszej restauracji. Do zobaczenia o 19:00! affirm(),bye()
|
||||
|
|
@ -74,7 +74,7 @@ system Przykro mi, ale nie wspieramy tej opcji płatności canthelp
|
||||
user Czy opakowanie na wynos są dodatkowo płatne? request(topic=”packaging”, value=”price”)
|
||||
system Nie, opakowania są wliczone w cenę potrawy. inform
|
||||
user Super to zatem wszystko ack&bye
|
||||
system W celu realizacji zamówienia proszę o podanie adresu dostawy oraz formy płatności. canthelp:missingslotvalue(type=”delivery”)&canthelp:missingslotvalue(type=”payment”)
|
||||
system W celu realizacji zamówienia proszę o podanie adresu dostawy oraz formy płatności. canthelp()&canthelp()
|
||||
user "Uniwersytetu Poznańskiego 4, 61-614 Poznań
|
||||
Sala D-3,
|
||||
płatność za pomocą kryptowalut" inform(delivery=”Uniwersytetu Poznańskiego 4, 61-614 Poznań Sala D-3”)&inform(payment=”kryptowalut”)
|
||||
|
|
@ -11,7 +11,7 @@ system Sałatka warzywna zawiera następujące składniki: ziemniaki, marchew, p
|
||||
system Jeśli chcesz, mogę zamówić wersję potrawy bez danego składnika. inform(topic=”alternative”)
|
||||
user chciałbym sałatke, która nie ma majonezy i jest swieza reqalts(include=”sałatka warzywna”, exclude=”majonez”, exclude=“nieświeża”)
|
||||
system Nasze potrawy zawsze są świeże, nasza restauracja i jej pracownicy spełniają wszystkie normy sanepidu. Dodałem do zamówienia sałatkę warzywną (bez majonezu). inform(topic=”świeżość”)
|
||||
user chciałbym bez sałatki jednak, a w miejscu tego kiszonke. Czy maci kiszonki w restauracji reqaltsinclude=”kiszonka”)
|
||||
user chciałbym bez sałatki jednak, a w miejscu tego kiszonke. Czy maci kiszonki w restauracji reqalts(include=”kiszonka”)
|
||||
system Usunąłem potrawę Sałatka warzywna z zamówienia. Przykro mi, w ofercie nie posiadamy potrawy kiszonka. canthelp
|
||||
user chodziło mi o kiszonki czyli ogorek kiszony, kimchi, kapusta kiszona itd reqalts(include=”ogorek kiszony, kimchi, kapusta kiszona”)
|
||||
system Mamy w ofercie kimchi. Czy dodać je do zamówienia? offer(value=”kimchi”)&expl-conf
|
||||
|
|
@ -1,5 +1,5 @@
|
||||
user Dzień dobry hello()
|
||||
system Czesc, jestem agentem dialogowym przyjmujacym zamowienia w restauracji. Moge doradzic ci w wyborze odpowiedniej pozycji z menu. W czym moge ci pomoc? welcomemsg()
|
||||
user Chciałbym zjeść 3-daniowy obiad z kuchni włoskiej. inform()
|
||||
user Chciałbym zjeść 3-daniowy obiad z kuchni włoskiej. inform(value="3-daniowy obiad z kuchni włoskiej")
|
||||
system Proponuję "Sałatka caprese", "Lasagne", "Tiramisu" select()
|
||||
user Mógłbyś mi napisać z jakich składników składa się sałatka? reqmore()
|
Can't render this file because it contains an unexpected character in line 4 and column 21.
|
@ -4,7 +4,7 @@ user Moge doradzic ci w wyborze odpowiedniej pozycji z menu. help()
|
||||
user W czym moge ci pomoc? help()
|
||||
user Jakie macie menu na dzisiaj? help()
|
||||
system "przystawki":"Tatar wołowy", "Carpaccio z buraka","Sałatka caprese","zupy":"Krem z dyni","Rosół z makaronem","Zupa grzybowa","dania_glowne":"Stek z polędwicy wołowej","Pieczona kaczka z jabłkami","Lasagne","Ryba z grilla","Risotto z kurczakiem i grzybami","Pierogi ruskie","Placki ziemniaczane","desery":"Tiramisu""Szarlotka","Lody waniliowe" offer()
|
||||
user Jestem na diecie keto, jakie posiłi moge zjeść z tego menu? reqmore()
|
||||
user Jestem na diecie keto, jakie posiłi moge zjeść z tego menu? reqmore(value="dieta keto")
|
||||
system Co to znaczy dieta keto? repeat()
|
||||
user spożywanie tłuszczy i wyeliminowanie węglowodanów, a ponadto znaczne ograniczenie posiłków zawierających cukier, a więc owoców i warzyw null()
|
||||
system "Tatar wołowy" "Zupa grzybowa", Stek z polędwicy wołowej offer()
|
||||
@ -12,7 +12,7 @@ user Dobrze a czy po takich potrawach nie będzie mi śmierdziało z buzi na ran
|
||||
system Kwestia tego co lubi dziewczyna reqmore()
|
||||
user Zaszło nieporozumienie, ide na randke z moim chłopakiem, czy mógłbyś nie opierać się na stereotypach? Było to dla mnie bardzo krzywdzące reqmore()
|
||||
system Przepraszam, moje dane uczące pochodzą ze stereotypowego źródła. W takim razie to zależy od tego, czy twój chłopak lubi smak mięsa wołowego i grzybów reqmore()
|
||||
user Okej a macie coś dopicia? request()
|
||||
user Okej a macie coś dopicia? request(value="napoje")
|
||||
system colę, wodę i lemoniadę offer()
|
||||
user a jest piwo? reqmore()
|
||||
system tak, żubr i kuflowe mocne offer()
|
||||
@ -22,14 +22,14 @@ user Tak ack()
|
||||
system gratuluję. Czy w takim razie chcesz zamówić piwo? offer()
|
||||
user Tak ack()
|
||||
system jakie? reqmore()
|
||||
user kuflowe mocne inform()
|
||||
user kuflowe mocne inform(value="kuflowe mocne")
|
||||
system czy w takim razie twoje zmówienie to:"Tatar wołowy" "Zupa grzybowaStek z polędwicy wołowej mocne inform()
|
||||
user Tak, ale jeszcze to nie koniec null()
|
||||
user Czy macie w ofercie wódkę? request()
|
||||
user Czy macie w ofercie wódkę? request(value="wódka")
|
||||
system Niestety nie negate()
|
||||
user a czy możecie zapakować dania na wynoc? help()
|
||||
user a czy możecie zapakować dania na wynoc? help(value="pakowanie na wynos")
|
||||
system Tak affirm()
|
||||
user a ile wyjdzie za wszystko? request()
|
||||
user a ile wyjdzie za wszystko? request(value="cena")
|
||||
system 103zł inform()
|
||||
user podaj cene za poszczególne składniki zamowienia reqmore()
|
||||
system 22 28 zupa 45zł stek kuflowe inform()
|
||||
|
Can't render this file because it contains an unexpected character in line 6 and column 19.
|
@ -1,13 +1,13 @@
|
||||
user Dzień dobry hello()
|
||||
system Czesc, jestem agentem dialogowym przyjmujacym zamowienia w restauracji. Moge doradzic ci w wyborze odpowiedniej pozycji z menu. W czym moge ci pomoc? welcomemsg()
|
||||
user Czy oferujecie burgery? request()
|
||||
user Czy oferujecie burgery? request(value="burger")
|
||||
system Nie, z dan głównych oferujemy: "Stek z polędwicy wołowej", "Pieczona kaczka z jabłkami", "Lasagne", "Ryba z grilla", "Risotto z kurczakiem i grzybami", "Pierogi ruskie", "Placki ziemniaczane" select()
|
||||
user czy do pierogow ruskich dodajecie skwarki? reqmore()
|
||||
user czy do pierogow ruskich dodajecie skwarki? reqmore(value="Pierogi ruskie")
|
||||
system tak affirm()
|
||||
user Czy moglibyscie przygotowac 20 porcji na okreslona godzine na wynos? request()
|
||||
user Czy moglibyscie przygotowac 20 porcji na okreslona godzine na wynos? request(value="Pierogi ruskie", value="20", value="15:00", value="pojutrze")
|
||||
system jak najbardziej affirm()
|
||||
user to poprosze affirm()
|
||||
system Pierogi ruskie 20 razy, tak? Na którą godzinę? inform()&request()
|
||||
user na 15:00 na pojutrze select()
|
||||
user na 15:00 na pojutrze select(value="15:00", value="pojutrze")
|
||||
system przyjmujemy tylko zamówienia na ten sam dzień. Wróc do nas pojutrze negate()
|
||||
user ok, dziekuje za pomoc bye()
|
Can't render this file because it contains an unexpected character in line 4 and column 41.
|
@ -1,24 +1,24 @@
|
||||
user Siema, w czym możesz mi pomóc? hello()&help()
|
||||
system Czesc, jestem agentem dialogowym przyjmujacym zamowienia w restauracji.Moge doradzic ci w wyborze odpowiedniej pozycji z menu.W czym moge ci pomoc? welcomemsg()
|
||||
user Chciałbym zamówić coś dietetycznego na obiad, co polecasz? help()
|
||||
user Chciałbym zamówić coś dietetycznego na obiad, co polecasz? help(value="dietetyczne", category="obiad")
|
||||
system "Sałatka caprese" z przystawek i "Ryba z grilla" na danie główne offer()
|
||||
user A jaka to ryba? reqmore()
|
||||
user A jaka to ryba? reqmore(value="ryba")
|
||||
system Łosoś offer()
|
||||
user Czy dało by się ją zamienić na inną, skoro nie lubię łososia? reqalts()
|
||||
user Czy dało by się ją zamienić na inną, skoro nie lubię łososia? reqalts(value="ryba")
|
||||
system Nie negate()
|
||||
user Dobrze w takim razie zaproponuj coś innego. reqalts()
|
||||
user Dobrze w takim razie zaproponuj coś innego. reqalts(value="cokolwiek")
|
||||
system "Pierogi ruskie", offer()
|
||||
user Okej brzmi dobrze. Chciałbym jeszcze zamówić cos do picia. affirm()&help()
|
||||
user Okej brzmi dobrze. Chciałbym jeszcze zamówić cos do picia. affirm()&help(value="napoje")
|
||||
system Polecam colę albo wodę offer()
|
||||
user Wezmę colę, ile wynosi całkowity koszt zamówienia? inform()&help()
|
||||
user Wezmę colę, ile wynosi całkowity koszt zamówienia? inform(value="cola")&help(value="cena")
|
||||
system 51zł offer()
|
||||
user Trochę drogo, nie ma zniżki dla studentów? reqmore()
|
||||
user Trochę drogo, nie ma zniżki dla studentów? reqmore(value="zniżka")
|
||||
system nie ma, przepraszam negate()
|
||||
user Okej, w takim razie dziekuję za pomoc, pójdę do innej restauracji. bye()
|
||||
system Na pewno nie będzie tam tak smacznie jak u nas negate()
|
||||
user Skąd to wiesz jako system? reqmore()
|
||||
system Bo nikt nie jest od nas lepszy inform()
|
||||
user No dobrze przekonałeś mnie, złożę u was zamówienie, czy przyjmujecie płatność kartą? request()
|
||||
user Skąd to wiesz jako system? reqmore(value="wiadomość")
|
||||
system Nikt nie jest od nas lepszy inform()
|
||||
user No dobrze przekonałeś mnie, złożę u was zamówienie, czy przyjmujecie płatność kartą? request(value="płatność")
|
||||
system Tak! affirm()
|
||||
user Świetnie, dziękuję za pomoc. thankyou()
|
||||
system Pierogi ruskie i cola, płatność kartą. Czy to wszystko? inform()
|
||||
|
Can't render this file because it contains an unexpected character in line 4 and column 25.
|
@ -1,9 +1,9 @@
|
||||
user Hej, czym się zajmujesz? hello()&help()
|
||||
system Czesc, jestem agentem dialogowym przyjmujacym zamowienia w restauracji. Moge doradzic ci w wyborze odpowiedniej pozycji z menu. W czym moge ci pomoc? offer()
|
||||
user Pokaż menu help()
|
||||
user Pokaż menu help(value="menu")
|
||||
system "przystawki": "Tatar wołowy", "Carpaccio z buraka", "Sałatka caprese", "zupy": "Krem z dyni", "Rosół z makaronem", "Zupa grzybowa","dania_glowne": "Stek z polędwicy wołowej", "Pieczona kaczka z jabłkami", "Lasagne", "Ryba z grilla", "Risotto z kurczakiem i grzybami", "Pierogi ruskie", "Placki ziemniaczane","desery": "Tiramisu" "Szarlotka", "Lody waniliowe", offer()
|
||||
user Chciałbym zjeść tatara, zupe grzybowa, stek i tiramisu inform()
|
||||
user Czy mogę zjeść tatara bez cebuli? reqmore()
|
||||
user Chciałbym zjeść tatara, zupe grzybowa, stek i tiramisu inform(value="Tatar wołowy", value="Zupa grzybowa", value="Stek z polędwicy wołowej", value="Tiramisu")
|
||||
user Czy mogę zjeść tatara bez cebuli? reqmore(value="Tatar wołowy bez cebuli")
|
||||
system Tak, możemy przygotować tatara bez cebuli. affirm()
|
||||
user Pełen profesjonalizm null()
|
||||
user To będzie moje całe zamówienie thankyou()
|
||||
|
Can't render this file because it contains an unexpected character in line 4 and column 19.
|
@ -1,14 +0,0 @@
|
||||
user czy macie jeszcze jakies ciasta dostepne ?
|
||||
system tak, tiramisu i szarlotke
|
||||
user prosiłbym szarlatke z lodami wanilowymi
|
||||
system zrozumiałem
|
||||
user Podsumowanie zamówienia: dwie porcje plackow ziemniaczanych z sosem smietanowym. szarlatka z lodami wanilowymi user: potwierdzam czy jeszcze musze coś wykonac system: nie. proszę czekać, zamówienie będzie gotowe do odbioru za 35min
|
||||
user dziekuje
|
||||
user witam
|
||||
system Znowu?
|
||||
system Czesc znowu w takim wypadku, jestem agentem dialogowym przyjmujacym zamowienia w restauracji. Moge doradzic ci w wyborze odpowiedniej pozycji z menu. W czym moge ci pomoc? user: chciałbym zjesc ramen. Czy u panstwa moge go zamowic system: Nie. Oto całe manu "przystawki": "Tatar wołowy", "Carpaccio z buraka", "Sałatka caprese", "zupy": "Krem z dyni", "Rosół z makaronem", "Zupa grzybowa", "dania_glowne": "Stek z polędwicy wołowej", "Pieczona kaczka z jabłkami", "Lasagne", "Ryba z grilla", "Risotto z kurczakiem i grzybami", "Pierogi ruskie", "Placki ziemniaczane", "desery": "Tiramisu" "Szarlotka", "Lody waniliowe"
|
||||
user a co klienci najczesciej zamawiaja ?
|
||||
system "Tatar wołowy", "Krem z dyni", "Stek z polędwicy wołowej", "Tiramisu"
|
||||
user chciałbym to razy 8 jaka to bedzie cena
|
||||
system 860zł
|
||||
user okej w takim razie dziekuje
|
Can't render this file because it contains an unexpected character in line 9 and column 268.
|
@ -14,16 +14,17 @@ recognized = 0
|
||||
unrecognized = 0
|
||||
|
||||
for df in data_files:
|
||||
if len(df.columns)==3:
|
||||
if len(df.columns) == 3:
|
||||
df.columns = ["agent", "message", "act"]
|
||||
elif len(df.columns)==2:
|
||||
elif len(df.columns) == 2:
|
||||
df.columns = ["agent", "message"]
|
||||
else:
|
||||
continue
|
||||
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)))
|
||||
parsed = user_speeches.apply(
|
||||
lambda x: bool(grammar.find_matching_rules(x)))
|
||||
true_count = parsed.sum()
|
||||
false_count = len(parsed) - true_count
|
||||
recognized += true_count
|
||||
|
52
get_acts.py
Normal file
52
get_acts.py
Normal file
@ -0,0 +1,52 @@
|
||||
import os
|
||||
import pandas as pd
|
||||
from collections import defaultdict
|
||||
|
||||
|
||||
def get_act_name_and_slots(act="request(cuisine)"):
|
||||
acts = [act]
|
||||
if "&" in act:
|
||||
acts = act.split("&")
|
||||
for act in acts:
|
||||
if "(" not in act:
|
||||
return act, []
|
||||
act_name = act.split("(")[0]
|
||||
try:
|
||||
slots = act.split("(")[1].split(")")[0].split(",")
|
||||
except IndexError:
|
||||
slots = []
|
||||
print(f"Error parsing act: {act}")
|
||||
return act_name, slots
|
||||
|
||||
|
||||
data_files = []
|
||||
|
||||
for filename in os.listdir("data"):
|
||||
f = os.path.join("data", filename)
|
||||
if os.path.isfile(f):
|
||||
data_files.append(pd.read_csv(f, sep='\t', header=None))
|
||||
|
||||
acts = defaultdict(lambda: {"msg": [], "slots": []})
|
||||
|
||||
for df in data_files:
|
||||
if len(df.columns) == 3:
|
||||
df.columns = ["agent", "message", "act"]
|
||||
else:
|
||||
continue
|
||||
current_acts = df['act']
|
||||
user_speech_rows = df[df['agent'] == "user"]["message"]
|
||||
for act, speech in zip(current_acts, user_speech_rows):
|
||||
act_name, slots = get_act_name_and_slots(act)
|
||||
acts[act_name]["slots"] += slots
|
||||
acts[act_name]["msg"].append(speech)
|
||||
|
||||
print("Acts:")
|
||||
for act in acts:
|
||||
if act in ["hello", "welcomemsg", "ack", "rezerwuj"]:
|
||||
continue
|
||||
print(f"{act}: {len(acts[act]['msg'])} examples")
|
||||
for sentence in acts[act]["msg"]:
|
||||
print(f"\t{sentence}")
|
||||
|
||||
print("\n\n")
|
||||
print()
|
Loading…
Reference in New Issue
Block a user