Merge pull request 'mockup' (#7) from mockup into master
Reviewed-on: #7 Reviewed-by: Adrian Charkiewicz <adrcha2@st.amu.edu.pl> Reviewed-by: Iwona Christop <iwochr2@st.amu.edu.pl>
This commit is contained in:
commit
458d296e90
4
.gitignore
vendored
4
.gitignore
vendored
@ -211,4 +211,6 @@ fabric.properties
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
.idea
|
||||
.idea
|
||||
|
||||
slot-model
|
@ -1 +0,0 @@
|
||||
,DESKTOP-QF2J2E3/riraa,DESKTOP-QF2J2E3,12.04.2022 12:56,file:///C:/Users/riraa/AppData/Roaming/LibreOffice/4;
|
@ -1 +0,0 @@
|
||||
,DESKTOP-QF2J2E3/riraa,DESKTOP-QF2J2E3,12.04.2022 12:56,file:///C:/Users/riraa/AppData/Roaming/LibreOffice/4;
|
@ -1 +0,0 @@
|
||||
,DESKTOP-QF2J2E3/riraa,DESKTOP-QF2J2E3,12.04.2022 12:56,file:///C:/Users/riraa/AppData/Roaming/LibreOffice/4;
|
@ -1 +0,0 @@
|
||||
,DESKTOP-QF2J2E3/riraa,DESKTOP-QF2J2E3,12.04.2022 12:56,file:///C:/Users/riraa/AppData/Roaming/LibreOffice/4;
|
@ -1 +0,0 @@
|
||||
,DESKTOP-QF2J2E3/riraa,DESKTOP-QF2J2E3,12.04.2022 12:56,file:///C:/Users/riraa/AppData/Roaming/LibreOffice/4;
|
@ -1 +0,0 @@
|
||||
,DESKTOP-QF2J2E3/riraa,DESKTOP-QF2J2E3,12.04.2022 12:56,file:///C:/Users/riraa/AppData/Roaming/LibreOffice/4;
|
@ -1 +0,0 @@
|
||||
,DESKTOP-QF2J2E3/riraa,DESKTOP-QF2J2E3,12.04.2022 12:56,file:///C:/Users/riraa/AppData/Roaming/LibreOffice/4;
|
@ -1 +0,0 @@
|
||||
,DESKTOP-QF2J2E3/riraa,DESKTOP-QF2J2E3,12.04.2022 22:32,file:///C:/Users/riraa/AppData/Roaming/LibreOffice/4;
|
32
data/clean/dialog-16-01-01.tsv
Normal file
32
data/clean/dialog-16-01-01.tsv
Normal file
@ -0,0 +1,32 @@
|
||||
user Halo? hello
|
||||
system Witamy w systemie kinowym Nachos. welcomemsg
|
||||
user Chaciałbym pójść na premierę filmu, jakie premiery są w tym tygodniu? reqmore
|
||||
system W tym tygodniu gramy: Batman, Podróż na Księżyc, Krzyk, Na noże. select
|
||||
user Wybieram Batmana. inform
|
||||
system Jaki termin cię interesuje? request
|
||||
user Najbliższy czwartek. inform
|
||||
system Batman w czwartek grany jest o 12:30, 15:00, 17:30 oraz o 20:45. select
|
||||
user Wybieram: 17:30. inform
|
||||
system Jakie bilety? request
|
||||
user Są zniżki studenckie? reqmore
|
||||
system Tak 21% przy okazaniu legitymacji studenckiej. request
|
||||
user Super, w takim razie poproszę studnecki. inform
|
||||
system Ile biletów studenckich potrzebujesz? request impl-conf
|
||||
user 1x studencki. inform
|
||||
system Chcesz usiąść po lewej, na środku czy po prawej stronie? request
|
||||
user Na środku. inform
|
||||
system Utworzono rezerwację na film Batman dnia 24.01 o godzinie 17:30 z jednym biletem ulgowym. Twój numer rezerwacji to 21372137. inform expl-conf
|
||||
user Czy mogę zarezerwować kolejny bilet? inform
|
||||
system Na ten sam film? request
|
||||
user Tak. inform
|
||||
system Jaki bilet cię interesuje? request
|
||||
user Normalny. reqmore
|
||||
system Dobrze, dodano 1 bilet normalny. expl-conf
|
||||
user Super, poproszę by miejsca były obok siebie. inform
|
||||
system Masz przydzielone miejsca 12h i 13h. expl-conf
|
||||
user Super, czy można płacić z góry? reqmore
|
||||
system Płatność możliwa jest tylko przy kasach. offer
|
||||
user Ok, czy bilety mam już zarezerwowane? reqmore
|
||||
system Tak numer twojej rezerwacji to 21372137 na film Batman dnia 24.01 o godzinie 17:30. inform
|
||||
user Super, dziękuję. bye
|
||||
system Cześć! bye
|
|
8
data/clean/dialog-16-03-01.tsv
Normal file
8
data/clean/dialog-16-03-01.tsv
Normal file
@ -0,0 +1,8 @@
|
||||
user Dzień dobry. hello
|
||||
system Witamy w systemie kinowym Nachos. welcomemsg
|
||||
user Chcę zarezerwować bilety. inform
|
||||
system Jaki termin cię interesuje? request
|
||||
user Dzisiaj. inform
|
||||
system Dzisiaj gramy Batman 3D i Batman 4D z oblewaniem twarzy. select
|
||||
user 16:30:00 infomrm
|
||||
system Proszę wybierz datę przyszłą. select
|
|
14
data/clean/dialog-16-05-01.tsv
Normal file
14
data/clean/dialog-16-05-01.tsv
Normal file
@ -0,0 +1,14 @@
|
||||
user Cześć. hello
|
||||
system Witamy w systemie kinowym Nachos. welcomemsg
|
||||
user Chciałbym anulować rezerwację biletu. inform
|
||||
system Podaj numer rezerwa request
|
||||
user Numer 42069. inform
|
||||
system Takiej rezerwacji nie ma w systemie. negate
|
||||
user Numer 42068. inform
|
||||
system Takiej rezerwacji nie ma w systemie. negate
|
||||
user Numer 42067. inform
|
||||
system Takiej rezerwacji nie ma w systemie. negate
|
||||
user Chciałbym anulować rezerwację biletu dla imienia i nazwiska Jan Kowalski inform
|
||||
system Musisz podać numer rezerwacji. request
|
||||
user Nie pamiętam. Czy mogę podać e-mail? reqmore
|
||||
system Musisz podać numer rezerwacji. request
|
|
14
data/clean/dialog-16-07-01(test).tsv
Normal file
14
data/clean/dialog-16-07-01(test).tsv
Normal file
@ -0,0 +1,14 @@
|
||||
user Dzień dobry. hello
|
||||
system Witamy w systemie kinowym Nachos. welcomemsg
|
||||
user Jakie filmy są w tym tygodniu w repertuarze? reqmore
|
||||
system W tym tygodniu gramy: Batman, Podróż na Księżyc, Krzyk, select
|
||||
user O której godzinie w piątej mogę zobaczyć Na noże? reqmore inform
|
||||
system Na noże w piątek grane jest o 12:30, 15:00, 19:30. select
|
||||
user Ok, w takim razie chciałbym zarezerwować 2 miejsca na seans o 19:30. inform
|
||||
system Jaki typ biletów? select
|
||||
user Dwa normalne. inform
|
||||
system Nie ma już miejsc na środku sali, czy mogą być miejsca po prawej stronie u góry? offer
|
||||
user Mogą być. ack
|
||||
system Rezerwacja 2 miejsc na film Na noże, w terminie 25.03 godzina 19:30, numer twojej rezerwacji 453905. inform expl-conf
|
||||
user Dziękuje bardzo. bye
|
||||
system Do usłyszenia. bye
|
|
20
data/clean/dialog-16-09-01.tsv
Normal file
20
data/clean/dialog-16-09-01.tsv
Normal file
@ -0,0 +1,20 @@
|
||||
user elo. hello
|
||||
system Witam w systemie kinowym Nachos. welcomemsg
|
||||
user Chciałbym kupić bilety na seans Zorro - jak to było na prawdę. inform
|
||||
system Zorro- jak to było na prawdę oraz jego sequel nie są obecnie grane. negate
|
||||
user Poproszę listę filmów granych jutro wieczorem reqmore inform
|
||||
system Zorro 3, Zorro powrócił Transformers select
|
||||
user Chciałbym kupić bilety na Transformers. inform
|
||||
system Czy pasuje ci godzina 20:20? select
|
||||
user Tak, chcę dwa bilety za 2 dni. inform
|
||||
system Jakie chcesz bilety? select
|
||||
user Normalne. inform
|
||||
system Gdzie chcesz usiąść? select
|
||||
user Przy oknie, w przedziale. nan
|
||||
system Nie zrozumiałem. repeat
|
||||
user Wagon z przedziałami, miejsce przy oknie. nan
|
||||
system Czy chcesz usiąść na środku sali kinowej? request
|
||||
user Tak, ale bardziej z góry. inform
|
||||
system Dobrze, dokonano rezerwacji na film Transformer, umer twojej rezeracji to 123890. inform expl-conf
|
||||
user Exit. bye
|
||||
system Do, usłyszenia. bye
|
|
24
data/clean/dialog-16-11-01.tsv
Normal file
24
data/clean/dialog-16-11-01.tsv
Normal file
@ -0,0 +1,24 @@
|
||||
user Kim jesteś? help
|
||||
system Witamy w systemie kinowym Nachos. welcomemsg
|
||||
user Co gracie? reqmore
|
||||
system Teraz gramy Batman i Zorro. select
|
||||
user Jaki Zorro? reqmore
|
||||
system Zorro Reinkarnacja 3D. offer
|
||||
user W jakich godzinach gracie Zorro? reqmore
|
||||
system Dzisiaj o 13:00, 14:54 i 21:36 select
|
||||
user Chciałbym zarezerwować bilety na Batmana. inform
|
||||
system Jaki termin cię interesuje? select
|
||||
user 21.03.2022. inform
|
||||
system Wybierz datę przyszłą. negate select
|
||||
user 23.03.2022. inform
|
||||
system Batman 23.03 grany jest o godzinie 12:59 i 20:45. select
|
||||
user Super. ack
|
||||
system Którą godzinę chcesz wybrać? select
|
||||
user 13:00 inform
|
||||
system Jakie bilety chcesz wybrać? select
|
||||
user 1 normalny. inform
|
||||
system Gdzie chcesz usiaść. select
|
||||
user Blisko ekranu. inform
|
||||
system Dobrze, dokonano rezerwacji na film Batman 1 bilet normalny, godzina 12:59, numer twojej rezerwacji to 12310987. inform
|
||||
user Dziękuję, do usłyszenia. bye
|
||||
system Do usłyszenia! bye
|
|
20
data/clean/dialog-16-15-01.tsv
Normal file
20
data/clean/dialog-16-15-01.tsv
Normal file
@ -0,0 +1,20 @@
|
||||
user Dzień dobry. hello
|
||||
system Witamy w systemie kinowym Nachos. welcomemsg
|
||||
user chciałbym się dowiedzieć jaki jest cennik. reqmore
|
||||
system Bilet normalny kosztuje 21,37zł, bilet ulgowy posiada zniżkę 21%, bilet dla weteranów posiada 51% zniżki offer
|
||||
user A jest zniżka studencka? reqmore
|
||||
system Zniżka studencka to 21%. offer
|
||||
user a co leci dzisiaj w kinie? reqmore inform
|
||||
system Batman, Dawno temu w las vegas oraz Na noże. select
|
||||
user o której jest na noże? reqmore inform
|
||||
system 12:00 i 23:59. select
|
||||
user poproszę dwa bilety na 12 inform
|
||||
system Jaki typ biletów? select
|
||||
user a jakie są? reqmore
|
||||
system Normalny 21,00zł ulgowy 21% zniżki i dla weteranów 51% zniżki. offer
|
||||
user 2 ulgowe poprosze. inform
|
||||
system Gdzie chcesz usiąść? select
|
||||
user jakie są wolne miejsca? reqmore
|
||||
system Chcesz usiąść na środku sali na górze? select
|
||||
user Tak. ack
|
||||
system Dobrze, dokonano rezerwacji na film Batman 2 bilety ulgowe, godzina 21:37 numer twojej rezerwacji to 123890. inform
|
|
14
data/clean/dialog-16-17-01.tsv
Normal file
14
data/clean/dialog-16-17-01.tsv
Normal file
@ -0,0 +1,14 @@
|
||||
user Chciałbym 3 bilety na batmana na jtro. inform
|
||||
system Witamy w systemie kinowym Nachos jaka godzina Cię interesuje? welcomemsg select
|
||||
user coś koło południa. reqmore
|
||||
system Batman grany jest o 12:30, 15:30 oraz 17:15. select
|
||||
user nic później? reqalts
|
||||
system 19:25 oraz 21:37. select
|
||||
user To ten o 19. inform
|
||||
system Czy wszystkie bilety mają być normalne? select
|
||||
user 2 ulgowe. inform
|
||||
system Gdzie chcesz usiaść? select
|
||||
user z przodu. inform
|
||||
system Zarezerwowano 3 bilety ulgowe na film Batman w terminie 24.03.2022 o godzinie 19:25, twój numer rezerwacji to 12341532. inform
|
||||
user ale jakie miejsca?? reqmore
|
||||
system Masz miejsca 12H, 13H, i 14H. inform
|
|
18
data/clean/dialog-16-19-01.tsv
Normal file
18
data/clean/dialog-16-19-01.tsv
Normal file
@ -0,0 +1,18 @@
|
||||
user Dzień dobry. hello
|
||||
system Witamy w systemie kinowym Nachos. welcomemsg
|
||||
user Chciałabym zarezerwować bilet do kina. inform
|
||||
system Jaki dzień cięinteresuje? select
|
||||
user Dziś. inform
|
||||
system Dzisiaj gramy Zorro 2, Batman i Terminator. select
|
||||
user Proszę na batmana. inform
|
||||
system Dzisiaj Batman grany jest o 12:30 i 20:19 select
|
||||
user Proszę o godzine 20:19. inform
|
||||
system Jakie chcesz bilety? select
|
||||
user ulogwy. inform
|
||||
system Ile biletów ulgowych? select
|
||||
user 1. impl-conf inform
|
||||
system Gdzie chcesz usiąść? select
|
||||
user z tyłu, na środku (aby ekran był centralnie widoczny). inform
|
||||
system Dobrze, zarezerwowano bilet dziś na 20:19 na Batman, numer twojej rezerwacji to 12312333. inform
|
||||
user dobrze, dziekuję. bye
|
||||
system Do widzenia! bye
|
|
5
data/clean/dialog-17-02-01.tsv
Normal file
5
data/clean/dialog-17-02-01.tsv
Normal file
@ -0,0 +1,5 @@
|
||||
user cześć hello
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg
|
||||
user czy mogę zarezerwować Nachosy do kina? reqmore
|
||||
system Zapraszamy do baru, który znajduje się za kasami biletowymi. offer
|
||||
user dziekuje thankyou
|
|
23
data/clean/dialog-17-04-01.tsv
Normal file
23
data/clean/dialog-17-04-01.tsv
Normal file
@ -0,0 +1,23 @@
|
||||
user Witam hello
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg
|
||||
user Co potrafisz? help
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz odpowiedzi na ewentualne pytania użytkowników. offer
|
||||
user Jakie są najbliższe seanse? inform
|
||||
system Jaki film cię interesuje? reqmore
|
||||
user A jakie są dostępne? reqmore
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select
|
||||
user A w jakim to kinie? request
|
||||
system Na podstawie twojej lokalizacji przydzieliliśmy ci: Multikino 51. Czy chcesz je zmienić. inform
|
||||
user A gdzie jest to kino? reqmore
|
||||
system Multikino 51 znajduje się na Królowej Jadwigi 51, 61-872 Poznań inform
|
||||
user O której grają Uncharted? reqmore inform
|
||||
system "Dostępne godziny na film ""Uncharted"" to: 12:00, 15:30, 17:30 oraz 20:00" impl-conf select
|
||||
user Ile kosztują bilety na ten film? request
|
||||
system Dostępne bilety to: 15zł bilet normalny, 12zł bilet ulgowy. inform
|
||||
user A w jaki dzień bielty są tańsze? reqmore
|
||||
system W środy oferujemy dodatkową zniżkę -10% na wszystkie rodzaje biletów. inform
|
||||
user w takim razie chciałbym zarezerwować dwa bilety normalne i jeden ulgowy na środę 20:00 inform
|
||||
system Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca? request
|
||||
user Na środku sali inform
|
||||
system Zostały ci przydzielone miejsca I9, I10, I11. Numer twojej rezerwacji to 123123. inform
|
||||
user ok ack
|
|
20
data/clean/dialog-17-04-02.tsv
Normal file
20
data/clean/dialog-17-04-02.tsv
Normal file
@ -0,0 +1,20 @@
|
||||
user Witam hello
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg
|
||||
user Jaki jest repertuar na piątek? reqmore inform
|
||||
system W repertuarze na piątek 1 kwietnia znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2. select
|
||||
user O jakich godzinach grają te filmy? reqmore
|
||||
system Proszę podaj tytuł filmu, który cię interesuje. reqmore
|
||||
user Wszystkie ack
|
||||
system "Dostępne godziny na film ""Batman"" to: 12:00, 15:30, 17:30 oraz 20:00" select
|
||||
system "Dostępne godziny na film ""To nie wypanda"" to: 12:00, 15:30, 17:30 oraz 20:00" select
|
||||
system "Dostępne godziny na film ""Inni ludzie"" to: 12:00, 15:30, 17:30 oraz 20:00" select
|
||||
system "Dostępne godziny na film ""Ambulans"" to: 12:00, 15:30, 17:30 oraz 20:00" select
|
||||
system "Dostępne godziny na film ""Uncharted"" to: 12:00, 15:30, 17:30 oraz 20:00" select
|
||||
system "Dostępne godziny na film ""Ups 2"" to: 12:00, 15:30, 17:30 oraz 20:00" select
|
||||
user Czy obgługujecie rezerwację biletów grupowych? request
|
||||
system Na jednej rezerwacji może znajdować się do 10 miejsc. inform
|
||||
user Rozumiem, a jak mogę dokonać rezerwacji dla 20 osób? reqmore
|
||||
system W celu dokonania rezerwacji na więcej niż 10 osób proszę skontaktować się z obsługą kina w celu potwierdzenia, że jesteś człowiekiem. Czy mam połączyć cię z konsultantem? inform
|
||||
user Tak affirm
|
||||
system Niestety wszyscy konsultanci są obecnie zajęci. W czym jeszcze mogę pomóc? canthelp
|
||||
user dziękuję ack
|
|
5
data/clean/dialog-17-04-03.tsv
Normal file
5
data/clean/dialog-17-04-03.tsv
Normal file
@ -0,0 +1,5 @@
|
||||
user Witam hello
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg
|
||||
user Czy w kinie Rialto grają jakieś stare filmy? reqmore
|
||||
system System Nachos obsługuje następujące kina: Multikino, Helios oraz Cinemacity. select
|
||||
user to dziękuję thankyou
|
|
11
data/clean/dialog-17-04-04(test).tsv
Normal file
11
data/clean/dialog-17-04-04(test).tsv
Normal file
@ -0,0 +1,11 @@
|
||||
user Witam hello
|
||||
systen Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg
|
||||
user Chciałbym zarezerować dwa bilety na Batman inform
|
||||
systen Na jaki dzień i godzinę miałby być ten bilet? request
|
||||
user A kiedy jest najbliższy seans? inform
|
||||
systen "Najbliższe seanse dla filmu ""Batman"" to: 13:00 oraz 15:30." select
|
||||
user To poproszę trzy bilety na batmana o 15:30 inform
|
||||
systen Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca? request
|
||||
user Na samym tyle sali inform
|
||||
systen Zostało ci przydzielone miejsce M9, M10 oraz M11. Numer twojej rezerwacji to 123124. inform
|
||||
user Dziękuję thankyou
|
|
12
data/clean/dialog-17-06-01.tsv
Normal file
12
data/clean/dialog-17-06-01.tsv
Normal file
@ -0,0 +1,12 @@
|
||||
user Witam hello
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg
|
||||
user Czy tylko można u was rezerwować Nachos ? null
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz ewentualne pytania użytkowników. canthelp
|
||||
user Chciałbym zapytać co u pana hello
|
||||
system Z tej strony bot Nachos, u mnie wszystko w porządku. W czym mogę pomóc? welcomemsg
|
||||
user Poproszę bilet na batmana o 19:00 inform
|
||||
system Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca? request
|
||||
user bez ludzi w okolicy inform
|
||||
system Zostało ci przydzielone miejsce A11. Numer twojej rezerwacji to 123123. inform
|
||||
user Czy to wszystko affirm help
|
||||
system Tak to wszystko, proszę zjawić się przy okienku kasowym 15 minut przed rozpoczęciem seansu, inaczej rezerwacja przepadnie. affirm
|
|
20
data/clean/dialog-17-08-01.tsv
Normal file
20
data/clean/dialog-17-08-01.tsv
Normal file
@ -0,0 +1,20 @@
|
||||
user Dzień dobry! hello
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg
|
||||
user Chciałbym zarezerwować film null
|
||||
user Bilet na film inform
|
||||
system Na jaki film ma być ta rezerwacja? request
|
||||
user Jakie filmy są teraz w kinach? request
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select
|
||||
user poproszę 3x bilet na ambulans inform
|
||||
system "Dostępne godziny na film ""Ambulans"" to: 12:00, 15:30, 17:30 oraz 20:00" select
|
||||
user niech będzie ten ostatni inform
|
||||
system Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca? request
|
||||
user Przedostatnim inform
|
||||
system Zostały ci przydzielone miejsca M9, M10, M11. Numer twojej rezerwacji to 123123. inform
|
||||
user Spoko ack
|
||||
user Chciałbym jeszcze kupon na jedzenie null
|
||||
system Zapraszamy do baru, który znajduje się za kasami biletowymi. W skład oferty barowej wchodzą: popcorn słony/słodki/maślany, oraz NachosyTM z wybranym sosem. offer
|
||||
user Poproszę słony popcorn null
|
||||
user Duży null
|
||||
system Zapraszamy do baru, który znajduje się za kasami biletowymi. offer
|
||||
user Nara bye
|
|
18
data/clean/dialog-17-10-01.tsv
Normal file
18
data/clean/dialog-17-10-01.tsv
Normal file
@ -0,0 +1,18 @@
|
||||
user Dzień dobry hello
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg
|
||||
user Chciał bym zamówić bilet na film Minionki dzisiaj o 18.30 inform
|
||||
system "Niestety film ""Minionki"" nie jest obecnie dostępny. Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto." nan
|
||||
user to poprosze ups 2 inform
|
||||
system Na jaki dzień i godzinę miałby być ten bilet? request
|
||||
user na dzisiaj inform
|
||||
user najlepiej 18.30 inform
|
||||
system Dostępne godziny to: 18:00 oraz 20:00, czy któraś z nich jest odpowiednia? select
|
||||
user poprosze 18 inform
|
||||
system Dobrze. W jakim rzędzie ma zostać dokonana rezerwacja? request
|
||||
user jakie są dostępne miejsca? request
|
||||
system Dostępne miejsca to: A1, A2, A3, B11,B12, F13, M1, M2, M3, M4 oraz M5. select
|
||||
user które miejsca są daleko od ekranu? reqmore
|
||||
system Najdalej od ekranu znajduje się rząd M. inform
|
||||
user w takim razie poproszę M5 inform
|
||||
system Zostało ci przydzielone miejsce M5. Numer twojej rezerwacji to 123123. inform expl-conf
|
||||
user dziekuje thankyou
|
|
17
data/clean/dialog-17-14-01.tsv
Normal file
17
data/clean/dialog-17-14-01.tsv
Normal file
@ -0,0 +1,17 @@
|
||||
user Cześć hello
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg
|
||||
user Co mogę zarezerwować? reqmore
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz odpowiedzi na ewentualne pytania użytkowników. select
|
||||
user Gdzie znajduje się kino? request
|
||||
system Na podstawie twojej lokalizacji przydzieliliśmy ci: Multikino 51. Czy chcesz je zmienić. inform
|
||||
user Tak, chciałbym iść do multikina na Malcie inform
|
||||
system "Twoje kino zostało zmienione na ""Multikino Malta"". Czy mogę pomóc w czymś jeszcze?" Expl-conf
|
||||
user Super, teraz chciałbym zarezerwować bilet na film inform
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. Na jaki film mam zarezerwować bilet? select
|
||||
user Uncharted inform
|
||||
system "Dostępne godziny na film ""Uncharted"" to: 12:00, 15:30, 17:30 oraz 20:00" select
|
||||
user wybieram godzine 12:00 inform
|
||||
system Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca i ile miejsc zarezerwować? request
|
||||
user 1 miejsce, gdzieś na środku sali inform
|
||||
system Zostało ci przydzielone miejsce J11. Numer twojej rezerwacji to 123123. inform and
|
||||
user Pasuje ack
|
|
27
data/clean/dialog-17-18-01.tsv
Normal file
27
data/clean/dialog-17-18-01.tsv
Normal file
@ -0,0 +1,27 @@
|
||||
user Elo help
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg
|
||||
user Chciałabym zarezerwować bilet inform
|
||||
system Dobrze. Na jaki film ma być ta rezerwacja? request
|
||||
user Co gracie request
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select
|
||||
user Ja bym chciała na Fantsaczne zwierzta inform
|
||||
system Na jaki dzień i godzinę miałby być ten bilet? request and
|
||||
user 29.03.2022 inform
|
||||
user Jakoś wieczorkiem inform
|
||||
system "Dostępne godziny na film ""Fantastyczne zwierzęta: tajemnice dumbledorea"" to: 17:30 oraz 20:00" select expl-conf
|
||||
user To na 21 prosze inform
|
||||
system Godzina 21:00 nie jest dostępna. Filmy puszczane są o 17:30 oraz 20:00. select
|
||||
user To na 18 proszę inform
|
||||
system Dobrze. Jakie miejsca zarezerwować? request
|
||||
user Najlepsze inform
|
||||
system Zostały ci przydzielone miejsca I9, I10. Numer twojej rezerwacji to 123123. inform
|
||||
user Moment no ile tych miejsc i czemu nie są w tym samym rzędzie reqmore
|
||||
user proszę z managerem null
|
||||
system Ile biletów powinno znaleźć się w rezerwacji? request
|
||||
user Jeden dla mnie i dla kotka proszę inform
|
||||
system Zostały ci przydzielone miejsca I9, I10. Numer twojej rezerwacji to 123123. inform
|
||||
user Dobra, to blikiem proszę null
|
||||
system System obsługuje jedynie rezerwację biletów. W uiszczenia opłaty proszę być 15 minut przed seansem w kinie, inaczej rezerwacja przepada. Dziękuję. bye
|
||||
user Halo halo null
|
||||
user nie skończyłam null
|
||||
user Ehhh null
|
|
15
data/clean/dialog-17-18-02.tsv
Normal file
15
data/clean/dialog-17-18-02.tsv
Normal file
@ -0,0 +1,15 @@
|
||||
user DZIEŃ DOBRY hello
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg
|
||||
user No właśnie. W czym możesz pomóc? help
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz odpowiedzi na ewentualne pytania użytkowników. inform
|
||||
user A jedzonko macie? reqmore
|
||||
system W skład oferty barowej wchodzą: popcorn słony/słodki/maślany, oraz NachosyTM z wybranym sosem. offer
|
||||
user Nachosy proszę reqmore
|
||||
system Zapraszamy do baru, który znajduje się za kasami biletowymi. offer
|
||||
user A jakie sosy do Nachosów? reqmore
|
||||
system Do NachosyTM można wybrać następujące sosy: BBQ, keczupowy, czosnkowy, ostry. offer
|
||||
user Chciałabym anulować rezerwację inform
|
||||
system Dobrze, proszę o podanie numeru rezerwacji. request
|
||||
user 123123 inform
|
||||
system "Rezerwacja o numerze ""123123"" została anulowana. " affirm
|
||||
user Dzięki <3 thankyou
|
|
7
data/clean/dialog-17-18-03.tsv
Normal file
7
data/clean/dialog-17-18-03.tsv
Normal file
@ -0,0 +1,7 @@
|
||||
user Dzień dobry hello
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg
|
||||
user Chciałabym zmienić rezerwację inform
|
||||
system Proszę podać numer rezerwacji request
|
||||
user 123123 inform
|
||||
system "Rezerwacja o numerze ""123123"" nie znajduje się w systemie. Upewnij się, ze jest to poprawny numer." canthelp.missing_slot_value
|
||||
user Upewniam się ack
|
|
16
data/clean/dialog-18-03-01.tsv
Normal file
16
data/clean/dialog-18-03-01.tsv
Normal file
@ -0,0 +1,16 @@
|
||||
user Dzień dobry hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? request welcomemsg
|
||||
user Chciałbym zarezerwować bilety inform
|
||||
system Jaki film cię interesuje? request
|
||||
user batman inform
|
||||
system Jaki termin cię interesuje? request
|
||||
user dzisiaj inform
|
||||
system Dostępne godziny to: 15:20, 18:30, 20:15, 22:10. select
|
||||
user podaj więcej informacji o seansach reqmore
|
||||
system Dostępne godziny to: 15:20, 18:30, 20:15, 22:10. select
|
||||
user podaj więcej informacji o seansie o 15.20 reqmore
|
||||
system "Pokaz filmu ""Batman"" o godzinie 15:20, sala 3." offer
|
||||
user czy film jest 2D czy 3D? reqmore
|
||||
system Nasze kino nie oferuje seansów 3D. Za utrudnienia przepraszamy. canthelp
|
||||
user podaj informacje o napisach/dubbingu reqmore
|
||||
system Nasze kino nie oferuje seansów z dubbingiem. Za utrudnienia przepraszamy. canthelp
|
|
26
data/clean/dialog-18-05-01.tsv
Normal file
26
data/clean/dialog-18-05-01.tsv
Normal file
@ -0,0 +1,26 @@
|
||||
user Cześć hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? request welcomemsg
|
||||
user Chciałbym zarezwsfsgf bilet null
|
||||
system Czy mógłbyś powtórzyć? repeat
|
||||
user Chciałbym zarezerwować bilet inform
|
||||
system Jaki film cię interesuje? request
|
||||
user Jakie są wyświetlane w najbliższą sobotę? reqmore
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select
|
||||
user W których godzinach grany jest film To nie wypanda? reqmore inform
|
||||
system Seanse w dniu dzisiejszym odbywają się o godzinie: 15:40, 17:20, 19:10. select
|
||||
user W takim razie chciałbym kupić 3 bilety, jeśli możliwe miejsca koło siebie inform
|
||||
system Jaki termin cię interesuje? request
|
||||
user Najbliższa sobota inform
|
||||
system Dostępne godziny to 11:20, 14:30, 17:10, 19:30. select
|
||||
user Godzina 19:30 inform
|
||||
system Gdzie chciałbyś usiąść? request
|
||||
user Najlepiej w ostatnim rzędzie inform
|
||||
system Zostały ci przydzielone miejsca N6, N7, N8. Numer twojej rezerwacji to 84372. inform
|
||||
user Chciałbym zapłacić przy odbiorze reqmore
|
||||
system Sprzedaż biletów dostępna jest w punkcie stacjonarnym. Zachęcamy do uprzedniej rezerwacji miejsc za pomocą naszego systemu. canthelp
|
||||
user Czy moja rezerwacja została potwierdzona? reqmore
|
||||
system Podaj numer rezerwacji. request
|
||||
user 84372 inform
|
||||
system "Rezerwacja numer 84372. Film ""To nie wypanda"", sobota 26.03.2022, godzina 19:30. Miejsca N6, N7, N8. Czy chciałbyś dokonać zmian?" reqmore expl-conf
|
||||
user Nie negate
|
||||
system Dziękujemy za skorzystanie z usług systemu kinowego Nachos. Miłego dnia. bye
|
|
14
data/clean/dialog-18-07-01.tsv
Normal file
14
data/clean/dialog-18-07-01.tsv
Normal file
@ -0,0 +1,14 @@
|
||||
user Dzień dobry hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? request welcomemsg
|
||||
user Chciałbym dowiedzieć się jakie filmy są wyświetlane w tym tygodniu. reqmore
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select
|
||||
user W jakich godzinach mogę zobaczyć Batmana w piątek? reqmore inform
|
||||
system W najbliższy piątek dostępne godziny to 13:30, 15:20, 17:45. select
|
||||
user Chciałbym zarezerwować 3 miejsca na seans o 17:45 inform
|
||||
system Gdzie chciałbyś usiąść? request
|
||||
user Czy są dostępne miejsca w tylnych rzędach? reqmore inform
|
||||
system Dostępne miejsca z tyłu to M3, M4, M5. offer
|
||||
user Ok affirm inform
|
||||
system Zostały ci przydzielone miejsca M3, M4, M5. Numer twojej rezerwacji to 87574. expl-conf
|
||||
user Dziękuję, do widzenia bye thankyou
|
||||
system Dziękujemy za skorzystanie z usług systemu kinowego Nachos. Miłego dnia. bye
|
|
6
data/clean/dialog-18-07-02.tsv
Normal file
6
data/clean/dialog-18-07-02.tsv
Normal file
@ -0,0 +1,6 @@
|
||||
user Dzień dobry, chciałbym anulować rezerwację hello inform
|
||||
system Witam w systemie kinowym Nachos. Aby anulować rezerwację, podaj numer rezerwacji. request welcomemsg
|
||||
user 87574 inform
|
||||
system "Proszę o potwierdzenie anulowania rezerwacji numer 87574 na film ""Batman"" w dniu 25.03.2022 o godzinie 17:45." expl-conf
|
||||
user Potwierdzam affirm
|
||||
system Rezerwacja numer 87574 została anulowana. affirm
|
|
22
data/clean/dialog-18-09-01(test).tsv
Normal file
22
data/clean/dialog-18-09-01(test).tsv
Normal file
@ -0,0 +1,22 @@
|
||||
user Hej hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? request welcomemsg
|
||||
user Chciałbym kupić bilety na seans Zorro - jak to było na prawdę inform
|
||||
system Film nie znajduje się w repertuarze. Podaj inny tytuł. request canthelp
|
||||
user Zorro2 inform
|
||||
system Film nie znajduje się w repertuarze. Podaj inny tytuł. request canthelp
|
||||
user Poproszę o listę seansów reqmore
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select
|
||||
user Poproszę o listę filmów granych jutro wieczorem reqmore inform
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select
|
||||
user Chciałbym kupić bilety na film To nie wypanda inform
|
||||
system Jutro wieczorem dostępne godziny to: 18:30, 20:15. select
|
||||
user 20:15 inform
|
||||
system Jaka ilość biletów ciebie interesuje? request
|
||||
user 11 inform
|
||||
system Gdzie chciałbyś usiąść? request
|
||||
user W środku, pomiedzy górnym i środkowym rzędzie null
|
||||
system Czy możesz powtórzyć? repeat
|
||||
user W środku, pomiedzy górnym i środkowym rzędem inform
|
||||
system Zostały ci przydzielone miejsca G3, G4, G5, G6, G7, G8, G9, G10, G11, G12, G13. Numer twojej rezerwacji to 04293. inform
|
||||
user <3 thankyou
|
||||
system Dziękujemy za skorzystanie z usług systemu kinowego Nachos. Miłego dnia. bye
|
|
4
data/clean/dialog-18-09-02.tsv
Normal file
4
data/clean/dialog-18-09-02.tsv
Normal file
@ -0,0 +1,4 @@
|
||||
user Cześć hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? request welcomemsg
|
||||
user Nie możesz thankyou
|
||||
system Dziękujemy za skorzystanie z usług systemu kinowego Nachos. Miłego dnia. bye
|
|
32
data/clean/dialog-18-11-01.tsv
Normal file
32
data/clean/dialog-18-11-01.tsv
Normal file
@ -0,0 +1,32 @@
|
||||
user Dzień dobry, Systemie hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? request welcomemsg
|
||||
user Chciałbym kupić nachos reqmore
|
||||
system Zestaw nachosów z wybranym dipem dostępny jest w strefie gastronomicznej. offer
|
||||
user Jak mogę się do takiej strefy dostać? reqmore
|
||||
system Nasz adres to ulica Uniwersytetu Poznańskiego 4. inform
|
||||
user W jakim mieście? reqmore
|
||||
system Ul. Uniwersytetu Poznańskiego 4, Poznań inform
|
||||
user Czy można zarezerwować u was bilety na seans? reqmore
|
||||
system Tak. Jaki film cię interesuje? request
|
||||
user Jakie polecasz? reqmore
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select
|
||||
user Jaką ocenę posiada Batman? reqmore
|
||||
system Batman posiada ocenę 8.4/10 offer
|
||||
user Dobrze. Chciałbym zatem zarezerwować bilet na Innych Ludzi inform
|
||||
system Jaki termin cię interesuje? request
|
||||
user 22.03.2022 inform
|
||||
system Wybrana data jest z przeszłości. Proszę o podanie poprawnego terminu. repeat
|
||||
user Jutro, po godzinie 16:00 inform
|
||||
system Dostępne godziny to: 17:45, 20:30. select
|
||||
user Jaki jutro jest dzień tygodnia? request
|
||||
system Jutro jest czwartek, 24.03.2022. inform
|
||||
user To poproszę o rezerwację na 17:45 inform
|
||||
system Proszę o powtórzenie terminu rezerwacji. repeat
|
||||
user 17:45 inform
|
||||
system Gdzie chciałbyś usiąść? request
|
||||
user Z tyłu sali, nie na samym końcu inform
|
||||
system Zostało ci przydzielone miejsce L8. Numer twojej rezerwacji to 35263. inform
|
||||
user W jakiej części rzędu znajduje się to miejsce? request
|
||||
system Miejsce L8 znajduje się w środkowej części przedostatniego rzędu. inform
|
||||
user Dziękuję thankyou
|
||||
system Dziękujemy za skorzystanie z usług systemu kinowego Nachos. Miłego dnia. bye
|
|
22
data/clean/dialog-18-15-01.tsv
Normal file
22
data/clean/dialog-18-15-01.tsv
Normal file
@ -0,0 +1,22 @@
|
||||
user Dzień dobry hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? request welcomemsg
|
||||
user chciałbym kupić dwa bilety na batmana inform
|
||||
system Jaki termin cię interesuje? request
|
||||
user jutro inform
|
||||
system Dostępne godziny to: 15:20, 17:45, 20:30. select
|
||||
user poproszę na 20:30 inform
|
||||
system Gdzie chciałbyś usiąść? request
|
||||
user z tyłu inform
|
||||
system Zostały ci przydzielone miejsca L9, L10. Numer twojej rezerwacji to 74263. inform
|
||||
user w jakiej cenie są bilety? help
|
||||
system Bilet jednorazowy jest w cenie 18,90 zł. offer
|
||||
user są zniżki studenckie? help
|
||||
system Osoby poniżej 26 roku życia posiadające legitymację szkolną lub studencką są upoważnione do 15% zniżki na wejścia jednorazowe. offer
|
||||
user mógłbym kupić bilety? reqmore
|
||||
system Jaki film cię interesuje? request
|
||||
user batman - chciałbym kupić zarezerwowane miejsca reqmore inform
|
||||
system Sprzedaż biletów dostępna jest w punkcie stacjonarnym. Zachęcamy do uprzedniej rezerwacji miejsc za pomocą naszego systemu. canthelp
|
||||
user dobrze czy wystarczy zachować numer rezerwacji? reqmore
|
||||
system Numer rezerwacji niezbędny jest do opłacenia zarezerwowanych miejsc w punkcie stacjonarnym. canthelp
|
||||
user dobrze ack
|
||||
system Dziękujemy za skorzystanie z usług systemu kinowego Nachos. Miłego dnia. bye
|
|
15
data/clean/dialog-18-15-02.tsv
Normal file
15
data/clean/dialog-18-15-02.tsv
Normal file
@ -0,0 +1,15 @@
|
||||
user witam hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? request welcomemsg
|
||||
user jakie są jutro filmy? reqmore inform
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select
|
||||
user o ktorej jest nasze magiczne encanto? reqmore inform
|
||||
system Dostępne godziny to 10:15, 12:30, 15:45, 18:20. select
|
||||
user poproszę 3 bilety na 18:20 inform
|
||||
system Gdzie chciałbyś usiąść? request
|
||||
user na środku inform
|
||||
system Zostały ci przydzielone miejsca H4, H5, H6. Numer twojej rezerwacji to 85730. inform
|
||||
user poproszę jeszcze jedno miejsce obok inform
|
||||
system Dokonano zmiany rezerwacji numer 85730. Zostały ci przydzielone miejsca H4, H5, H6, H7. inform
|
||||
user dziekuje thankyou
|
||||
system Dziękujemy za skorzystanie z usług systemu kinowego Nachos. Miłego dnia. bye
|
||||
user do widzenia bye
|
|
10
data/clean/dialog-18-17-01.tsv
Normal file
10
data/clean/dialog-18-17-01.tsv
Normal file
@ -0,0 +1,10 @@
|
||||
user Co dziś leci reqmore inform
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select
|
||||
user Co jest dobre dla dzieci reqmore
|
||||
system "Film familijny to ""Nasze magiczne Encanto""." offer
|
||||
user "Poproszę 2 na ""to nie wypanda""" inform
|
||||
system Gdzie chciałbyś usiąść? request
|
||||
user a z przodu gdzieś inform
|
||||
system Zostały ci przydzielone miejsca B9, B10. Numer twojej rezerwacji to 47564. inform
|
||||
user eee a o której?? request
|
||||
system Godzina twojego seansu to 17:30. inform
|
|
16
data/clean/dialog-18-19-01.tsv
Normal file
16
data/clean/dialog-18-19-01.tsv
Normal file
@ -0,0 +1,16 @@
|
||||
user Dzień dobry hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? request welcomemsg
|
||||
user Chciałabym zarezerwować bilet do kina inform
|
||||
system Jaki film cię interesuje? request
|
||||
user Wyjdż za mnie inform
|
||||
system Film nie znajduje się w repertuarze. Podaj inny tytuł. request canthelp
|
||||
user The batman inform
|
||||
system Jaki termin cię interesuje? request
|
||||
user Dziś wieczorem inform
|
||||
system Dostępne godziny to: 18:30, 20:15, 22:10. select
|
||||
user Proszę o godzinie 20:15 inform
|
||||
system Gdzie chciałabyś usiąść? request
|
||||
user z tyłu, na środku (aby ekran był centralnie widoczny) inform
|
||||
system Zostało ci przydzielone miejsce L7. Numer twojej rezerwacji to 09483. inform
|
||||
user Dobrze, dziękuję thankyou
|
||||
system Dziękujemy za skorzystanie z usług systemu kinowego Nachos. Miłego dnia. bye
|
|
6
data/clean/dialog-19-02-01.tsv
Normal file
6
data/clean/dialog-19-02-01.tsv
Normal file
@ -0,0 +1,6 @@
|
||||
user cześć hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? welcomemsg
|
||||
user chciałbym sprawdzić repertuar kin reqmore
|
||||
system Na jaki dzień? request
|
||||
user na dzisiaj inform
|
||||
system Dzieiejszy repertuar: 13:30 Piosenki o miłości 16:00 Cud Guadalupe 17:00 Jakoś to będzie 17:40 Historia mojej żony 18:40 Matki równoległe 20:30 Wielka wolność 20:40 Najgorszy człowiek na świecie 22:50 Inni ludzie offer
|
|
31
data/clean/dialog-19-04-01.tsv
Normal file
31
data/clean/dialog-19-04-01.tsv
Normal file
@ -0,0 +1,31 @@
|
||||
user Witam hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? welcomemsg
|
||||
user Jakie sš najbliższe seanse? reqmore
|
||||
system Dzieiejszy repertuar: 13:30 Piosenki o miłości 16:00 Cud Guadalupe 17:00 Jakoś to będzie 17:40 Historia mojej żony 18:40 Matki równoległe 20:30 Wielka wolność 20:40 Najgorszy człowiek na świecie 22:50 Inni ludzie select
|
||||
user W jakim to kinie? reqmore
|
||||
system W kinie Blugarska offer
|
||||
user A gdzie jest to kino? reqmore
|
||||
system Bułgarska 19, 60-320 Poznań offer
|
||||
user Ile kosztujš bilety na Inni ludzie? reqmore
|
||||
system Normalny czy uglowy? select
|
||||
user oba inform
|
||||
system Normalny - 20zł, uglowy - 13zł offer
|
||||
user A w jaki dzień bilety sš tańsze? reqmore
|
||||
system W wtorek i czwartek kosztujš o 2 zł mniej niż podana cena offer
|
||||
user W takim razie chciałbym zarezerwować dwa bilety na czwartek na film Inni Ludzie inform
|
||||
system Dobrze, bilety majš być ulgowe czy normalne reqmore
|
||||
user Jeden normalny i ulgowy inform
|
||||
system Dobrze, jakie miejsce Pana interesuje? request
|
||||
user Na środku Sali inform
|
||||
system Dobrze, miejsca Pana to M25. Czy zgadza się Pan z wyborem miejsca? inform
|
||||
user Chciałem zarezerwować dwa miejsca reqmore
|
||||
system Trzeba najpierw wybrać miejsce dla jednego biletu negate
|
||||
user Zgadzam się infrom
|
||||
system Dobrze, drugie miejsce Pana to M26. Czy zgadza się Pan z wyborem miejsca? infrom
|
||||
user Tak inform
|
||||
system Informacja o rezerwacji: 1x bilet ulgowy 1x biley normalny, miejsca M25 i M26, film Inni Ludzie, dnia 30/03/2022, godzina 22:50. Czy jeszcze w czymś Panu pomóć? affirm
|
||||
user Jaki jest koszt tej rezerwacji? reqmore
|
||||
system Rezerwacja jest za darmo offer
|
||||
user A ile kosztuje bilety łącznie? reqmore
|
||||
system 33 zł offer
|
||||
user ok. Dziękuję ack
|
|
22
data/clean/dialog-19-06-01.tsv
Normal file
22
data/clean/dialog-19-06-01.tsv
Normal file
@ -0,0 +1,22 @@
|
||||
user Witam hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? welcomemsg
|
||||
user Chciałbym zarezerwować bilet ale nie wiem na co. inform
|
||||
system Dzieiejszy repertuar: 13:30 Piosenki o miłości 16:00 Cud Guadalupe 17:00 Jakoś to będzie 17:40 Historia mojej żony 18:40 Matki równoległe 20:30 Wielka wolność 20:40 Najgorszy człowiek na świecie 22:50 Inni ludzie offer
|
||||
user Czy film Historia mojej żony jest ciekawy ? reqmore
|
||||
system Uwaźam, że tak ack
|
||||
user Dobrze to poproszę inform
|
||||
system Ulgowy czy normalny? select
|
||||
user Ulgowy inform
|
||||
system Ile biletów? selec
|
||||
user czy jest jakaś maksymalna liczba ? reqmore
|
||||
system Nie null
|
||||
user to poproszę 100 inform
|
||||
system Dobrze, prosze wymienić czy majš byc ulgowe czy normalne select
|
||||
user tak jak powiedziałem ulgowe inform
|
||||
system Dobrze, jakie miejsca Pana interesujš? request
|
||||
user środek Sali inform
|
||||
system Dobrze, Pana miejsca to sš: M1, M2, M3, ..., M98, M99, M100. Czy zgadza sie Pan z wyborem? inform
|
||||
user tak confirm
|
||||
system Informacja o rezerwacji: 100x bilet ulgowy, miejsca M1, M2, M3, ..., M98, M99, M100, film Historia mojej żony, dnia 30/03/2022, godzina 17:40. Czy jeszcze w czymś Panu pomóc? reqmore inform
|
||||
user Nie dziękuje negate confirm
|
||||
system Dziękuję również bye
|
|
18
data/clean/dialog-19-08-01.tsv
Normal file
18
data/clean/dialog-19-08-01.tsv
Normal file
@ -0,0 +1,18 @@
|
||||
user Dzień dobry! hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? welcomemsg
|
||||
user Chciałbym zarezerwować seans. Bilet na seans inform
|
||||
system Jaki Pana interesuje ? request
|
||||
user Jakie filmy są obecnie na ekranach? reqmore
|
||||
system Jaki dzień Pana interesuje ? request
|
||||
user Sobota inform
|
||||
system 2022-04-02 15:00 Przeżyć 2022-04-02 16:45 Inni ludzie 2022-04-02 18:45 Piosenki o miłości 2022-04-02 20:30 Psie pazury offer
|
||||
user Poproszę 2 bilety na innych ludzi inform
|
||||
system Ulgowe czy normalne? null
|
||||
user jeden ulgowy i jeden zwykły inform infrom
|
||||
system Dobrze, a jakie Pana miejsca interesujš? request
|
||||
user Na środku Sali infrom
|
||||
system Dobrze, miejsca Pana to M20. Czy zgadza się Pan z wyborem miejsca? affirm inform
|
||||
user Pewnie ack
|
||||
system Dobrze, drugie miejsce Pana to M21. Czy zgadza się Pan z wyborem miejsca? affirm inform
|
||||
user czy te miejsca sš obok siebie? reqmore
|
||||
system Tak affirm
|
|
17
data/clean/dialog-19-10-01(test).tsv
Normal file
17
data/clean/dialog-19-10-01(test).tsv
Normal file
@ -0,0 +1,17 @@
|
||||
user Dzień dobry hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? welcomemsg
|
||||
user Chciał bym zamówić bilet na film Minionki dzisiaj o 18.30 inform
|
||||
system Dziś nie gramy filmu 'Minionki' o godzinie 18:30 negate
|
||||
user czy jest jakis film o godzinie 18:30? request
|
||||
system Najbliższy film jest o godzinie 18:40 18:40 Matki równoległe offer
|
||||
user niech będzie ack
|
||||
system Ile biletów? request
|
||||
user 1 inform
|
||||
system Normalny czy ulgowy ? canthelp
|
||||
user jakie sš dostępne ulgi? null
|
||||
system Studencka, serniorska, i pracownik kina offer
|
||||
user studencka inform
|
||||
system Dobrze, jakie miejsce Pana interesuje request
|
||||
user daleko od ekranu inform
|
||||
system Dobrze, miejsca Pana to L40. Czy zgadza się Pan z wyborem miejsca? affirm inform
|
||||
user tak ack
|
|
33
data/clean/dialog-19-12-01.tsv
Normal file
33
data/clean/dialog-19-12-01.tsv
Normal file
@ -0,0 +1,33 @@
|
||||
user Dzień dobry hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? welcomemsg
|
||||
user Chciałabym zarezerwować bilety inform
|
||||
system Na jaki film? request
|
||||
user Jaki film jest grany jutro w godzinach popołudniowych? request
|
||||
system 2022-03-31 15:00 Przeżyć 2022-03-31 16:45 Inni ludzie 2022-03-31 18:45 Piosenki o miłości 2022-03-30 20:30Psie pazury offer
|
||||
user Czy sš wcześniejsze seanse? reqmore
|
||||
system Na jutro, nie negate
|
||||
user W takim razie chcę zarezerwować bilety na Psie Pazury inform
|
||||
system Dobrze, ulgowy czy normalny? canthelp
|
||||
user Komu przysługuje ulga? null
|
||||
system Studentom, seniorom i pracownikom kina canthelp
|
||||
user Kim jest senior? null
|
||||
system To jest stara osoba canthelp
|
||||
user W takim razie chcę zarezerwować normalne bilety na Psie Pazury inform
|
||||
system jAKIE MIEJSCE pANIĽ INTERESUJE? request
|
||||
user Na środku inform
|
||||
system Ile biletów? request
|
||||
user 3 inform
|
||||
system Wszystkie normalne? null
|
||||
user Tak ack
|
||||
system Dobrze, miejsce Pani to M27. Czy zgadza się Pani z wyborem miejsca? affirm inform
|
||||
user Ale chciałam 3 bilety negate
|
||||
system Trzeba najpierw wybrać miejsce dla jednego biletu null
|
||||
user zgadzam się ack
|
||||
system Dobrze, drugie miejsce Pani to M28. Czy zgadza się Pani z wyborem miejsca? affirm inform
|
||||
user tak ack
|
||||
system Dobrze, trzecie miejsce Pani to M29. Czy zgadza się Pani z wyborem miejsca? affirm inform
|
||||
user nier negate
|
||||
system Dobrze, trzecie miejsce Pani to M26. Czy zgadza się Pani z wyborem miejsca? affirm inform
|
||||
user tak ack
|
||||
system Czy w czymś jeszcze Pani pomóc? reqmore
|
||||
user nie null
|
|
25
data/clean/dialog-19-14-01.tsv
Normal file
25
data/clean/dialog-19-14-01.tsv
Normal file
@ -0,0 +1,25 @@
|
||||
user Dzień dobry hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? welcomemsg
|
||||
user Chciałbym dowiedzieć się jaki jest aktualnie repertuar request
|
||||
system Dzieiejszy repertuar: 13:30 Piosenki o miłości 16:00 Cud Guadalupe 17:00 Jakoś to będzie 17:40 Historia mojej żony 18:40 Matki równoległe 20:30 Wielka wolność 20:40 Najgorszy człowiek na świecie 22:50 Inni ludzie offer
|
||||
user Jutro jest w repertuarze film inni ludzie? request
|
||||
system Tak, o 17:30 offer
|
||||
user Ile kosztuje bilet na ten film? request
|
||||
system Normalny czy ulgowy? null
|
||||
user ulogwy null
|
||||
system Dobrze, jakie miejsce Pana interesuje? request
|
||||
user W górnej części sali inform
|
||||
system Dobrze, miejsca Pana to L35. Czy zgadza się Pan z wyborem miejsca? affirm inform
|
||||
user Gdzie znajduje się to miejsce względem ekranu? reqmore
|
||||
system Po lewej stronie offer
|
||||
user Chciałbym na środku inform
|
||||
system Dobrze, miejsca Pana to M40. Czy zgadza się Pan z wyborem miejsca? affirm inform
|
||||
user zgadzam ack
|
||||
system Informacja o rezerwacji: 1x bilet ulgowy, miejsce L35, film innie ludzie, dnia 30/03/2022, godzina 22:50. Czy jeszcze w czymś Panu pomóc? affirm
|
||||
user jaka jest cena? reqmore
|
||||
system 13zł za bilet, 0zł za rezerwacje offer
|
||||
user Dobrze, rezerwuje ack
|
||||
system Czy jeszcze w czymś Panu pomóc? reqmore
|
||||
user Chciałbym anulować rezerwację deny
|
||||
system Dobrze, anuluje...Anulowano rezerwacje ack
|
||||
user Dziekuje bye
|
|
20
data/clean/dialog-19-16-01.tsv
Normal file
20
data/clean/dialog-19-16-01.tsv
Normal file
@ -0,0 +1,20 @@
|
||||
user Cześć hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? welcomemsg
|
||||
user Co można u was zjeść? request
|
||||
system Popcorn (mały, duży, średni), nachos (z sosem serowym lub bez), slushy (truskawkowe, ananasowe, borówkowe), czipsy (z solš, z ocetem) offer
|
||||
user Co można obejrzeć w kwietniu request
|
||||
system Filmy na kwiecień: Przeżyć, Inni ludzie, Piosenki o miłości, Psie pazury, DKF Zamek select
|
||||
user kiedy gracie DKF zamek? request
|
||||
system 03/04/2022 10:00, 06/04/2022 13:40 15:40 20:15, 10/04/2022 12:50, 16/04/2022 13:30, 22/04/2022 19:40, 25/04/2022 12:15 15:50 select
|
||||
user poproszę dwa bilety ulgowe na 25/04/2022 12:15 15:50 inform
|
||||
system Dobrze, jakie miejsce Pana interesuje? request
|
||||
user pierwszy rzšd po lewej stronie inform
|
||||
system Dobrze, miejsca Pana to L10. Czy zgadza się Pan z wyborem miejsca? inform
|
||||
user Tak ack
|
||||
system Czy drugi bilet ma być koło tego samego miejsca? request
|
||||
user zgadzam się ack
|
||||
system Informacja o rezerwacji: 2x bilet ulgowy, miejsca L10 i L11, film DKF zamek, dnia 25/04/2022, godzina 15:50. Czy jeszcze w czymś Panu pomóc? affirm
|
||||
user Jaki jest numer mojej rezerwacji reqmore
|
||||
system RZ2049421 inform
|
||||
user Dziękuję systemie thankyou
|
||||
system Dziękuję, byebye bye
|
|
33
data/clean/dialog-19-18-01.tsv
Normal file
33
data/clean/dialog-19-18-01.tsv
Normal file
@ -0,0 +1,33 @@
|
||||
user Siema hello
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? welcomemsg
|
||||
user Chcę iść do kina inform
|
||||
system Na jaki film? request
|
||||
user Co gracie request
|
||||
system Dzieiejszy repertuar: 13:30 Piosenki o miłości 16:00 Cud Guadalupe 17:00 Jakoś to będzie 17:40 Historia mojej żony 18:40 Matki równoległe 20:30 Wielka wolność 20:40 Najgorszy człowiek na świecie 22:50 Inni ludzie offer
|
||||
user To na fdantastyczne zwierznera prosze inform
|
||||
system "Nie ma takiego filmu ""fdantastyczne zwerznera"" w repertuarze" negate
|
||||
user A co macie request
|
||||
system Dzieiejszy repertuar: 13:30 Piosenki o miłości 16:00 Cud Guadalupe 17:00 Jakoś to będzie 17:40 Historia mojej żony 18:40 Matki równoległe 20:30 Wielka wolność 20:40 Najgorszy człowiek na świecie 22:50 Inni ludzie offer
|
||||
user A na za tydzień? request
|
||||
system Repertuar na dzień 06/04/2022: 2022-04-06 16:00 Przeżyć 2022-04-06 16:15 Piosenki o miłości 2022-04-06 17:00 Najgorszy człowiek na świecie 2022-04-06 17:45 Wielka wolność 2022-04-06 18:00 Drive my car 2022-04-06 19:15 Piosenki o miłości 2022-04-06 20:00 Historia mojej żony 2022-04-06 21:00 Duch śniegów offer
|
||||
user To na za tydzień na cud guadalupe proszę inform
|
||||
system "Nie ma takiego filmu ""cud guadlupe"" w repertuarze" negate
|
||||
user To na coś innego request
|
||||
system Na jaki dzień? request
|
||||
user Dzisiaj inform
|
||||
system Dzieiejszy repertuar: 13:30 Piosenki o miłości 16:00 Cud Guadalupe 17:00 Jakoś to będzie 17:40 Historia mojej żony 18:40 Matki równoległe 20:30 Wielka wolność 20:40 Najgorszy człowiek na świecie 22:50 Inni ludzie offer
|
||||
user Zaskocz mnie null
|
||||
system Dzieiejszy repertuar: 13:30 Piosenki o miłości 16:00 Cud Guadalupe 17:00 Jakoś to będzie 17:40 Historia mojej żony 18:40 Matki równoległe 20:30 Wielka wolność 20:40 Najgorszy człowiek na świecie 22:50 Inni ludzie offer
|
||||
user No to jakoś niech będzie jakoś to będzie inform
|
||||
system Ile biletów? request
|
||||
user Jeden dla mnie, drugi dla kota null
|
||||
system Przepraszamy, ale zwierzęta nie majš wstępu do Sali canthelp
|
||||
user To jeden będzie infrom
|
||||
system Normalny czy ulgowy? canthelp
|
||||
user normalny null
|
||||
system Jakie miejsce Paniš interesuje? request
|
||||
user na środku gdzieś inform
|
||||
system Dobrze, miejsce Pani to M33. Czy zgadza się Pani z wyborem miejsca? affirm inform
|
||||
user Niech będzie ack
|
||||
system Informacja o rezerwacji: 1x bilet normalny, miejsce M33, film jakoś to będzie, dnia 30/03/2022, godzina 17:00. Czy jeszcze w czymś Pani pomóc? affirm afirm
|
||||
user jakieś potwierdzenie rezerwacji dostanę czy mogę po prostu wejść i usišść? request
|
|
34
data/clean/dialog-20-01-01.tsv
Normal file
34
data/clean/dialog-20-01-01.tsv
Normal file
@ -0,0 +1,34 @@
|
||||
user wybieram batmana o 16:20 inform
|
||||
user wybieram na noże o 9:30 inform
|
||||
user wybieram ups 2 o godzinie 10:45 inform
|
||||
user chcę iść na matki rówonegłe o 21:30 inform
|
||||
user wybierz mi film pod tytułem inni ludzie inform
|
||||
user chcę uncharted inform
|
||||
user idę na 12:45 inform
|
||||
user idę na pierwszą na batmana inform
|
||||
user idę na drugą na batmana inform
|
||||
user idę na trzecią na na noże inform
|
||||
user ten o czwartej inform
|
||||
user matki równoległe dwunasta inform
|
||||
user na noże inform
|
||||
user ambulans inform
|
||||
user wybierz to nie wypada inform
|
||||
user dwa siedzenia inform
|
||||
user jedno inform
|
||||
user trzy bileciki na 19:00 na batmana na środku inform
|
||||
user cztery inform
|
||||
user pięc biletów poproszę inform
|
||||
user poproszę inform
|
||||
user h1 h2 h3 inform
|
||||
user chcę wybrać 3 bilety miejsca h3 h4 h5 inform
|
||||
user daj mi trzy bilety na seans na godzinę 19 miejsca A14 A15 A16 inform
|
||||
user poproszę jeden bilecik na seans pod tytułem batman miejsca J12 inform
|
||||
user A10,A11 inform
|
||||
user A12, A13 inform
|
||||
user Z43, Z44, Z43, Z44, Z45 inform
|
||||
user wybierz J43, K44, l43, C44, d45 inform
|
||||
user co gracie wieczorem inform
|
||||
user co gracie jutro inform
|
||||
user co gracie po południu inform
|
||||
user co gracie rano inform
|
||||
user jakie filmy są wiczorem inform
|
|
16
data/clean/newUserQuestions.tsv
Normal file
16
data/clean/newUserQuestions.tsv
Normal file
@ -0,0 +1,16 @@
|
||||
user co gracie za trzy dni inform
|
||||
user co gracie za dwa dni inform
|
||||
user co gracie w sobotę inform
|
||||
user co gracie w niedzielę inform
|
||||
user co leci w poniedziałek inform
|
||||
user co leci we wtorek inform
|
||||
user co leci w piątek inform
|
||||
user co jest puszczane w sobotę inform
|
||||
user co jest grane w niedzielę o 12:00 inform
|
||||
user poproszę trzy bilety moje miejsca to h1,H3,h56 inform
|
||||
user wymień seansy jutro inform
|
||||
user pojutrze co jest inform
|
||||
user a co gracie po jutrze inform
|
||||
user czy gracie dziś batmana albo na noze inform
|
||||
user czy w niedzielę gracie na noze lub batman lub piosenki o miłości inform
|
||||
user czy wolne są miejsca h2 h3 inform
|
|
14
data/dialog-16-07-01(test).tsv
Normal file
14
data/dialog-16-07-01(test).tsv
Normal file
@ -0,0 +1,14 @@
|
||||
user Dzień dobry. hello()
|
||||
system Witamy w systemie kinowym Nachos. welcomemsg()
|
||||
user Jakie filmy są w tym tygodniu w repertuarze? reqmore(date=2022-04-04 - 2022-04-11)
|
||||
system W tym tygodniu gramy: Batman, Podróż na Księżyc, Krzyk, select(title)
|
||||
user O której godzinie w piątej mogę zobaczyć Na noże? reqmore(time) AND inform(title=Na Noże) AND inform(date=2022-04-09)
|
||||
system Na noże w piątek grane jest o 12:30, 15:00, 19:30. select(time)
|
||||
user Ok, w takim razie chciałbym zarezerwować 2 miejsca na seans o 19:30. inform(quantity=2) AND inform(time=19:30)
|
||||
system Jaki typ biletów? select(tickets_type)
|
||||
user Dwa normalne. inform(tickets_type=[normal, 2])
|
||||
system Nie ma już miejsc na środku sali, czy mogą być miejsca po prawej stronie u góry? offer(area=[up, right])
|
||||
user Mogą być. ack()
|
||||
system Rezerwacja 2 miejsc na film Na noże, w terminie 25.03 godzina 19:30, numer twojej rezerwacji 453905. inform(reservation_id=453905) AND expl-conf(title) AND expl-conf(date) AND expl-conf(time) AND expl-conf(quantity)
|
||||
user Dziękuje bardzo. bye()
|
||||
system Do usłyszenia. bye()
|
|
@ -1,5 +1,5 @@
|
||||
user cześć hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user czy mogę zarezerwować Nachosy do kina? reqmore()
|
||||
system Zapraszamy do baru, który znajduje się za kasami biletowymi. offer
|
||||
user cześć hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user czy mogę zarezerwować Nachosy do kina? reqmore()
|
||||
system Zapraszamy do baru, który znajduje się za kasami biletowymi. offer
|
||||
user dziekuje thankyou
|
||||
|
|
@ -1,23 +1,23 @@
|
||||
user Witam hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Co potrafisz? help()
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz odpowiedzi na ewentualne pytania użytkowników. offer(goal=reservation || answers)
|
||||
user Jakie są najbliższe seanse? inform(date=2022-04-04)&inform(time=13:15+)
|
||||
system Jaki film cię interesuje? reqmore(title)
|
||||
user A jakie są dostępne? reqmore(title)
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select(title)
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz odpowiedzi na ewentualne pytania użytkowników. offer(goal=reservation || answers)
|
||||
user Jakie są najbliższe seanse? inform(date=2022-04-04)&inform(time=13:15+)
|
||||
system Jaki film cię interesuje? reqmore(title)
|
||||
user A jakie są dostępne? reqmore(title)
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select(title)
|
||||
user A w jakim to kinie? request(location)
|
||||
system Na podstawie twojej lokalizacji przydzieliliśmy ci: Multikino 51. Czy chcesz je zmienić. inform(location=Multikino_51)
|
||||
system Na podstawie twojej lokalizacji przydzieliliśmy ci: Multikino 51. Czy chcesz je zmienić. inform(location=Multikino_51)
|
||||
user A gdzie jest to kino? reqmore(location)
|
||||
system Multikino 51 znajduje się na Królowej Jadwigi 51, 61-872 Poznań inform(location=Królowej Jadwigi 51)
|
||||
user O której grają Uncharted? reqmore(time) AND inform(title=Uncharted)
|
||||
system "Dostępne godziny na film ""Uncharted"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time) AND impl-conf(title=Uncharted)
|
||||
user Ile kosztują bilety na ten film? request(price)
|
||||
system Dostępne bilety to: 15zł bilet normalny, 12zł bilet ulgowy. inform(price)
|
||||
user A w jaki dzień bielty są tańsze? reqmore(price)
|
||||
system W środy oferujemy dodatkową zniżkę -10% na wszystkie rodzaje biletów. inform(price)
|
||||
user w takim razie chciałbym zarezerwować dwa bilety normalne i jeden ulgowy na środę 20:00 inform(date=2022-04-04) AND inform(quantity=3) AND inform(time=20:00)
|
||||
system Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca? request(area)
|
||||
user Na środku sali inform(area=[middle, middle])
|
||||
system Zostały ci przydzielone miejsca I9, I10, I11. Numer twojej rezerwacji to 123123. inform(seats=[I9, I10, I11]) AND inform(reservation_id=123123)
|
||||
system Multikino 51 znajduje się na Królowej Jadwigi 51, 61-872 Poznań inform(location=Królowej Jadwigi 51)
|
||||
user O której grają Uncharted? reqmore(time) AND inform(title=Uncharted)
|
||||
system "Dostępne godziny na film ""Uncharted"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time) AND impl-conf(title=Uncharted)
|
||||
user Ile kosztują bilety na ten film? request(price)
|
||||
system Dostępne bilety to: 15zł bilet normalny, 12zł bilet ulgowy. inform(price)
|
||||
user A w jaki dzień bielty są tańsze? reqmore(price)
|
||||
system W środy oferujemy dodatkową zniżkę -10% na wszystkie rodzaje biletów. inform(price)
|
||||
user w takim razie chciałbym zarezerwować dwa bilety normalne i jeden ulgowy na środę 20:00 inform(date=2022-04-04) AND inform(quantity=3) AND inform(time=20:00)
|
||||
system Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca? request(area)
|
||||
user Na środku sali inform(area=[middle, middle])
|
||||
system Zostały ci przydzielone miejsca I9, I10, I11. Numer twojej rezerwacji to 123123. inform(seats=[I9, I10, I11]) AND inform(reservation_id=123123)
|
||||
user ok ack()
|
||||
|
|
@ -1,20 +1,20 @@
|
||||
user Witam hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Jaki jest repertuar na piątek? inform(date=2022-04-01) AND reqmore(title)
|
||||
system W repertuarze na piątek 1 kwietnia znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2. select(title)
|
||||
user O jakich godzinach grają te filmy? reqmore(time)
|
||||
system Proszę podaj tytuł filmu, który cię interesuje. reqmore(title)
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Jaki jest repertuar na piątek? inform(date=2022-04-01) AND reqmore(title)
|
||||
system W repertuarze na piątek 1 kwietnia znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2. select(title)
|
||||
user O jakich godzinach grają te filmy? reqmore(time)
|
||||
system Proszę podaj tytuł filmu, który cię interesuje. reqmore(title)
|
||||
user Wszystkie ack()
|
||||
system "Dostępne godziny na film ""Batman"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
system "Dostępne godziny na film ""To nie wypanda"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
system "Dostępne godziny na film ""Inni ludzie"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
system "Dostępne godziny na film ""Ambulans"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
system "Dostępne godziny na film ""Uncharted"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
system "Dostępne godziny na film ""Ups 2"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
user Czy obgługujecie rezerwację biletów grupowych? request(type)
|
||||
system Na jednej rezerwacji może znajdować się do 10 miejsc. inform(type)
|
||||
user Rozumiem, a jak mogę dokonać rezerwacji dla 20 osób? reqmore(type)
|
||||
system W celu dokonania rezerwacji na więcej niż 10 osób proszę skontaktować się z obsługą kina w celu potwierdzenia, że jesteś człowiekiem. Czy mam połączyć cię z konsultantem? inform(type)
|
||||
system "Dostępne godziny na film ""Batman"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
system "Dostępne godziny na film ""To nie wypanda"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
system "Dostępne godziny na film ""Inni ludzie"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
system "Dostępne godziny na film ""Ambulans"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
system "Dostępne godziny na film ""Uncharted"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
system "Dostępne godziny na film ""Ups 2"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
user Czy obgługujecie rezerwację biletów grupowych? request(type)
|
||||
system Na jednej rezerwacji może znajdować się do 10 miejsc. inform(type)
|
||||
user Rozumiem, a jak mogę dokonać rezerwacji dla 20 osób? reqmore(type)
|
||||
system W celu dokonania rezerwacji na więcej niż 10 osób proszę skontaktować się z obsługą kina w celu potwierdzenia, że jesteś człowiekiem. Czy mam połączyć cię z konsultantem? inform(type)
|
||||
user Tak affirm()
|
||||
system Niestety wszyscy konsultanci są obecnie zajęci. W czym jeszcze mogę pomóc? canthelp()
|
||||
user dziękuję ack()
|
||||
system Niestety wszyscy konsultanci są obecnie zajęci. W czym jeszcze mogę pomóc? canthelp()
|
||||
user dziękuję ack()
|
||||
|
|
@ -1,5 +1,5 @@
|
||||
user Witam hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Czy w kinie Rialto grają jakieś stare filmy? reqmore(title)
|
||||
system System Nachos obsługuje następujące kina: Multikino, Helios oraz Cinemacity. select(location)
|
||||
user to dziękuję thankyou()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Czy w kinie Rialto grają jakieś stare filmy? reqmore(title)
|
||||
system System Nachos obsługuje następujące kina: Multikino, Helios oraz Cinemacity. select(location)
|
||||
user to dziękuję thankyou()
|
||||
|
|
12
data/dialog-17-04-04(test).tsv
Normal file
12
data/dialog-17-04-04(test).tsv
Normal file
@ -0,0 +1,12 @@
|
||||
user Witam hello()
|
||||
systen Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Chciałbym zarezerować dwa bilety na Batman inform(goal=reservation) AND inform(quantity=2) AND inform(title=Batman)
|
||||
systen Na jaki dzień i godzinę miałby być ten bilet? request(time) AND request(date)
|
||||
user A kiedy jest najbliższy seans? inform(time=13:15+)
|
||||
systen "Najbliższe seanse dla filmu ""Batman"" to: 13:00 oraz 15:30." select(time)
|
||||
user To poproszę trzy bilety na batmana o 15:30 inform(time=15:30) AND inform(quantity=3) AND inform(title=Batman)
|
||||
systen Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca? request(area)
|
||||
user Na samym tyle sali inform(area=[random,back])
|
||||
systen Zostało ci przydzielone miejsce M9, M10 oraz M11. Numer twojej rezerwacji to 123124. inform(seats=[M9,M10,M11]) AND inform(reservation_id=123124)
|
||||
user Dziękuję "thankyou()
|
||||
"
|
|
@ -1,12 +1,12 @@
|
||||
user Witam hello()
|
||||
systen Witamy w internetowym systemie rezerwacji Nachos, w czym mogê pomóc? welcomemsg()
|
||||
user Chcia³bym zarezerowaæ dwa bilety na Batman inform(goal=reservation) AND inform(quantity=2) AND inform(title=Batman)
|
||||
systen Na jaki dzieñ i godzinê mia³by byæ ten bilet? request(time) AND request(date)
|
||||
user A kiedy jest najbli¿szy seans? inform(time=13:15+)
|
||||
systen "Najbli¿sze seanse dla filmu ""Batman"" to: 13:00 oraz 15:30." select(time)
|
||||
user To poproszê trzy bilety na batmana o 15:30 inform(time=15:30) AND inform(quantity=3) AND inform(title=Batman)
|
||||
systen Dobrze. W jakim rzêdzie maj¹ zostaæ zarezerwowane miejsca? request(area)
|
||||
systen Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Chciałbym zarezerować dwa bilety na Batman inform(goal=reservation) AND inform(quantity=2) AND inform(title=Batman)
|
||||
systen Na jaki dzień i godzinę miałby być ten bilet? request(time) AND request(date)
|
||||
user A kiedy jest najbliższy seans? inform(time=13:15+)
|
||||
systen "Najbliższe seanse dla filmu ""Batman"" to: 13:00 oraz 15:30." select(time)
|
||||
user To poproszę trzy bilety na batmana o 15:30 inform(time=15:30) AND inform(quantity=3) AND inform(title=Batman)
|
||||
systen Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca? request(area)
|
||||
user Na samym tyle sali inform(area=[random,back])
|
||||
systen Zosta³o ci przydzielone miejsce M9, M10 oraz M11. Numer twojej rezerwacji to 123124. inform(seats=[M9,M10,M11]) AND inform(reservation_id=123124)
|
||||
user Dziêkujê "thankyou()
|
||||
systen Zostało ci przydzielone miejsce M9, M10 oraz M11. Numer twojej rezerwacji to 123124. inform(seats=[M9,M10,M11]) AND inform(reservation_id=123124)
|
||||
user Dziękuję "thankyou()
|
||||
"
|
||||
|
|
@ -1,12 +1,12 @@
|
||||
user Witam hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Czy tylko można u was rezerwować Nachos ? null()
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz ewentualne pytania użytkowników. canthelp
|
||||
user Chciałbym zapytać co u pana hello()
|
||||
system Z tej strony bot Nachos, u mnie wszystko w porzšdku. W czym mogę pomóc? welcomemsg()
|
||||
user Poproszę bilet na batmana o 19:00 inform(goal=reservation) AND inform(quantity=1) AND inform(title=Batman) AND inform(date=tomorrow)AND inform(time=19:00)
|
||||
system Dobrze. W jakim rzędzie majš zostać zarezerwowane miejsca? request(area)
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Czy tylko można u was rezerwować Nachos ? null()
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz ewentualne pytania użytkowników. canthelp
|
||||
user Chciałbym zapytać co u pana hello()
|
||||
system Z tej strony bot Nachos, u mnie wszystko w porządku. W czym mogę pomóc? welcomemsg()
|
||||
user Poproszę bilet na batmana o 19:00 inform(goal=reservation) AND inform(quantity=1) AND inform(title=Batman) AND inform(date=tomorrow)AND inform(time=19:00)
|
||||
system Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca? request(area)
|
||||
user bez ludzi w okolicy inform(area=[random,random])
|
||||
system Zostało ci przydzielone miejsce A11. Numer twojej rezerwacji to 123123. inform(reservation_id=A11) AND inform(seats=123123)
|
||||
system Zostało ci przydzielone miejsce A11. Numer twojej rezerwacji to 123123. inform(reservation_id=A11) AND inform(seats=123123)
|
||||
user Czy to wszystko affirm() help
|
||||
system Tak to wszystko, proszę zjawić się przy okienku kasowym 15 minut przed rozpoczęciem seansu, inaczej rezerwacja przepadnie. affirm()
|
||||
system Tak to wszystko, proszę zjawić się przy okienku kasowym 15 minut przed rozpoczęciem seansu, inaczej rezerwacja przepadnie. affirm()
|
||||
|
|
@ -1,20 +1,20 @@
|
||||
user Dzień dobry! hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Chciałbym zarezerwować film null()
|
||||
user Dzień dobry! hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Chciałbym zarezerwować film null()
|
||||
user Bilet na film inform(goal=reservation)
|
||||
system Na jaki film ma być ta rezerwacja? request(title)
|
||||
user Jakie filmy są teraz w kinach? request(title)
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select(title)
|
||||
user poproszę 3x bilet na ambulans inform(title=Ambulans)
|
||||
system "Dostępne godziny na film ""Ambulans"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
user niech będzie ten ostatni inform(time=20:00)
|
||||
system Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca? request(area)
|
||||
system Na jaki film ma być ta rezerwacja? request(title)
|
||||
user Jakie filmy są teraz w kinach? request(title)
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select(title)
|
||||
user poproszę 3x bilet na ambulans inform(title=Ambulans)
|
||||
system "Dostępne godziny na film ""Ambulans"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
user niech będzie ten ostatni inform(time=20:00)
|
||||
system Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca? request(area)
|
||||
user Przedostatnim inform(area=M)
|
||||
system Zostały ci przydzielone miejsca M9, M10, M11. Numer twojej rezerwacji to 123123. inform(reservation_id=123123) AND inform(seats=[M9, M10, M11])
|
||||
system Zostały ci przydzielone miejsca M9, M10, M11. Numer twojej rezerwacji to 123123. inform(reservation_id=123123) AND inform(seats=[M9, M10, M11])
|
||||
user Spoko ack()
|
||||
user Chciałbym jeszcze kupon na jedzenie null()
|
||||
system Zapraszamy do baru, który znajduje się za kasami biletowymi. W skład oferty barowej wchodzą: popcorn słony/słodki/maślany, oraz NachosyTM z wybranym sosem. offer()
|
||||
user Poproszę słony popcorn null()
|
||||
user Duży null()
|
||||
system Zapraszamy do baru, który znajduje się za kasami biletowymi. offer()
|
||||
user Chciałbym jeszcze kupon na jedzenie null()
|
||||
system Zapraszamy do baru, który znajduje się za kasami biletowymi. W skład oferty barowej wchodzą: popcorn słony/słodki/maślany, oraz NachosyTM z wybranym sosem. offer()
|
||||
user Poproszę słony popcorn null()
|
||||
user Duży null()
|
||||
system Zapraszamy do baru, który znajduje się za kasami biletowymi. offer()
|
||||
user Nara bye()
|
||||
|
|
@ -1,18 +1,18 @@
|
||||
user Dzień dobry hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Chciał bym zamówić bilet na film Minionki dzisiaj o 18.30 inform(goal=reservation) AND inform(quantity=1) AND inform(time=18:30) AND inform(title=Minionki)
|
||||
system "Niestety film ""Minionki"" nie jest obecnie dostępny. Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto."
|
||||
user Dzień dobry hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Chciał bym zamówić bilet na film Minionki dzisiaj o 18.30 inform(goal=reservation) AND inform(quantity=1) AND inform(time=18:30) AND inform(title=Minionki)
|
||||
system "Niestety film ""Minionki"" nie jest obecnie dostępny. Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto."
|
||||
user to poprosze ups 2 inform(title=ups 2)
|
||||
system Na jaki dzień i godzinę miałby być ten bilet? request(date) AND request(time)
|
||||
system Na jaki dzień i godzinę miałby być ten bilet? request(date) AND request(time)
|
||||
user na dzisiaj inform(date=today()
|
||||
user najlepiej 18.30 inform(time=18:30)
|
||||
system Dostępne godziny to: 18:00 oraz 20:00, czy któraś z nich jest odpowiednia? select(time)
|
||||
system Dostępne godziny to: 18:00 oraz 20:00, czy któraś z nich jest odpowiednia? select(time)
|
||||
user poprosze 18 inform(time=18:00)
|
||||
system Dobrze. W jakim rzędzie ma zostać dokonana rezerwacja? request(area)
|
||||
user jakie są dostępne miejsca? request(seats)
|
||||
system Dostępne miejsca to: A1, A2, A3, B11,B12, F13, M1, M2, M3, M4 oraz M5. select(seats)
|
||||
user które miejsca są daleko od ekranu? reqmore(area)
|
||||
system Najdalej od ekranu znajduje się rząd M. inform(area)
|
||||
user w takim razie poproszę M5 inform(seats=M5)
|
||||
system Zostało ci przydzielone miejsce M5. Numer twojej rezerwacji to 123123. expl-conf(seats=M5) AND inform(reservation_id=123123)
|
||||
system Dobrze. W jakim rzędzie ma zostać dokonana rezerwacja? request(area)
|
||||
user jakie są dostępne miejsca? request(seats)
|
||||
system Dostępne miejsca to: A1, A2, A3, B11,B12, F13, M1, M2, M3, M4 oraz M5. select(seats)
|
||||
user które miejsca są daleko od ekranu? reqmore(area)
|
||||
system Najdalej od ekranu znajduje się rząd M. inform(area)
|
||||
user w takim razie poproszę M5 inform(seats=M5)
|
||||
system Zostało ci przydzielone miejsce M5. Numer twojej rezerwacji to 123123. expl-conf(seats=M5) AND inform(reservation_id=123123)
|
||||
user dziekuje thankyou()
|
||||
|
|
@ -1,4 +1,4 @@
|
||||
user Dzień dobry hello()
|
||||
ďťżuser Dzień dobry hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Jakie usługi oferujecie? help()
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz odpowiedzi na ewentualne pytania użytkowników. select(goal)
|
||||
|
|
@ -1,17 +1,17 @@
|
||||
user Cześć hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Co mogę zarezerwować? reqmore(reservation)
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz odpowiedzi na ewentualne pytania użytkowników. select(goal)
|
||||
user Gdzie znajduje się kino? request(location)
|
||||
system Na podstawie twojej lokalizacji przydzieliliśmy ci: Multikino 51. Czy chcesz je zmienić. inform(location=Multikino 51)
|
||||
user Tak, chciałbym iść do multikina na Malcie inform(location=Malta)
|
||||
system "Twoje kino zostało zmienione na ""Multikino Malta"". Czy mogę pomóc w czymś jeszcze?" Expl-conf(location=Malta)
|
||||
user Super, teraz chciałbym zarezerwować bilet na film inform(goal=reservation)
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. Na jaki film mam zarezerwować bilet? select(title)
|
||||
user Cześć hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Co mogę zarezerwować? reqmore(reservation)
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz odpowiedzi na ewentualne pytania użytkowników. select(goal)
|
||||
user Gdzie znajduje się kino? request(location)
|
||||
system Na podstawie twojej lokalizacji przydzieliliśmy ci: Multikino 51. Czy chcesz je zmienić. inform(location=Multikino 51)
|
||||
user Tak, chciałbym iść do multikina na Malcie inform(location=Malta)
|
||||
system "Twoje kino zostało zmienione na ""Multikino Malta"". Czy mogę pomóc w czymś jeszcze?" Expl-conf(location=Malta)
|
||||
user Super, teraz chciałbym zarezerwować bilet na film inform(goal=reservation)
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. Na jaki film mam zarezerwować bilet? select(title)
|
||||
user Uncharted inform(title=Uncharted)
|
||||
system "Dostępne godziny na film ""Uncharted"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
system "Dostępne godziny na film ""Uncharted"" to: 12:00, 15:30, 17:30 oraz 20:00" select(time)
|
||||
user wybieram godzine 12:00 inform(time=12:00)
|
||||
system Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca i ile miejsc zarezerwować? request(area) AND request(quantity)
|
||||
user 1 miejsce, gdzieś na środku sali inform(quantity=1) AND inform(area=middle)
|
||||
system Zostało ci przydzielone miejsce J11. Numer twojej rezerwacji to 123123. inform(seats=J11) and inform(reservation_id=123123)
|
||||
system Dobrze. W jakim rzędzie mają zostać zarezerwowane miejsca i ile miejsc zarezerwować? request(area) AND request(quantity)
|
||||
user 1 miejsce, gdzieś na środku sali inform(quantity=1) AND inform(area=middle)
|
||||
system Zostało ci przydzielone miejsce J11. Numer twojej rezerwacji to 123123. inform(seats=J11) and inform(reservation_id=123123)
|
||||
user Pasuje ack()
|
||||
|
|
@ -1,27 +1,27 @@
|
||||
user Elo help()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Chciałabym zarezerwować bilet inform(goal=reservation) AND inform(quantity=1)
|
||||
system Dobrze. Na jaki film ma być ta rezerwacja? request(title)
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Chciałabym zarezerwować bilet inform(goal=reservation) AND inform(quantity=1)
|
||||
system Dobrze. Na jaki film ma być ta rezerwacja? request(title)
|
||||
user Co gracie request(title)
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select(title)
|
||||
user Ja bym chciała na Fantsaczne zwierzta inform(title=Fantastyczne zwierzęta: tajemnice dumbledorea)
|
||||
system Na jaki dzień i godzinę miałby być ten bilet? request(date) and request(time)
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select(title)
|
||||
user Ja bym chciała na Fantsaczne zwierzta inform(title=Fantastyczne zwierzęta: tajemnice dumbledorea)
|
||||
system Na jaki dzień i godzinę miałby być ten bilet? request(date) and request(time)
|
||||
user 29.03.2022 inform(date=2022.03.29)
|
||||
user Jakoś wieczorkiem inform(time=18:00+)
|
||||
system "Dostępne godziny na film ""Fantastyczne zwierzęta: tajemnice dumbledorea"" to: 17:30 oraz 20:00" expl-conf(title=Fantastyczne zwierzęta: tajemnice dumbledorea) AND select(time)
|
||||
user Jakoś wieczorkiem inform(time=18:00+)
|
||||
system "Dostępne godziny na film ""Fantastyczne zwierzęta: tajemnice dumbledorea"" to: 17:30 oraz 20:00" expl-conf(title=Fantastyczne zwierzęta: tajemnice dumbledorea) AND select(time)
|
||||
user To na 21 prosze inform(time=21:00)
|
||||
system Godzina 21:00 nie jest dostępna. Filmy puszczane są o 17:30 oraz 20:00. select(time)
|
||||
user To na 18 proszę inform(time=18:00)
|
||||
system Dobrze. Jakie miejsca zarezerwować? request(area)
|
||||
system Godzina 21:00 nie jest dostępna. Filmy puszczane są o 17:30 oraz 20:00. select(time)
|
||||
user To na 18 proszę inform(time=18:00)
|
||||
system Dobrze. Jakie miejsca zarezerwować? request(area)
|
||||
user Najlepsze inform(area=[random,random])
|
||||
system Zostały ci przydzielone miejsca I9, I10. Numer twojej rezerwacji to 123123. inform(seats=[I9,I10]) AND inform(reservation_id=123123)
|
||||
user Moment no ile tych miejsc i czemu nie są w tym samym rzędzie reqmore(quantity)
|
||||
user proszę z managerem null()
|
||||
system Ile biletów powinno znaleźć się w rezerwacji? request(quantity)
|
||||
user Jeden dla mnie i dla kotka proszę inform(quantity=2)
|
||||
system Zostały ci przydzielone miejsca I9, I10. Numer twojej rezerwacji to 123123. inform(seats=[I9,I10]) AND inform(reservation_id=123123)
|
||||
user Dobra, to blikiem proszę null()
|
||||
system System obsługuje jedynie rezerwację biletów. W uiszczenia opłaty proszę być 15 minut przed seansem w kinie, inaczej rezerwacja przepada. Dziękuję. bye()
|
||||
system Zostały ci przydzielone miejsca I9, I10. Numer twojej rezerwacji to 123123. inform(seats=[I9,I10]) AND inform(reservation_id=123123)
|
||||
user Moment no ile tych miejsc i czemu nie są w tym samym rzędzie reqmore(quantity)
|
||||
user proszę z managerem null()
|
||||
system Ile biletów powinno znaleźć się w rezerwacji? request(quantity)
|
||||
user Jeden dla mnie i dla kotka proszę inform(quantity=2)
|
||||
system Zostały ci przydzielone miejsca I9, I10. Numer twojej rezerwacji to 123123. inform(seats=[I9,I10]) AND inform(reservation_id=123123)
|
||||
user Dobra, to blikiem proszę null()
|
||||
system System obsługuje jedynie rezerwację biletów. W uiszczenia opłaty proszę być 15 minut przed seansem w kinie, inaczej rezerwacja przepada. Dziękuję. bye()
|
||||
user Halo halo null()
|
||||
user nie skończyłam null()
|
||||
user nie skończyłam null()
|
||||
user Ehhh null()
|
||||
|
|
@ -1,15 +1,15 @@
|
||||
user DZIEŃ DOBRY hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user No właśnie. W czym możesz pomóc? help()
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz odpowiedzi na ewentualne pytania użytkowników. inform(goal)
|
||||
user DZIEŃ DOBRY hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user No właśnie. W czym możesz pomóc? help()
|
||||
system Nasz system odpowiada za: rezerwację biletów kinowych oraz odpowiedzi na ewentualne pytania użytkowników. inform(goal)
|
||||
user A jedzonko macie? reqmore()
|
||||
system W skład oferty barowej wchodzą: popcorn słony/słodki/maślany, oraz NachosyTM z wybranym sosem. offer()
|
||||
user Nachosy proszę reqmore()
|
||||
system Zapraszamy do baru, który znajduje się za kasami biletowymi. offer()
|
||||
user A jakie sosy do Nachosów? reqmore()
|
||||
system Do NachosyTM można wybrać następujące sosy: BBQ, keczupowy, czosnkowy, ostry. offer()
|
||||
user Chciałabym anulować rezerwację inform(goal=cancel)
|
||||
system Dobrze, proszę o podanie numeru rezerwacji. request(reservation_id)
|
||||
system W skład oferty barowej wchodzą: popcorn słony/słodki/maślany, oraz NachosyTM z wybranym sosem. offer()
|
||||
user Nachosy proszę reqmore()
|
||||
system Zapraszamy do baru, który znajduje się za kasami biletowymi. offer()
|
||||
user A jakie sosy do Nachosów? reqmore()
|
||||
system Do NachosyTM można wybrać następujące sosy: BBQ, keczupowy, czosnkowy, ostry. offer()
|
||||
user Chciałabym anulować rezerwację inform(goal=cancel)
|
||||
system Dobrze, proszę o podanie numeru rezerwacji. request(reservation_id)
|
||||
user 123123 inform(reservation_id=123123)
|
||||
system "Rezerwacja o numerze ""123123"" została anulowana. " affirm()
|
||||
user Dzięki <3 thankyou()
|
||||
system "Rezerwacja o numerze ""123123"" została anulowana. " affirm()
|
||||
user Dzięki <3 thankyou()
|
||||
|
|
@ -1,7 +1,7 @@
|
||||
user Dzień dobry hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Chciałabym zmienić rezerwację inform(goal=cancel)
|
||||
system Proszę podać numer rezerwacji request(reservation_id)
|
||||
user Dzień dobry hello()
|
||||
system Witamy w internetowym systemie rezerwacji Nachos, w czym mogę pomóc? welcomemsg()
|
||||
user Chciałabym zmienić rezerwację inform(goal=cancel)
|
||||
system Proszę podać numer rezerwacji request(reservation_id)
|
||||
user 123123 inform(reservation_id=123123)
|
||||
system "Rezerwacja o numerze ""123123"" nie znajduje się w systemie. Upewnij się, ze jest to poprawny numer." canthelp.missing_slot_value
|
||||
user Upewniam się ack()
|
||||
system "Rezerwacja o numerze ""123123"" nie znajduje się w systemie. Upewnij się, ze jest to poprawny numer." canthelp.missing_slot_value
|
||||
user Upewniam się ack()
|
||||
|
|
22
data/dialog-18-09-01(test).tsv
Normal file
22
data/dialog-18-09-01(test).tsv
Normal file
@ -0,0 +1,22 @@
|
||||
user Hej hello()
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? welcomemsg() & request(goal)
|
||||
user Chciałbym kupić bilety na seans Zorro - jak to było na prawdę inform(title=Zorro - jak to było na prawdę) & inform(goal=reservation)
|
||||
system Film nie znajduje się w repertuarze. Podaj inny tytuł. canthelp() & request(title)
|
||||
user Zorro2 inform(title=Zorro2)
|
||||
system Film nie znajduje się w repertuarze. Podaj inny tytuł. canthelp() & request(title)
|
||||
user Poproszę o listę seansów reqmore(title)
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select(title)
|
||||
user Poproszę o listę filmów granych jutro wieczorem reqmore(title) & inform(date=2022-03-24)
|
||||
system Obecnie w repertuarze znajdują się: Batman, To nie wypanda, Inni ludzie, Ambulans, Uncharted, Ups 2, Nasze magiczne Encanto. select(title)
|
||||
user Chciałbym kupić bilety na film To nie wypanda inform(title=To nie wypanda)
|
||||
system Jutro wieczorem dostępne godziny to: 18:30, 20:15. select(time)
|
||||
user 20:15 inform(time=20:15)
|
||||
system Jaka ilość biletów ciebie interesuje? request(quantity)
|
||||
user 11 inform(quantity=11)
|
||||
system Gdzie chciałbyś usiąść? request(area)
|
||||
user W środku, pomiedzy górnym i środkowym rzędzie null()
|
||||
system Czy możesz powtórzyć? repeat()
|
||||
user W środku, pomiedzy górnym i środkowym rzędem inform(area=[back, middle])
|
||||
system Zostały ci przydzielone miejsca G3, G4, G5, G6, G7, G8, G9, G10, G11, G12, G13. Numer twojej rezerwacji to 04293. inform(seats=[g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13]) & inform(reservation_id=04293)
|
||||
user <3 thankyou()
|
||||
system Dziękujemy za skorzystanie z usług systemu kinowego Nachos. Miłego dnia. bye()
|
|
@ -17,10 +17,10 @@ system Jaki termin cię interesuje? request(date)
|
||||
user 22.03.2022 inform(date=2022-03-22)
|
||||
system Wybrana data jest z przeszłości. Proszę o podanie poprawnego terminu. repeat()
|
||||
user Jutro, po godzinie 16:00 inform(date=2022-03-24)
|
||||
system Dostępne godziny to: 17:45, 20:30. select(time)
|
||||
system Dostępne godziny to: 17:45, 20:30. select(time)
|
||||
user Jaki jutro jest dzień tygodnia? request(date)
|
||||
system Jutro jest czwartek, 24.03.2022. inform(date=2022-03-24)
|
||||
user To poproszę o rezerwację na 17L45 null()
|
||||
user To poproszę o rezerwację na 17L45 null()
|
||||
system Proszę o powtórzenie terminu rezerwacji. repeat()
|
||||
user 17:45 inform(time=17:45)
|
||||
system Gdzie chciałbyś usiąść? request(area)
|
||||
@ -29,4 +29,4 @@ system Zostało ci przydzielone miejsce L8. Numer twojej rezerwacji to 35263. in
|
||||
user W jakiej części rzędu znajduje się to miejsce? request(area)
|
||||
system Miejsce L8 znajduje się w środkowej części przedostatniego rzędu. inform(area=[back, middle])
|
||||
user Dziękuję thankyou()
|
||||
system Dziękujemy za skorzystanie z usług systemu kinowego Nachos. Miłego dnia. bye()
|
||||
system Dziękujemy za skorzystanie z usług systemu kinowego Nachos. Miłego dnia. bye()
|
||||
|
Can't render this file because it has a wrong number of fields in line 20.
|
17
data/dialog-19-10-01(test).tsv
Normal file
17
data/dialog-19-10-01(test).tsv
Normal file
@ -0,0 +1,17 @@
|
||||
user Dzień dobry hello()
|
||||
system Witam w systemie kinowym Nachos. Jak mogę ci pomóc? welcomemsg()
|
||||
user Chciał bym zamówić bilet na film Minionki dzisiaj o 18.30 inform(goal=reservation) AND inform(title=Minionki) AND inform(time=18:30)
|
||||
system Dziś nie gramy filmu 'Minionki' o godzinie 18:30 negate(title=Minionki) AND negate(time=18:30)
|
||||
user czy jest jakis film o godzinie 18:30? request(time=18:30)
|
||||
system Najbliższy film jest o godzinie 18:40 18:40 Matki równoległe offer(title=Matki równoległe) AND offer(time=18:40)
|
||||
user niech będzie ack()
|
||||
system Ile biletów? request(quantity)
|
||||
user 1 inform(quantity=1)
|
||||
system Normalny czy ulgowy ? canthelp()
|
||||
user jakie sš dostępne ulgi? null()
|
||||
system Studencka, serniorska, i pracownik kina offer(tickets_type)
|
||||
user studencka inform(tickets_type=[reduced, 1])
|
||||
system Dobrze, jakie miejsce Pana interesuje request(area)
|
||||
user daleko od ekranu inform(area=back)
|
||||
system Dobrze, miejsca Pana to L40. Czy zgadza się Pan z wyborem miejsca? inform(seats=L40) AND affirm(seats=L40)
|
||||
user tak ack()
|
|
120
lab/06-architektura-systemu-dialogowego.ipynb
Normal file
120
lab/06-architektura-systemu-dialogowego.ipynb
Normal file
File diff suppressed because one or more lines are too long
228
lab/07-parsing-semantyczny-gramatyki.ipynb
Normal file
228
lab/07-parsing-semantyczny-gramatyki.ipynb
Normal file
@ -0,0 +1,228 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Systemy Dialogowe </h1>\n",
|
||||
"<h2> 7. <i>Parsing semantyczny z wykorzystaniem gramatyk</i> [laboratoria]</h2> \n",
|
||||
"<h3> Marek Kubis (2021)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Parsing semantyczny z wykorzystaniem gramatyk\n",
|
||||
"=============================================\n",
|
||||
"\n",
|
||||
"Warto\u015bci slot\u00f3w mo\u017cemy wydobywa\u0107 z wypowiedzi u\u017cytkownika korzystaj\u0105c z takich technik, jak:\n",
|
||||
"\n",
|
||||
" - wyszukiwanie s\u0142\u00f3w kluczowych w tek\u015bcie,\n",
|
||||
"\n",
|
||||
" - dopasowywanie wzorc\u00f3w zbudowanych przy u\u017cyciu wyra\u017ce\u0144 regularnych,\n",
|
||||
"\n",
|
||||
" - parsery regu\u0142owe (temat dzisiejszych zaj\u0119\u0107),\n",
|
||||
"\n",
|
||||
" - uczenie maszynowe (temat kolejnych zaj\u0119\u0107)."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Przyk\u0142ady parser\u00f3w regu\u0142owych\n",
|
||||
"-----------------------------\n",
|
||||
"\n",
|
||||
" - [Phoenix](http://wiki.speech.cs.cmu.edu/olympus/index.php/Phoenix_Server) \u2014 parser gramatyk\n",
|
||||
" bezkontekstowych whodz\u0105cy w sk\u0142ad systemu dialogowego [Olympus](http://wiki.speech.cs.cmu.edu/olympus/index.php/Olympus)\n",
|
||||
"\n",
|
||||
" - Parsery [DCG](https://www.swi-prolog.org/pldoc/man?section=DCG) (Definite Clause Grammars) j\u0119zyka [Prolog](https://www.swi-prolog.org/)\n",
|
||||
"\n",
|
||||
" - [JSpeech Grammar Format](https://www.w3.org/TR/jsgf/) (JSGF)\n",
|
||||
"\n",
|
||||
"Przyk\u0142ad\n",
|
||||
"--------\n",
|
||||
"Zapiszmy w JSGF gramatyk\u0119 semantyczn\u0105 dla aktu dialogowego reprezentuj\u0105cego zamiar rezerwacji\n",
|
||||
"stolika w restauracji."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"%%writefile book.jsgf\n",
|
||||
"#JSGF V1.0 UTF-8 pl;\n",
|
||||
"\n",
|
||||
"grammar book;\n",
|
||||
"\n",
|
||||
"public <rezerwuj> = chcia\u0142bym zarezerwowa\u0107 stolik <dzien_rezerwacji> <godzina_rezerwacji> <liczba_osob> ;\n",
|
||||
"\n",
|
||||
"<dzien_rezerwacji> = na <dzien> {day};\n",
|
||||
"\n",
|
||||
"<dzien> = dzisiaj | jutro | poniedzia\u0142ek | wtorek | \u015brod\u0119 | czwartek | pi\u0105tek | sobot\u0119 | niedziel\u0119;\n",
|
||||
"\n",
|
||||
"<godzina_rezerwacji> = na [godzin\u0119] <godzina_z_minutami> {hour};\n",
|
||||
"\n",
|
||||
"<godzina_z_minutami> = <godzina> [<minuty>];\n",
|
||||
"\n",
|
||||
"<godzina> = dziewi\u0105t\u0105 | dziesi\u0105t\u0105 | jedenast\u0105 | dwunast\u0105;\n",
|
||||
"\n",
|
||||
"<minuty> = pietna\u015bcie | trzydzie\u015bci;\n",
|
||||
"\n",
|
||||
"<liczba_osob> = (na | dla) <liczba> {size} os\u00f3b;\n",
|
||||
"\n",
|
||||
"<liczba> = dwie | dw\u00f3ch | trzy | trzech | cztery | czterech | pi\u0119\u0107 | pieciu;\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Parser akceptuj\u0105cy powy\u017csz\u0105 gramatyk\u0119 utworzymy korzystaj\u0105c z biblioteki [pyjsgf](https://github.com/Danesprite/pyjsgf)."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import jsgf\n",
|
||||
"\n",
|
||||
"book_grammar = jsgf.parse_grammar_file('book.jsgf')\n",
|
||||
"book_grammar"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Wykorzystajmy gramatyk\u0119 `book.jsgf` do analizy nast\u0119puj\u0105cej wypowiedzi"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"utterance = 'chcia\u0142bym zarezerwowa\u0107 stolik na jutro na godzin\u0119 dwunast\u0105 trzydzie\u015bci na pi\u0119\u0107 os\u00f3b'\n",
|
||||
"matched = book_grammar.find_matching_rules(utterance)\n",
|
||||
"matched"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Reprezentacj\u0119 znaczenia mo\u017cna wydoby\u0107 ze sparsowanej wypowiedzi na wiele sposob\u00f3w. My do\n",
|
||||
"wydobywania slot\u00f3w wykorzystamy mechanizm tag\u00f3w JSGF a za nazw\u0119 aktu dialogowego przyjmiemy nazw\u0119\n",
|
||||
"gramatyki. Wzoruj\u0105c si\u0119 na [DSTC2](https://github.com/matthen/dstc) wynikow\u0105 ram\u0119 zapiszemy korzystaj\u0105c ze s\u0142ownika o polach `act` i `slots`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def get_dialog_act(rule):\n",
|
||||
" slots = []\n",
|
||||
" get_slots(rule.expansion, slots)\n",
|
||||
" return {'act': rule.grammar.name, 'slots': slots}\n",
|
||||
"\n",
|
||||
"def get_slots(expansion, slots):\n",
|
||||
" if expansion.tag != '':\n",
|
||||
" slots.append((expansion.tag, expansion.current_match))\n",
|
||||
" return\n",
|
||||
"\n",
|
||||
" for child in expansion.children:\n",
|
||||
" get_slots(child, slots)\n",
|
||||
"\n",
|
||||
" if not expansion.children and isinstance(expansion, jsgf.NamedRuleRef):\n",
|
||||
" get_slots(expansion.referenced_rule.expansion, slots)\n",
|
||||
"\n",
|
||||
"get_dialog_act(matched[0])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"\u0141\u0105cz\u0105c powy\u017csze funkcje mo\u017cemy zbudowa\u0107 prosty modu\u0142 NLU."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def nlu(utterance):\n",
|
||||
" matched = book_grammar.find_matching_rules(utterance)\n",
|
||||
"\n",
|
||||
" if matched:\n",
|
||||
" return get_dialog_act(matched[0])\n",
|
||||
" else:\n",
|
||||
" return {'act': 'null', 'slots': []}\n",
|
||||
"\n",
|
||||
"nlu('chcia\u0142bym zarezerwowa\u0107 stolik na jutro na godzin\u0119 dziesi\u0105t\u0105 dla trzech os\u00f3b')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Problemy\n",
|
||||
"--------\n",
|
||||
"\n",
|
||||
" - Co z normalizacj\u0105 wyra\u017ce\u0144 liczbowych takich, jak godziny, daty czy numery telefon\u00f3w?\n",
|
||||
"\n",
|
||||
" - Co w przypadku gdy wi\u0119cej ni\u017c jedna regu\u0142a zostanie dopasowana?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Zadanie\n",
|
||||
"-------\n",
|
||||
"Zaimplementowa\u0107 analizator j\u0119zyka naturalnego (NLU) na potrzeby realizowanego agenta dialogowego.\n",
|
||||
"\n",
|
||||
"Modu\u0142 powinien by\u0107 zbudowany z wykorzystaniem parsingu regu\u0142owego i/lub technik uczenia maszynowego.\n",
|
||||
"\n",
|
||||
"Przygotowa\u0107 skrypt `evaluate.py` wyznaczaj\u0105cy *dok\u0142adno\u015b\u0107* (ang. accuracy) analizatora wzgl\u0119dem zgromadzonego korpusu eksperymentalnego,\n",
|
||||
"tj. stosunek liczby wypowiedzi u\u017cytkownika, w kt\u00f3rych akty dialogowe zosta\u0142y rozpoznane prawid\u0142owo do liczby wszystkich wypowiedzi u\u017cytkownika w korpusie.\n",
|
||||
"\n",
|
||||
"Analizator j\u0119zyka naturalnego umie\u015bci\u0107 w ga\u0142\u0119zi `master` repozytorium projektowego. Skrypt `evaluate.py` umie\u015bci\u0107 w katalogu g\u0142\u00f3wnym tej ga\u0142\u0119zi.\n",
|
||||
"\n",
|
||||
"Termin: 4.05.2022, godz. 23:59."
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"jupytext": {
|
||||
"cell_metadata_filter": "-all",
|
||||
"main_language": "python",
|
||||
"notebook_metadata_filter": "-all"
|
||||
},
|
||||
"author": "Marek Kubis",
|
||||
"email": "mkubis@amu.edu.pl",
|
||||
"lang": "pl",
|
||||
"subtitle": "7.Parsing semantyczny z wykorzystaniem gramatyk[laboratoria]",
|
||||
"title": "Systemy Dialogowe",
|
||||
"year": "2021"
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
895
lab/08-parsing-semantyczny-uczenie(zmodyfikowany).ipynb
Normal file
895
lab/08-parsing-semantyczny-uczenie(zmodyfikowany).ipynb
Normal file
@ -0,0 +1,895 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Systemy Dialogowe </h1>\n",
|
||||
"<h2> 8. <i>Parsing semantyczny z wykorzystaniem technik uczenia maszynowego</i> [laboratoria]</h2> \n",
|
||||
"<h3> Marek Kubis (2021)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Parsing semantyczny z wykorzystaniem technik uczenia maszynowego\n",
|
||||
"================================================================\n",
|
||||
"\n",
|
||||
"Wprowadzenie\n",
|
||||
"------------\n",
|
||||
"Problem wykrywania slotów i ich wartości w wypowiedziach użytkownika można sformułować jako zadanie\n",
|
||||
"polegające na przewidywaniu dla poszczególnych słów etykiet wskazujących na to czy i do jakiego\n",
|
||||
"slotu dane słowo należy.\n",
|
||||
"\n",
|
||||
"> chciałbym zarezerwować stolik na jutro**/day** na godzinę dwunastą**/hour** czterdzieści**/hour** pięć**/hour** na pięć**/size** osób\n",
|
||||
"\n",
|
||||
"Granice slotów oznacza się korzystając z wybranego schematu etykietowania.\n",
|
||||
"\n",
|
||||
"### Schemat IOB\n",
|
||||
"\n",
|
||||
"| Prefix | Znaczenie |\n",
|
||||
"|:------:|:---------------------------|\n",
|
||||
"| I | wnętrze slotu (inside) |\n",
|
||||
"| O | poza slotem (outside) |\n",
|
||||
"| B | początek slotu (beginning) |\n",
|
||||
"\n",
|
||||
"> chciałbym zarezerwować stolik na jutro**/B-day** na godzinę dwunastą**/B-hour** czterdzieści**/I-hour** pięć**/I-hour** na pięć**/B-size** osób\n",
|
||||
"\n",
|
||||
"### Schemat IOBES\n",
|
||||
"\n",
|
||||
"| Prefix | Znaczenie |\n",
|
||||
"|:------:|:---------------------------|\n",
|
||||
"| I | wnętrze slotu (inside) |\n",
|
||||
"| O | poza slotem (outside) |\n",
|
||||
"| B | początek slotu (beginning) |\n",
|
||||
"| E | koniec slotu (ending) |\n",
|
||||
"| S | pojedyncze słowo (single) |\n",
|
||||
"\n",
|
||||
"> chciałbym zarezerwować stolik na jutro**/S-day** na godzinę dwunastą**/B-hour** czterdzieści**/I-hour** pięć**/E-hour** na pięć**/S-size** osób\n",
|
||||
"\n",
|
||||
"Jeżeli dla tak sformułowanego zadania przygotujemy zbiór danych\n",
|
||||
"złożony z wypowiedzi użytkownika z oznaczonymi slotami (tzw. *zbiór uczący*),\n",
|
||||
"to możemy zastosować techniki (nadzorowanego) uczenia maszynowego w celu zbudowania modelu\n",
|
||||
"annotującego wypowiedzi użytkownika etykietami slotów.\n",
|
||||
"\n",
|
||||
"Do zbudowania takiego modelu można wykorzystać między innymi:\n",
|
||||
"\n",
|
||||
" 1. warunkowe pola losowe (Lafferty i in.; 2001),\n",
|
||||
"\n",
|
||||
" 2. rekurencyjne sieci neuronowe, np. sieci LSTM (Hochreiter i Schmidhuber; 1997),\n",
|
||||
"\n",
|
||||
" 3. transformery (Vaswani i in., 2017).\n",
|
||||
"\n",
|
||||
"Przykład\n",
|
||||
"--------\n",
|
||||
"Skorzystamy ze zbioru danych przygotowanego przez Schustera (2019)."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Zbiór ten gromadzi wypowiedzi w trzech językach opisane slotami dla dwunastu ram należących do trzech dziedzin `Alarm`, `Reminder` oraz `Weather`. Dane wczytamy korzystając z biblioteki [conllu](https://pypi.org/project/conllu/)."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 23,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"# text: halo\t\t\t\n",
|
||||
"\n",
|
||||
"# intent: hello\t\t\t\n",
|
||||
"\n",
|
||||
"# slots: \t\t\t\n",
|
||||
"\n",
|
||||
"1\thalo\thello\tNoLabel\n",
|
||||
"\n",
|
||||
"\t\t\t\n",
|
||||
"\n",
|
||||
"# text: chaciałbym pójść na premierę filmu jakie premiery są w tym tygodniu\t\t\t\n",
|
||||
"\n",
|
||||
"# intent: reqmore\t\t\t\n",
|
||||
"\n",
|
||||
"# slots: \t\t\t\n",
|
||||
"\n",
|
||||
"1\tchaciałbym\treqmore\tNoLabel\n",
|
||||
"\n",
|
||||
"2\tpójść\treqmore\tNoLabel\n",
|
||||
"\n",
|
||||
"3\tna\treqmore\tNoLabel\n",
|
||||
"\n",
|
||||
"4\tpremierę\treqmore\tNoLabel\n",
|
||||
"\n",
|
||||
"5\tfilmu\treqmore\tNoLabel\n",
|
||||
"\n",
|
||||
"6\tjakie\treqmore\tB-goal\n",
|
||||
"\n",
|
||||
"7\tpremiery\treqmore\tI-goal\n",
|
||||
"\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"from conllu import parse_incr\n",
|
||||
"fields = ['id', 'form', 'frame', 'slot']\n",
|
||||
"\n",
|
||||
"def nolabel2o(line, i):\n",
|
||||
" return 'O' if line[i] == 'NoLabel' else line[i]\n",
|
||||
"# pathTrain = '../tasks/zad8/en/train-en.conllu'\n",
|
||||
"# pathTest = '../tasks/zad8/en/test-en.conllu'\n",
|
||||
"\n",
|
||||
"pathTrain = '../tasks/zad8/pl/train.conllu'\n",
|
||||
"pathTest = '../tasks/zad8/pl/test.conllu'\n",
|
||||
"\n",
|
||||
"with open(pathTrain, encoding=\"UTF-8\") as trainfile:\n",
|
||||
" i=0\n",
|
||||
" for line in trainfile:\n",
|
||||
" print(line)\n",
|
||||
" i+=1\n",
|
||||
" if i==15: break \n",
|
||||
" trainset = list(parse_incr(trainfile, fields=fields, field_parsers={'slot': nolabel2o}))\n",
|
||||
"with open(pathTest, encoding=\"UTF-8\") as testfile:\n",
|
||||
" testset = list(parse_incr(testfile, fields=fields, field_parsers={'slot': nolabel2o}))\n",
|
||||
" "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Zobaczmy kilka przykładowych wypowiedzi z tego zbioru."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 24,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<table>\n",
|
||||
"<tbody>\n",
|
||||
"<tr><td style=\"text-align: right;\">1</td><td>wybieram</td><td>inform</td><td>O </td></tr>\n",
|
||||
"<tr><td style=\"text-align: right;\">2</td><td>batmana </td><td>inform</td><td>B-title</td></tr>\n",
|
||||
"</tbody>\n",
|
||||
"</table>"
|
||||
],
|
||||
"text/plain": [
|
||||
"'<table>\\n<tbody>\\n<tr><td style=\"text-align: right;\">1</td><td>wybieram</td><td>inform</td><td>O </td></tr>\\n<tr><td style=\"text-align: right;\">2</td><td>batmana </td><td>inform</td><td>B-title</td></tr>\\n</tbody>\\n</table>'"
|
||||
]
|
||||
},
|
||||
"execution_count": 24,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"from tabulate import tabulate\n",
|
||||
"tabulate(trainset[1], tablefmt='html')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 25,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<table>\n",
|
||||
"<tbody>\n",
|
||||
"<tr><td style=\"text-align: right;\">1</td><td>chcę </td><td>inform</td><td>O </td></tr>\n",
|
||||
"<tr><td style=\"text-align: right;\">2</td><td>zarezerwować</td><td>inform</td><td>B-goal</td></tr>\n",
|
||||
"<tr><td style=\"text-align: right;\">3</td><td>bilety </td><td>inform</td><td>O </td></tr>\n",
|
||||
"</tbody>\n",
|
||||
"</table>"
|
||||
],
|
||||
"text/plain": [
|
||||
"'<table>\\n<tbody>\\n<tr><td style=\"text-align: right;\">1</td><td>chcę </td><td>inform</td><td>O </td></tr>\\n<tr><td style=\"text-align: right;\">2</td><td>zarezerwować</td><td>inform</td><td>B-goal</td></tr>\\n<tr><td style=\"text-align: right;\">3</td><td>bilety </td><td>inform</td><td>O </td></tr>\\n</tbody>\\n</table>'"
|
||||
]
|
||||
},
|
||||
"execution_count": 25,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"tabulate(trainset[16], tablefmt='html')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 26,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<table>\n",
|
||||
"<tbody>\n",
|
||||
"<tr><td style=\"text-align: right;\">1</td><td>chciałbym </td><td>inform</td><td>O</td></tr>\n",
|
||||
"<tr><td style=\"text-align: right;\">2</td><td>anulować </td><td>inform</td><td>O</td></tr>\n",
|
||||
"<tr><td style=\"text-align: right;\">3</td><td>rezerwację</td><td>inform</td><td>O</td></tr>\n",
|
||||
"<tr><td style=\"text-align: right;\">4</td><td>biletu </td><td>inform</td><td>O</td></tr>\n",
|
||||
"</tbody>\n",
|
||||
"</table>"
|
||||
],
|
||||
"text/plain": [
|
||||
"'<table>\\n<tbody>\\n<tr><td style=\"text-align: right;\">1</td><td>chciałbym </td><td>inform</td><td>O</td></tr>\\n<tr><td style=\"text-align: right;\">2</td><td>anulować </td><td>inform</td><td>O</td></tr>\\n<tr><td style=\"text-align: right;\">3</td><td>rezerwację</td><td>inform</td><td>O</td></tr>\\n<tr><td style=\"text-align: right;\">4</td><td>biletu </td><td>inform</td><td>O</td></tr>\\n</tbody>\\n</table>'"
|
||||
]
|
||||
},
|
||||
"execution_count": 26,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"tabulate(trainset[20], tablefmt='html')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Budując model skorzystamy z architektury opartej o rekurencyjne sieci neuronowe\n",
|
||||
"zaimplementowanej w bibliotece [flair](https://github.com/flairNLP/flair) (Akbik i in. 2018)."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 27,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from flair.data import Corpus, Sentence, Token\n",
|
||||
"from flair.datasets import SentenceDataset\n",
|
||||
"from flair.embeddings import StackedEmbeddings\n",
|
||||
"from flair.embeddings import WordEmbeddings\n",
|
||||
"from flair.embeddings import CharacterEmbeddings\n",
|
||||
"from flair.embeddings import FlairEmbeddings\n",
|
||||
"from flair.models import SequenceTagger\n",
|
||||
"from flair.trainers import ModelTrainer\n",
|
||||
"\n",
|
||||
"# determinizacja obliczeń\n",
|
||||
"import random\n",
|
||||
"import torch\n",
|
||||
"random.seed(42)\n",
|
||||
"torch.manual_seed(42)\n",
|
||||
"\n",
|
||||
"if torch.cuda.is_available():\n",
|
||||
" torch.cuda.manual_seed(0)\n",
|
||||
" torch.cuda.manual_seed_all(0)\n",
|
||||
" torch.backends.cudnn.enabled = False\n",
|
||||
" torch.backends.cudnn.benchmark = False\n",
|
||||
" torch.backends.cudnn.deterministic = True"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Dane skonwertujemy do formatu wykorzystywanego przez `flair`, korzystając z następującej funkcji."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 28,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Corpus: 345 train + 38 dev + 32 test sentences\n",
|
||||
"Dictionary with 20 tags: <unk>, O, B-interval, I-interval, B-title, B-date, I-date, B-time, B-quantity, B-area, I-area, B-goal, I-goal, I-title, I-time, I-quantity, B-seats, I-seats, <START>, <STOP>\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def conllu2flair(sentences, label=None):\n",
|
||||
" fsentences = []\n",
|
||||
"\n",
|
||||
" for sentence in sentences:\n",
|
||||
" fsentence = Sentence()\n",
|
||||
"\n",
|
||||
" for token in sentence:\n",
|
||||
" ftoken = Token(token['form'])\n",
|
||||
"\n",
|
||||
" if label:\n",
|
||||
" ftoken.add_tag(label, token[label])\n",
|
||||
"\n",
|
||||
" fsentence.add_token(ftoken)\n",
|
||||
"\n",
|
||||
" fsentences.append(fsentence)\n",
|
||||
"\n",
|
||||
" return SentenceDataset(fsentences)\n",
|
||||
"\n",
|
||||
"corpus = Corpus(train=conllu2flair(trainset, 'slot'), test=conllu2flair(testset, 'slot'))\n",
|
||||
"print(corpus)\n",
|
||||
"tag_dictionary = corpus.make_tag_dictionary(tag_type='slot')\n",
|
||||
"print(tag_dictionary)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Nasz model będzie wykorzystywał wektorowe reprezentacje słów (zob. [Word Embeddings](https://github.com/flairNLP/flair/blob/master/resources/docs/TUTORIAL_3_WORD_EMBEDDING.md))."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 29,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"embedding_types = [\n",
|
||||
" WordEmbeddings('pl'),\n",
|
||||
" FlairEmbeddings('polish-forward'),\n",
|
||||
" FlairEmbeddings('polish-backward'),\n",
|
||||
" CharacterEmbeddings(),\n",
|
||||
"]\n",
|
||||
"\n",
|
||||
"embeddings = StackedEmbeddings(embeddings=embedding_types)\n",
|
||||
"tagger = SequenceTagger(hidden_size=256, embeddings=embeddings,\n",
|
||||
" tag_dictionary=tag_dictionary,\n",
|
||||
" tag_type='slot', use_crf=True)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Zobaczmy jak wygląda architektura sieci neuronowej, która będzie odpowiedzialna za przewidywanie\n",
|
||||
"slotów w wypowiedziach."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 30,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"SequenceTagger(\n",
|
||||
" (embeddings): StackedEmbeddings(\n",
|
||||
" (list_embedding_0): WordEmbeddings('pl')\n",
|
||||
" (list_embedding_1): FlairEmbeddings(\n",
|
||||
" (lm): LanguageModel(\n",
|
||||
" (drop): Dropout(p=0.25, inplace=False)\n",
|
||||
" (encoder): Embedding(1602, 100)\n",
|
||||
" (rnn): LSTM(100, 2048)\n",
|
||||
" (decoder): Linear(in_features=2048, out_features=1602, bias=True)\n",
|
||||
" )\n",
|
||||
" )\n",
|
||||
" (list_embedding_2): FlairEmbeddings(\n",
|
||||
" (lm): LanguageModel(\n",
|
||||
" (drop): Dropout(p=0.25, inplace=False)\n",
|
||||
" (encoder): Embedding(1602, 100)\n",
|
||||
" (rnn): LSTM(100, 2048)\n",
|
||||
" (decoder): Linear(in_features=2048, out_features=1602, bias=True)\n",
|
||||
" )\n",
|
||||
" )\n",
|
||||
" (list_embedding_3): CharacterEmbeddings(\n",
|
||||
" (char_embedding): Embedding(275, 25)\n",
|
||||
" (char_rnn): LSTM(25, 25, bidirectional=True)\n",
|
||||
" )\n",
|
||||
" )\n",
|
||||
" (word_dropout): WordDropout(p=0.05)\n",
|
||||
" (locked_dropout): LockedDropout(p=0.5)\n",
|
||||
" (embedding2nn): Linear(in_features=4446, out_features=4446, bias=True)\n",
|
||||
" (rnn): LSTM(4446, 256, batch_first=True, bidirectional=True)\n",
|
||||
" (linear): Linear(in_features=512, out_features=20, bias=True)\n",
|
||||
" (beta): 1.0\n",
|
||||
" (weights): None\n",
|
||||
" (weight_tensor) None\n",
|
||||
")\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"print(tagger)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Wykonamy dziesięć iteracji (epok) uczenia a wynikowy model zapiszemy w katalogu `slot-model`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 31,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"2022-05-01 12:13:39,609 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:13:39,610 Model: \"SequenceTagger(\n",
|
||||
" (embeddings): StackedEmbeddings(\n",
|
||||
" (list_embedding_0): WordEmbeddings('pl')\n",
|
||||
" (list_embedding_1): FlairEmbeddings(\n",
|
||||
" (lm): LanguageModel(\n",
|
||||
" (drop): Dropout(p=0.25, inplace=False)\n",
|
||||
" (encoder): Embedding(1602, 100)\n",
|
||||
" (rnn): LSTM(100, 2048)\n",
|
||||
" (decoder): Linear(in_features=2048, out_features=1602, bias=True)\n",
|
||||
" )\n",
|
||||
" )\n",
|
||||
" (list_embedding_2): FlairEmbeddings(\n",
|
||||
" (lm): LanguageModel(\n",
|
||||
" (drop): Dropout(p=0.25, inplace=False)\n",
|
||||
" (encoder): Embedding(1602, 100)\n",
|
||||
" (rnn): LSTM(100, 2048)\n",
|
||||
" (decoder): Linear(in_features=2048, out_features=1602, bias=True)\n",
|
||||
" )\n",
|
||||
" )\n",
|
||||
" (list_embedding_3): CharacterEmbeddings(\n",
|
||||
" (char_embedding): Embedding(275, 25)\n",
|
||||
" (char_rnn): LSTM(25, 25, bidirectional=True)\n",
|
||||
" )\n",
|
||||
" )\n",
|
||||
" (word_dropout): WordDropout(p=0.05)\n",
|
||||
" (locked_dropout): LockedDropout(p=0.5)\n",
|
||||
" (embedding2nn): Linear(in_features=4446, out_features=4446, bias=True)\n",
|
||||
" (rnn): LSTM(4446, 256, batch_first=True, bidirectional=True)\n",
|
||||
" (linear): Linear(in_features=512, out_features=20, bias=True)\n",
|
||||
" (beta): 1.0\n",
|
||||
" (weights): None\n",
|
||||
" (weight_tensor) None\n",
|
||||
")\"\n",
|
||||
"2022-05-01 12:13:39,611 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:13:39,611 Corpus: \"Corpus: 345 train + 38 dev + 32 test sentences\"\n",
|
||||
"2022-05-01 12:13:39,612 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:13:39,613 Parameters:\n",
|
||||
"2022-05-01 12:13:39,614 - learning_rate: \"0.1\"\n",
|
||||
"2022-05-01 12:13:39,614 - mini_batch_size: \"32\"\n",
|
||||
"2022-05-01 12:13:39,615 - patience: \"3\"\n",
|
||||
"2022-05-01 12:13:39,616 - anneal_factor: \"0.5\"\n",
|
||||
"2022-05-01 12:13:39,616 - max_epochs: \"10\"\n",
|
||||
"2022-05-01 12:13:39,616 - shuffle: \"True\"\n",
|
||||
"2022-05-01 12:13:39,617 - train_with_dev: \"False\"\n",
|
||||
"2022-05-01 12:13:39,618 - batch_growth_annealing: \"False\"\n",
|
||||
"2022-05-01 12:13:39,618 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:13:39,619 Model training base path: \"slot-model\"\n",
|
||||
"2022-05-01 12:13:39,620 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:13:39,620 Device: cpu\n",
|
||||
"2022-05-01 12:13:39,621 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:13:39,621 Embeddings storage mode: cpu\n",
|
||||
"2022-05-01 12:13:39,623 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:13:42,490 epoch 1 - iter 1/11 - loss 9.59000492 - samples/sec: 11.17 - lr: 0.100000\n",
|
||||
"2022-05-01 12:13:44,150 epoch 1 - iter 2/11 - loss 9.31767702 - samples/sec: 19.29 - lr: 0.100000\n",
|
||||
"2022-05-01 12:13:45,968 epoch 1 - iter 3/11 - loss 8.70617644 - samples/sec: 17.61 - lr: 0.100000\n",
|
||||
"2022-05-01 12:13:47,791 epoch 1 - iter 4/11 - loss 8.11678410 - samples/sec: 17.57 - lr: 0.100000\n",
|
||||
"2022-05-01 12:13:49,815 epoch 1 - iter 5/11 - loss 7.65581417 - samples/sec: 15.82 - lr: 0.100000\n",
|
||||
"2022-05-01 12:13:52,296 epoch 1 - iter 6/11 - loss 7.27475810 - samples/sec: 12.90 - lr: 0.100000\n",
|
||||
"2022-05-01 12:13:54,454 epoch 1 - iter 7/11 - loss 6.95693064 - samples/sec: 14.84 - lr: 0.100000\n",
|
||||
"2022-05-01 12:13:56,845 epoch 1 - iter 8/11 - loss 6.61199290 - samples/sec: 13.39 - lr: 0.100000\n",
|
||||
"2022-05-01 12:13:59,195 epoch 1 - iter 9/11 - loss 6.58955601 - samples/sec: 13.63 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:01,065 epoch 1 - iter 10/11 - loss 6.63135071 - samples/sec: 17.11 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:02,415 epoch 1 - iter 11/11 - loss 6.52558366 - samples/sec: 23.72 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:02,416 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:14:02,417 EPOCH 1 done: loss 6.5256 - lr 0.1000000\n",
|
||||
"2022-05-01 12:14:05,139 DEV : loss 8.419286727905273 - score 0.0\n",
|
||||
"2022-05-01 12:14:05,141 BAD EPOCHS (no improvement): 0\n",
|
||||
"saving best model\n",
|
||||
"2022-05-01 12:14:15,906 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:14:16,782 epoch 2 - iter 1/11 - loss 7.61237478 - samples/sec: 40.25 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:17,253 epoch 2 - iter 2/11 - loss 7.02023911 - samples/sec: 68.09 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:17,744 epoch 2 - iter 3/11 - loss 6.25125138 - samples/sec: 65.31 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:18,282 epoch 2 - iter 4/11 - loss 5.91574061 - samples/sec: 59.59 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:18,742 epoch 2 - iter 5/11 - loss 5.80905600 - samples/sec: 69.87 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:19,262 epoch 2 - iter 6/11 - loss 5.51969266 - samples/sec: 61.66 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:19,753 epoch 2 - iter 7/11 - loss 5.34836953 - samples/sec: 65.31 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:20,267 epoch 2 - iter 8/11 - loss 5.33710295 - samples/sec: 62.38 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:20,750 epoch 2 - iter 9/11 - loss 5.28061861 - samples/sec: 66.32 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:21,379 epoch 2 - iter 10/11 - loss 5.20552692 - samples/sec: 50.95 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:21,922 epoch 2 - iter 11/11 - loss 5.26294283 - samples/sec: 59.03 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:21,923 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:14:21,924 EPOCH 2 done: loss 5.2629 - lr 0.1000000\n",
|
||||
"2022-05-01 12:14:22,145 DEV : loss 7.168168544769287 - score 0.0645\n",
|
||||
"2022-05-01 12:14:22,149 BAD EPOCHS (no improvement): 0\n",
|
||||
"saving best model\n",
|
||||
"2022-05-01 12:14:27,939 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:14:28,495 epoch 3 - iter 1/11 - loss 3.70659065 - samples/sec: 57.56 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:29,038 epoch 3 - iter 2/11 - loss 4.21530080 - samples/sec: 59.04 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:29,607 epoch 3 - iter 3/11 - loss 4.40864404 - samples/sec: 56.37 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:30,171 epoch 3 - iter 4/11 - loss 4.69527233 - samples/sec: 56.93 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:30,587 epoch 3 - iter 5/11 - loss 4.43719640 - samples/sec: 77.11 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:31,075 epoch 3 - iter 6/11 - loss 4.55344125 - samples/sec: 65.71 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:31,625 epoch 3 - iter 7/11 - loss 4.77397609 - samples/sec: 58.34 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:32,143 epoch 3 - iter 8/11 - loss 4.61572361 - samples/sec: 61.89 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:32,703 epoch 3 - iter 9/11 - loss 4.60090372 - samples/sec: 57.24 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:33,404 epoch 3 - iter 10/11 - loss 4.70502276 - samples/sec: 45.69 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:33,839 epoch 3 - iter 11/11 - loss 4.76321775 - samples/sec: 73.73 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:33,840 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:14:33,840 EPOCH 3 done: loss 4.7632 - lr 0.1000000\n",
|
||||
"2022-05-01 12:14:33,992 DEV : loss 7.209894180297852 - score 0.0\n",
|
||||
"2022-05-01 12:14:33,993 BAD EPOCHS (no improvement): 1\n",
|
||||
"2022-05-01 12:14:33,994 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:14:34,556 epoch 4 - iter 1/11 - loss 5.55247641 - samples/sec: 57.04 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:35,078 epoch 4 - iter 2/11 - loss 5.08158088 - samples/sec: 61.42 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:35,643 epoch 4 - iter 3/11 - loss 4.69475476 - samples/sec: 56.73 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:36,270 epoch 4 - iter 4/11 - loss 4.78649628 - samples/sec: 51.16 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:36,806 epoch 4 - iter 5/11 - loss 4.62873497 - samples/sec: 59.93 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:37,419 epoch 4 - iter 6/11 - loss 4.70938087 - samples/sec: 52.29 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:38,068 epoch 4 - iter 7/11 - loss 4.50588363 - samples/sec: 49.46 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:38,581 epoch 4 - iter 8/11 - loss 4.36334288 - samples/sec: 62.50 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:39,140 epoch 4 - iter 9/11 - loss 4.36617618 - samples/sec: 57.45 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:39,780 epoch 4 - iter 10/11 - loss 4.37847199 - samples/sec: 50.16 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:40,321 epoch 4 - iter 11/11 - loss 4.26116128 - samples/sec: 59.18 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:40,323 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:14:40,324 EPOCH 4 done: loss 4.2612 - lr 0.1000000\n",
|
||||
"2022-05-01 12:14:40,544 DEV : loss 5.882441997528076 - score 0.1714\n",
|
||||
"2022-05-01 12:14:40,546 BAD EPOCHS (no improvement): 0\n",
|
||||
"saving best model\n",
|
||||
"2022-05-01 12:14:46,159 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:14:46,709 epoch 5 - iter 1/11 - loss 3.86370564 - samples/sec: 58.29 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:47,349 epoch 5 - iter 2/11 - loss 3.80554891 - samples/sec: 50.08 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:47,857 epoch 5 - iter 3/11 - loss 3.34506067 - samples/sec: 63.11 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:48,579 epoch 5 - iter 4/11 - loss 3.88535106 - samples/sec: 44.38 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:49,170 epoch 5 - iter 5/11 - loss 3.81894360 - samples/sec: 54.28 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:49,708 epoch 5 - iter 6/11 - loss 4.18858314 - samples/sec: 59.53 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:50,171 epoch 5 - iter 7/11 - loss 4.13974752 - samples/sec: 69.26 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:50,593 epoch 5 - iter 8/11 - loss 4.01002905 - samples/sec: 75.98 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:51,062 epoch 5 - iter 9/11 - loss 3.97078644 - samples/sec: 68.52 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:51,508 epoch 5 - iter 10/11 - loss 3.94409857 - samples/sec: 71.91 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:51,960 epoch 5 - iter 11/11 - loss 3.80738796 - samples/sec: 70.95 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:51,961 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:14:51,963 EPOCH 5 done: loss 3.8074 - lr 0.1000000\n",
|
||||
"2022-05-01 12:14:52,103 DEV : loss 5.224854469299316 - score 0.1667\n",
|
||||
"2022-05-01 12:14:52,105 BAD EPOCHS (no improvement): 1\n",
|
||||
"2022-05-01 12:14:52,106 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:14:52,616 epoch 6 - iter 1/11 - loss 3.51282573 - samples/sec: 62.91 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:53,100 epoch 6 - iter 2/11 - loss 3.41601551 - samples/sec: 66.25 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:53,513 epoch 6 - iter 3/11 - loss 3.08380787 - samples/sec: 77.76 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:55,121 epoch 6 - iter 4/11 - loss 3.21056002 - samples/sec: 64.71 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:55,665 epoch 6 - iter 5/11 - loss 3.30184879 - samples/sec: 58.88 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:56,160 epoch 6 - iter 6/11 - loss 3.20993070 - samples/sec: 64.91 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:56,670 epoch 6 - iter 7/11 - loss 3.14396119 - samples/sec: 62.91 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:57,329 epoch 6 - iter 8/11 - loss 3.24591878 - samples/sec: 48.63 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:57,958 epoch 6 - iter 9/11 - loss 3.31877112 - samples/sec: 51.03 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:58,527 epoch 6 - iter 10/11 - loss 3.33475649 - samples/sec: 56.34 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:58,989 epoch 6 - iter 11/11 - loss 3.23232636 - samples/sec: 69.41 - lr: 0.100000\n",
|
||||
"2022-05-01 12:14:58,991 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:14:58,991 EPOCH 6 done: loss 3.2323 - lr 0.1000000\n",
|
||||
"2022-05-01 12:14:59,178 DEV : loss 4.557621002197266 - score 0.2381\n",
|
||||
"2022-05-01 12:14:59,180 BAD EPOCHS (no improvement): 0\n",
|
||||
"saving best model\n",
|
||||
"2022-05-01 12:15:25,844 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:15:26,423 epoch 7 - iter 1/11 - loss 2.71161938 - samples/sec: 55.36 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:26,886 epoch 7 - iter 2/11 - loss 2.50157821 - samples/sec: 69.26 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:27,347 epoch 7 - iter 3/11 - loss 2.78014056 - samples/sec: 69.56 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:27,853 epoch 7 - iter 4/11 - loss 2.82983196 - samples/sec: 63.36 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:28,393 epoch 7 - iter 5/11 - loss 2.84246483 - samples/sec: 59.37 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:28,847 epoch 7 - iter 6/11 - loss 2.89787177 - samples/sec: 70.64 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:29,338 epoch 7 - iter 7/11 - loss 2.74564961 - samples/sec: 65.30 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:29,813 epoch 7 - iter 8/11 - loss 2.79853699 - samples/sec: 67.58 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:30,364 epoch 7 - iter 9/11 - loss 2.89167126 - samples/sec: 58.18 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:30,834 epoch 7 - iter 10/11 - loss 2.86527851 - samples/sec: 68.22 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:31,296 epoch 7 - iter 11/11 - loss 2.82858575 - samples/sec: 69.41 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:31,297 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:15:31,298 EPOCH 7 done: loss 2.8286 - lr 0.1000000\n",
|
||||
"2022-05-01 12:15:31,462 DEV : loss 4.020608901977539 - score 0.3182\n",
|
||||
"2022-05-01 12:15:31,463 BAD EPOCHS (no improvement): 0\n",
|
||||
"saving best model\n",
|
||||
"2022-05-01 12:15:38,431 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:15:38,979 epoch 8 - iter 1/11 - loss 3.28806710 - samples/sec: 58.61 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:39,534 epoch 8 - iter 2/11 - loss 2.72140074 - samples/sec: 57.76 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:40,061 epoch 8 - iter 3/11 - loss 2.77740423 - samples/sec: 60.89 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:40,541 epoch 8 - iter 4/11 - loss 2.51573136 - samples/sec: 66.72 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:41,109 epoch 8 - iter 5/11 - loss 2.54271443 - samples/sec: 56.53 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:41,537 epoch 8 - iter 6/11 - loss 2.47530021 - samples/sec: 75.12 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:42,078 epoch 8 - iter 7/11 - loss 2.62978831 - samples/sec: 59.26 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:42,506 epoch 8 - iter 8/11 - loss 2.62844713 - samples/sec: 74.84 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:42,988 epoch 8 - iter 9/11 - loss 2.61604464 - samples/sec: 66.59 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:43,471 epoch 8 - iter 10/11 - loss 2.62512223 - samples/sec: 66.39 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:43,895 epoch 8 - iter 11/11 - loss 2.64045010 - samples/sec: 75.65 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:43,896 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:15:43,897 EPOCH 8 done: loss 2.6405 - lr 0.1000000\n",
|
||||
"2022-05-01 12:15:44,036 DEV : loss 3.542769432067871 - score 0.3846\n",
|
||||
"2022-05-01 12:15:44,038 BAD EPOCHS (no improvement): 0\n",
|
||||
"saving best model\n",
|
||||
"2022-05-01 12:15:51,672 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:15:52,235 epoch 9 - iter 1/11 - loss 1.73337626 - samples/sec: 56.99 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:52,801 epoch 9 - iter 2/11 - loss 2.09788013 - samples/sec: 56.74 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:53,288 epoch 9 - iter 3/11 - loss 2.24861153 - samples/sec: 65.84 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:53,735 epoch 9 - iter 4/11 - loss 2.42630130 - samples/sec: 71.75 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:54,189 epoch 9 - iter 5/11 - loss 2.42454610 - samples/sec: 70.64 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:54,720 epoch 9 - iter 6/11 - loss 2.39987107 - samples/sec: 60.38 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:55,192 epoch 9 - iter 7/11 - loss 2.29154910 - samples/sec: 67.94 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:55,632 epoch 9 - iter 8/11 - loss 2.22984707 - samples/sec: 73.06 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:56,162 epoch 9 - iter 9/11 - loss 2.32317919 - samples/sec: 60.49 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:56,559 epoch 9 - iter 10/11 - loss 2.24865967 - samples/sec: 80.81 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:56,986 epoch 9 - iter 11/11 - loss 2.27327953 - samples/sec: 75.12 - lr: 0.100000\n",
|
||||
"2022-05-01 12:15:56,988 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:15:56,988 EPOCH 9 done: loss 2.2733 - lr 0.1000000\n",
|
||||
"2022-05-01 12:15:57,130 DEV : loss 3.4634602069854736 - score 0.5517\n",
|
||||
"2022-05-01 12:15:57,132 BAD EPOCHS (no improvement): 0\n",
|
||||
"saving best model\n",
|
||||
"2022-05-01 12:16:04,067 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:16:04,643 epoch 10 - iter 1/11 - loss 2.22972107 - samples/sec: 55.65 - lr: 0.100000\n",
|
||||
"2022-05-01 12:16:05,144 epoch 10 - iter 2/11 - loss 2.20346498 - samples/sec: 64.00 - lr: 0.100000\n",
|
||||
"2022-05-01 12:16:05,576 epoch 10 - iter 3/11 - loss 2.07501336 - samples/sec: 74.24 - lr: 0.100000\n",
|
||||
"2022-05-01 12:16:06,036 epoch 10 - iter 4/11 - loss 2.09982607 - samples/sec: 69.72 - lr: 0.100000\n",
|
||||
"2022-05-01 12:16:06,508 epoch 10 - iter 5/11 - loss 2.08048103 - samples/sec: 67.94 - lr: 0.100000\n",
|
||||
"2022-05-01 12:16:07,062 epoch 10 - iter 6/11 - loss 2.08074635 - samples/sec: 57.87 - lr: 0.100000\n",
|
||||
"2022-05-01 12:16:07,590 epoch 10 - iter 7/11 - loss 2.07187140 - samples/sec: 60.84 - lr: 0.100000\n",
|
||||
"2022-05-01 12:16:08,116 epoch 10 - iter 8/11 - loss 2.10148455 - samples/sec: 60.95 - lr: 0.100000\n",
|
||||
"2022-05-01 12:16:08,563 epoch 10 - iter 9/11 - loss 2.06198527 - samples/sec: 71.74 - lr: 0.100000\n",
|
||||
"2022-05-01 12:16:09,066 epoch 10 - iter 10/11 - loss 2.00194792 - samples/sec: 63.75 - lr: 0.100000\n",
|
||||
"2022-05-01 12:16:09,486 epoch 10 - iter 11/11 - loss 2.00801701 - samples/sec: 76.37 - lr: 0.100000\n",
|
||||
"2022-05-01 12:16:09,487 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:16:09,488 EPOCH 10 done: loss 2.0080 - lr 0.1000000\n",
|
||||
"2022-05-01 12:16:09,624 DEV : loss 3.1866908073425293 - score 0.4706\n",
|
||||
"2022-05-01 12:16:09,625 BAD EPOCHS (no improvement): 1\n",
|
||||
"2022-05-01 12:16:16,655 ----------------------------------------------------------------------------------------------------\n",
|
||||
"2022-05-01 12:16:16,656 Testing using best model ...\n",
|
||||
"2022-05-01 12:16:16,676 loading file slot-model\\best-model.pt\n",
|
||||
"2022-05-01 12:16:22,739 0.4231\t0.3056\t0.3548\n",
|
||||
"2022-05-01 12:16:22,740 \n",
|
||||
"Results:\n",
|
||||
"- F1-score (micro) 0.3548\n",
|
||||
"- F1-score (macro) 0.2570\n",
|
||||
"\n",
|
||||
"By class:\n",
|
||||
"area tp: 1 - fp: 1 - fn: 2 - precision: 0.5000 - recall: 0.3333 - f1-score: 0.4000\n",
|
||||
"date tp: 0 - fp: 3 - fn: 3 - precision: 0.0000 - recall: 0.0000 - f1-score: 0.0000\n",
|
||||
"goal tp: 2 - fp: 2 - fn: 8 - precision: 0.5000 - recall: 0.2000 - f1-score: 0.2857\n",
|
||||
"interval tp: 0 - fp: 0 - fn: 1 - precision: 0.0000 - recall: 0.0000 - f1-score: 0.0000\n",
|
||||
"quantity tp: 4 - fp: 1 - fn: 2 - precision: 0.8000 - recall: 0.6667 - f1-score: 0.7273\n",
|
||||
"seats tp: 0 - fp: 1 - fn: 0 - precision: 0.0000 - recall: 0.0000 - f1-score: 0.0000\n",
|
||||
"time tp: 1 - fp: 4 - fn: 5 - precision: 0.2000 - recall: 0.1667 - f1-score: 0.1818\n",
|
||||
"title tp: 3 - fp: 3 - fn: 4 - precision: 0.5000 - recall: 0.4286 - f1-score: 0.4615\n",
|
||||
"2022-05-01 12:16:22,740 ----------------------------------------------------------------------------------------------------\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"{'test_score': 0.3548387096774194,\n",
|
||||
" 'dev_score_history': [0.0,\n",
|
||||
" 0.06451612903225806,\n",
|
||||
" 0.0,\n",
|
||||
" 0.17142857142857143,\n",
|
||||
" 0.16666666666666663,\n",
|
||||
" 0.23809523809523808,\n",
|
||||
" 0.3181818181818182,\n",
|
||||
" 0.38461538461538464,\n",
|
||||
" 0.5517241379310345,\n",
|
||||
" 0.47058823529411764],\n",
|
||||
" 'train_loss_history': [6.525583657351407,\n",
|
||||
" 5.26294283433394,\n",
|
||||
" 4.7632177526300605,\n",
|
||||
" 4.261161284013228,\n",
|
||||
" 3.807387958873402,\n",
|
||||
" 3.2323263558474453,\n",
|
||||
" 2.828585754741322,\n",
|
||||
" 2.6404500982978125,\n",
|
||||
" 2.2732795260169287,\n",
|
||||
" 2.0080170089548286],\n",
|
||||
" 'dev_loss_history': [8.419286727905273,\n",
|
||||
" 7.168168544769287,\n",
|
||||
" 7.209894180297852,\n",
|
||||
" 5.882441997528076,\n",
|
||||
" 5.224854469299316,\n",
|
||||
" 4.557621002197266,\n",
|
||||
" 4.020608901977539,\n",
|
||||
" 3.542769432067871,\n",
|
||||
" 3.4634602069854736,\n",
|
||||
" 3.1866908073425293]}"
|
||||
]
|
||||
},
|
||||
"execution_count": 31,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"trainer = ModelTrainer(tagger, corpus)\n",
|
||||
"trainer.train('slot-model',\n",
|
||||
" learning_rate=0.1,\n",
|
||||
" mini_batch_size=32,\n",
|
||||
" max_epochs=10,\n",
|
||||
" train_with_dev=False)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Jakość wyuczonego modelu możemy ocenić, korzystając z zaraportowanych powyżej metryk, tj.:\n",
|
||||
"\n",
|
||||
" - *tp (true positives)*\n",
|
||||
"\n",
|
||||
" > liczba słów oznaczonych w zbiorze testowym etykietą $e$, które model oznaczył tą etykietą\n",
|
||||
"\n",
|
||||
" - *fp (false positives)*\n",
|
||||
"\n",
|
||||
" > liczba słów nieoznaczonych w zbiorze testowym etykietą $e$, które model oznaczył tą etykietą\n",
|
||||
"\n",
|
||||
" - *fn (false negatives)*\n",
|
||||
"\n",
|
||||
" > liczba słów oznaczonych w zbiorze testowym etykietą $e$, którym model nie nadał etykiety $e$\n",
|
||||
"\n",
|
||||
" - *precision*\n",
|
||||
"\n",
|
||||
" > $$\\frac{tp}{tp + fp}$$\n",
|
||||
"\n",
|
||||
" - *recall*\n",
|
||||
"\n",
|
||||
" > $$\\frac{tp}{tp + fn}$$\n",
|
||||
"\n",
|
||||
" - $F_1$\n",
|
||||
"\n",
|
||||
" > $$\\frac{2 \\cdot precision \\cdot recall}{precision + recall}$$\n",
|
||||
"\n",
|
||||
" - *micro* $F_1$\n",
|
||||
"\n",
|
||||
" > $F_1$ w którym $tp$, $fp$ i $fn$ są liczone łącznie dla wszystkich etykiet, tj. $tp = \\sum_{e}{{tp}_e}$, $fn = \\sum_{e}{{fn}_e}$, $fp = \\sum_{e}{{fp}_e}$\n",
|
||||
"\n",
|
||||
" - *macro* $F_1$\n",
|
||||
"\n",
|
||||
" > średnia arytmetyczna z $F_1$ obliczonych dla poszczególnych etykiet z osobna.\n",
|
||||
"\n",
|
||||
"Wyuczony model możemy wczytać z pliku korzystając z metody `load`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 32,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"2022-05-01 12:16:22,953 loading file slot-model/final-model.pt\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"model = SequenceTagger.load('slot-model/final-model.pt')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Wczytany model możemy wykorzystać do przewidywania slotów w wypowiedziach użytkownika, korzystając\n",
|
||||
"z przedstawionej poniżej funkcji `predict`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 69,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"[('kiedy', 'O'), ('gracie', 'O'), ('film', 'O'), ('zorro', 'B-title')]"
|
||||
]
|
||||
},
|
||||
"execution_count": 69,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def predict(model, sentence):\n",
|
||||
" csentence = [{'form': word} for word in sentence]\n",
|
||||
" fsentence = conllu2flair([csentence])[0]\n",
|
||||
" model.predict(fsentence)\n",
|
||||
" return [(token, ftoken.get_tag('slot').value) for token, ftoken in zip(sentence, fsentence)]\n",
|
||||
"\n",
|
||||
"predict(model, 'kiedy gracie film zorro'.split())"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Jak pokazuje przykład poniżej model wyuczony tylko na 100 przykładach popełnia w dosyć prostej\n",
|
||||
"wypowiedzi błąd etykietując słowo `alarm` tagiem `B-weather/noun`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 68,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<table>\n",
|
||||
"<tbody>\n",
|
||||
"<tr><td>kiedy </td><td>O </td></tr>\n",
|
||||
"<tr><td>gracie</td><td>O </td></tr>\n",
|
||||
"<tr><td>film </td><td>O </td></tr>\n",
|
||||
"<tr><td>zorro </td><td>B-title</td></tr>\n",
|
||||
"</tbody>\n",
|
||||
"</table>"
|
||||
],
|
||||
"text/plain": [
|
||||
"'<table>\\n<tbody>\\n<tr><td>kiedy </td><td>O </td></tr>\\n<tr><td>gracie</td><td>O </td></tr>\\n<tr><td>film </td><td>O </td></tr>\\n<tr><td>zorro </td><td>B-title</td></tr>\\n</tbody>\\n</table>'"
|
||||
]
|
||||
},
|
||||
"execution_count": 68,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"tabulate(predict(model, 'kiedy gracie film zorro'.split()), tablefmt='html')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Literatura\n",
|
||||
"----------\n",
|
||||
" 1. Sebastian Schuster, Sonal Gupta, Rushin Shah, Mike Lewis, Cross-lingual Transfer Learning for Multilingual Task Oriented Dialog. NAACL-HLT (1) 2019, pp. 3795-3805\n",
|
||||
" 2. John D. Lafferty, Andrew McCallum, and Fernando C. N. Pereira. 2001. Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data. In Proceedings of the Eighteenth International Conference on Machine Learning (ICML '01). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 282–289, https://repository.upenn.edu/cgi/viewcontent.cgi?article=1162&context=cis_papers\n",
|
||||
" 3. Sepp Hochreiter and Jürgen Schmidhuber. 1997. Long Short-Term Memory. Neural Comput. 9, 8 (November 15, 1997), 1735–1780, https://doi.org/10.1162/neco.1997.9.8.1735\n",
|
||||
" 4. Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin, Attention is All you Need, NIPS 2017, pp. 5998-6008, https://arxiv.org/abs/1706.03762\n",
|
||||
" 5. Alan Akbik, Duncan Blythe, Roland Vollgraf, Contextual String Embeddings for Sequence Labeling, Proceedings of the 27th International Conference on Computational Linguistics, pp. 1638–1649, https://www.aclweb.org/anthology/C18-1139.pdf\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"author": "Marek Kubis",
|
||||
"email": "mkubis@amu.edu.pl",
|
||||
"interpreter": {
|
||||
"hash": "2be5faf79681da6f2a61fdfdd5405d65d042280f7fba6178067603e3a2925119"
|
||||
},
|
||||
"jupytext": {
|
||||
"cell_metadata_filter": "-all",
|
||||
"main_language": "python",
|
||||
"notebook_metadata_filter": "-all"
|
||||
},
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3.10.4 64-bit",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"lang": "pl",
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.3"
|
||||
},
|
||||
"subtitle": "8.Parsing semantyczny z wykorzystaniem technik uczenia maszynowego[laboratoria]",
|
||||
"title": "Systemy Dialogowe",
|
||||
"year": "2021"
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
11
src/components/DP.py
Normal file
11
src/components/DP.py
Normal file
@ -0,0 +1,11 @@
|
||||
# Martyna
|
||||
class DP:
|
||||
|
||||
def __init__(self, slots):
|
||||
self.slots = slots
|
||||
|
||||
def getAct(slots):
|
||||
# iterate over slots
|
||||
# find empty
|
||||
# returns system act
|
||||
pass
|
22
src/components/DST.py
Normal file
22
src/components/DST.py
Normal file
@ -0,0 +1,22 @@
|
||||
# Adrian
|
||||
class DST:
|
||||
def __init__(self, slots):
|
||||
self.slots = slots
|
||||
|
||||
def getDialogueState(self, userActs):
|
||||
# iterate over speech acts
|
||||
if userActs['act'] == 'book':
|
||||
if userActs['slots']:
|
||||
for (k, v) in userActs['slots']:
|
||||
print(k)
|
||||
if k in self.slots:
|
||||
self.slots[k] = v
|
||||
|
||||
# returns all slots
|
||||
return self.slots
|
||||
|
||||
|
||||
#dst = DST()
|
||||
# userActs = {'inform': {'name': 'edyta', 'age': 18}, 'reqmore': {'date', 'time'}}
|
||||
#ivona_acts = {'act': 'book', 'slots': [('name', 'ewa'), ('hour', 'dziesiąta'), ('size', 'trzech')]}
|
||||
#print(dst.getDialogueState(ivona_acts))
|
7
src/components/NLG.py
Normal file
7
src/components/NLG.py
Normal file
@ -0,0 +1,7 @@
|
||||
# Mikolaj
|
||||
class NLG:
|
||||
def __self__(self):
|
||||
pass
|
||||
|
||||
def getResponse(systemAct):
|
||||
return "Witaj, nazywam się Nachos.\n"
|
43
src/components/NLU.py
Normal file
43
src/components/NLU.py
Normal file
@ -0,0 +1,43 @@
|
||||
import re
|
||||
from flair.data import Sentence, Token
|
||||
from flair.datasets import SentenceDataset
|
||||
from flair.models import SequenceTagger
|
||||
|
||||
class NLU:
|
||||
|
||||
def __init__(self):
|
||||
self.nluModel = SequenceTagger.load('./lab/slot-model/final-model.pt')
|
||||
|
||||
def predict(self, sentence):
|
||||
sentence = self.getStrCleaned(sentence)
|
||||
csentence = [{'form': word} for word in sentence]
|
||||
fsentence = self.conllu2flair([csentence])[0]
|
||||
self.nluModel.predict(fsentence)
|
||||
return [(token, ftoken.get_tag('slot').value) for token, ftoken in zip(sentence, fsentence)]
|
||||
|
||||
def conllu2flair(self, sentences, label=None):
|
||||
fsentences = []
|
||||
|
||||
for sentence in sentences:
|
||||
fsentence = Sentence()
|
||||
|
||||
for token in sentence:
|
||||
ftoken = Token(token['form'])
|
||||
|
||||
if label:
|
||||
ftoken.add_tag(label, token[label])
|
||||
|
||||
fsentence.add_token(ftoken)
|
||||
|
||||
fsentences.append(fsentence)
|
||||
|
||||
return SentenceDataset(fsentences)
|
||||
|
||||
def getStrCleaned(self, rawMessage):
|
||||
# / and : is needed for date and time recognition
|
||||
punctuation = '!"#$%&\'()*+,-.;<=>?@[\\\\]^_`{|}~'
|
||||
messageLower = rawMessage.lower()
|
||||
# new_str = re.sub(' +', ' ', new_str)
|
||||
for char in punctuation:
|
||||
messageLower = messageLower.replace(char,'')
|
||||
return messageLower.split()
|
36
src/dialogue_system.py
Normal file
36
src/dialogue_system.py
Normal file
@ -0,0 +1,36 @@
|
||||
from components.NLU import NLU
|
||||
from components.NLG import NLG
|
||||
from components.DST import DST
|
||||
|
||||
slots = [
|
||||
("title", None),
|
||||
("date", None),
|
||||
("time", None),
|
||||
("quantity", None),
|
||||
("seats", None),
|
||||
("goal", None),
|
||||
("area", None),
|
||||
("interval", None),
|
||||
]
|
||||
|
||||
def chatbot():
|
||||
|
||||
isActive = True
|
||||
|
||||
# NLU
|
||||
nlu = NLU()
|
||||
|
||||
# hello message
|
||||
print("wpisz /exit aby zakończyć")
|
||||
print("Witaj w systemie kinowym Nachos, w czym mogę Ci pomóc?")
|
||||
|
||||
# main loop
|
||||
while isActive:
|
||||
userMessage = input("$")
|
||||
if userMessage == "/exit":
|
||||
print("Do usłyszenia")
|
||||
isActive = False
|
||||
else:
|
||||
nluPred = nlu.predict(sentence=userMessage)
|
||||
print(nluPred)
|
||||
chatbot()
|
@ -1,17 +1,21 @@
|
||||
# Slots
|
||||
|
||||
|slot | desc |sample
|
||||
|-------------:|:------------------------------:|:-----
|
||||
|title | movie title | Batman OR Zorro 3
|
||||
|date | when user want to watch a movie| 2022-04-06
|
||||
|time | play time | 20:30
|
||||
|quantity | number of tickets | 2 OR two
|
||||
|location | location of cinema | Poznań Plaza OR Multikino 51
|
||||
|seats | what seats are reserved | [h1, h2, h3]
|
||||
|reservation_id| reservation number | 32453758
|
||||
|goal | users goal in system | reservation OR cancel
|
||||
|area | preferred place to sit | [front, middle] OR [random, aisle]
|
||||
|tickets_type | tickets types and quantities | [normal, 1] OR [[student, 2], [normal, 1]]
|
||||
|slot | desc |sample
|
||||
|-----------------:|:-------------------------------:|:-----
|
||||
| title | movie title | Batman OR Zorro 3
|
||||
| date | when user want to watch a movie | 2022-04-06
|
||||
| time | play time | 20:30
|
||||
| quantity | number of tickets | 2 OR two
|
||||
| seats | what seats are reserved | [h1, h2, h3]
|
||||
| area | preferred place to sit | [front, middle] OR [random, aisle]
|
||||
| interval | time interval | w tym tygodniu OR w następnym tygodniu
|
||||
| goal | users goal in system | chciałbym zarezerwować(opcjonalne) OR jakie filmy gracie
|
||||
| tickets_type - | tickets types and quantities | [normal, 1] OR [[student, 2], [normal, 1]]
|
||||
| location - | location of cinema | Poznań Plaza OR Multikino 51
|
||||
| reservation_id - | reservation number | 32453758
|
||||
|
||||
|
||||
|
||||
|
||||
# Speech acts systemu
|
||||
|
||||
|
284
tasks/zad8/pl/annotate.py
Normal file
284
tasks/zad8/pl/annotate.py
Normal file
@ -0,0 +1,284 @@
|
||||
import pandas as pd
|
||||
import regex as re
|
||||
|
||||
# sample values
|
||||
|
||||
titles = [
|
||||
"batmana",
|
||||
"batman",
|
||||
"na noże",
|
||||
"zorro",
|
||||
"transformer",
|
||||
"podróż na księżyc",
|
||||
"krzyk",
|
||||
"to nie wypanda",
|
||||
"inni ludzie",
|
||||
"ambulans",
|
||||
"uncharted",
|
||||
"nasze magiczne encanto"
|
||||
"zorro - jak to było na prawdę",
|
||||
"fdantastyczne zwierznera",
|
||||
"cud guadlupe",
|
||||
"piosenki o miłości",
|
||||
"cud Guadalupe",
|
||||
"historia mojej żony",
|
||||
"matki równoległe",
|
||||
"wielka wolność",
|
||||
"najgorszy człowiek na świecie",
|
||||
"inni ludzie",
|
||||
]
|
||||
|
||||
dates = [
|
||||
"w najbliższy poniedziałek",
|
||||
"w najbliższy wtorek",
|
||||
"w najbliższą środę",
|
||||
"w najbliższy czwartek",
|
||||
"w najbliższy piątek",
|
||||
"w najbliższą sobotę",
|
||||
"w najbliższą niedzielę",
|
||||
"w poniedziałek",
|
||||
"we wtorek",
|
||||
"w środę",
|
||||
"w czwartek",
|
||||
"w piątek",
|
||||
"w sobotę",
|
||||
"w niedzielę",
|
||||
"na najbliższy poniedziałek",
|
||||
"na najbliższy wtorek",
|
||||
"na najbliższą środę",
|
||||
"na najbliższy czwartek",
|
||||
"na najbliższy piątek",
|
||||
"na najbliższą sobotę",
|
||||
"na najbliższą niedzielę",
|
||||
"najbliższy poniedziałek",
|
||||
"najbliższy wtorek",
|
||||
"najbliższa środa",
|
||||
"najbliższy czwartek",
|
||||
"najbliższy piątek",
|
||||
"najbliższa sobota",
|
||||
"najbliższa niedziela",
|
||||
"na jutro",
|
||||
"jutro",
|
||||
"w dniu jutrzejszym",
|
||||
"po jutrze",
|
||||
"pojutrze",
|
||||
"za dwa dni",
|
||||
"za trzy dni",
|
||||
"za tydzień",
|
||||
"dzisiaj",
|
||||
"dziś",
|
||||
r"na dzień [0-9]{1,2}[ /][0-9]{1,2}",
|
||||
r"na [0-9]{1,2}[ /][0-9]{1,2}",
|
||||
r"dzień [0-9]{1,2}[ /][0-9]{1,2}",
|
||||
r"dnia [0-9]{1,2}[ /][0-9]{1,2}",
|
||||
r"[0-9]{1,2}[ /][0-9]{1,2}",
|
||||
]
|
||||
|
||||
times = [
|
||||
r"wybieram: [0-9]{1,2}[:][0-9]{1,2}",
|
||||
r"wybieram [0-9]{1,2}[:][0-9]{1,2}",
|
||||
r"na godzinę [0-9]{1,2}[:][0-9]{1,2}",
|
||||
r"na godzina [0-9]{1,2}[:][0-9]{1,2}",
|
||||
r"o godzinie [0-9]{1,2}[:][0-9]{1,2}",
|
||||
r"o [0-9]{1,2}[:][0-9]{1,2}",
|
||||
r"o [0-9]{2}",
|
||||
r"na [0-9]{1,2}",
|
||||
r"na [0-9]{1,2}[:][0-9]{1,2}",
|
||||
r"godzina [0-9]{1,2}[:][0-9]{1,2}",
|
||||
r"[0-9]{1,2}[:][0-9]{1,2}",
|
||||
"rano",
|
||||
"wieczorem",
|
||||
"w południe",
|
||||
"po południu",
|
||||
"popołudniu",
|
||||
"w nocy",
|
||||
"pierwszą",
|
||||
"drugą",
|
||||
"trzecią",
|
||||
"piątą",
|
||||
"szóstą",
|
||||
"siódmą",
|
||||
"ósmą",
|
||||
"dziewiatą",
|
||||
"dziesiątą",
|
||||
"jedenastą",
|
||||
"dwunastą",
|
||||
"trzynastą",
|
||||
"czternastą",
|
||||
"piętnastą",
|
||||
"szesnastą",
|
||||
"siedemnastą",
|
||||
"osiemnastą",
|
||||
"dziewiętnastą",
|
||||
"dwudziestą pierwszą",
|
||||
"dwudziestą drugą",
|
||||
"dwudziestą trzecią",
|
||||
"dwudziestą czwartą",
|
||||
"o północy"
|
||||
]
|
||||
|
||||
quantities = [
|
||||
r"chcę [1-9][0-9]{0,1}",
|
||||
r"poproszę [1-9][0-9]{0,1}",
|
||||
r"[1-9][0-9]{0,1}",
|
||||
]
|
||||
|
||||
seats = [
|
||||
r'[a-zA-Z][0-9]{1,2} [a-zA-Z][0-9]{1,2} [a-zA-Z][0-9]{1,2} [a-zA-Z][0-9]{1,2} [a-zA-Z][0-9]{1,2}',
|
||||
r'[a-zA-Z][0-9]{1,2} [a-zA-Z][0-9]{1,2} [a-zA-Z][0-9]{1,2} [a-zA-Z][0-9]{1,2}',
|
||||
r'[a-zA-Z][0-9]{1,2} [a-zA-Z][0-9]{1,2} [a-zA-Z][0-9]{1,2}',
|
||||
r'[a-zA-Z][0-9]{1,2} [a-zA-Z][0-9]{1,2}',
|
||||
r'[a-zA-Z][0-9]{1,2}',
|
||||
r'[a-zA-Z][0-9]{1,2},[a-zA-Z][0-9]{1,2},[a-zA-Z][0-9]{1,2},[a-zA-Z][0-9]{1,2},[a-zA-Z][0-9]{1,2}',
|
||||
r'[a-zA-Z][0-9]{1,2},[a-zA-Z][0-9]{1,2},[a-zA-Z][0-9]{1,2},[a-zA-Z][0-9]{1,2}',
|
||||
r'[a-zA-Z][0-9]{1,2},[a-zA-Z][0-9]{1,2},[a-zA-Z][0-9]{1,2}',
|
||||
r'[a-zA-Z][0-9]{1,2},[a-zA-Z][0-9]{1,2}',
|
||||
r'[a-zA-Z][0-9]{1,2}, [a-zA-Z][0-9]{1,2}, [a-zA-Z][0-9]{1,2}, [a-zA-Z][0-9]{1,2}, [a-zA-Z][0-9]{1,2}',
|
||||
r'[a-zA-Z][0-9]{1,2}, [a-zA-Z][0-9]{1,2}, [a-zA-Z][0-9]{1,2}, [a-zA-Z][0-9]{1,2}',
|
||||
r'[a-zA-Z][0-9]{1,2}, [a-zA-Z][0-9]{1,2}, [a-zA-Z][0-9]{1,2}',
|
||||
r'[a-zA-Z][0-9]{1,2}, [a-zA-Z][0-9]{1,2}',
|
||||
]
|
||||
|
||||
areas = [
|
||||
"u góry po prawej",
|
||||
"u góry po lewej",
|
||||
"u góry na środku",
|
||||
"na środku po prawej",
|
||||
"na środku po lewej",
|
||||
"na dole po prawej",
|
||||
"na dole po lewej",
|
||||
"na dole na środku",
|
||||
"po lewej",
|
||||
"po prawej",
|
||||
"na środku",
|
||||
"lewo",
|
||||
"prawo",
|
||||
"środek",
|
||||
"blisko od ekranu",
|
||||
"daleko od ekranu",
|
||||
"blisko ekranu",
|
||||
"daleko ekranu",
|
||||
]
|
||||
|
||||
# slots names
|
||||
slots = [
|
||||
"title",
|
||||
"date",
|
||||
"time",
|
||||
"quantity",
|
||||
"seats",
|
||||
"area"
|
||||
]
|
||||
|
||||
def removePunctation(text):
|
||||
return re.sub(r'[!@#$,\"\'\?\'\"\|.]', '', text)
|
||||
|
||||
def dummyTextAnnotation(text, sampelValuesList, slotName):
|
||||
textJoin = text
|
||||
for sampleValue in sampelValuesList:
|
||||
if re.search(r"(^|\s)" + sampleValue + r"($|\s)", textJoin):
|
||||
textJoin = re.sub(r'(^|\s)(' + sampleValue + r')($|\s)', f"\g<1> **/start** {slotName} \g<2> **/end** \g<3>", textJoin)
|
||||
break # can one sentence has only one slot of a given type?
|
||||
return textJoin
|
||||
|
||||
def parseAnnotation(text, intent, textLen, cleanText, isTest, pathOut):
|
||||
textTokenize = text.split()
|
||||
slotLabel = ""
|
||||
col1 = [i for i in range(1, textLen + 1)]
|
||||
col2 = []
|
||||
col3 = [intent for _ in range(textLen)]
|
||||
col4 = []
|
||||
isSlot = False
|
||||
slotVal = None
|
||||
annotation = ""
|
||||
i = 0
|
||||
while i < len(textTokenize):
|
||||
if textTokenize[i] == "**/start**":
|
||||
isSlot = True
|
||||
slotVal = textTokenize[i + 1]
|
||||
if len(slotLabel) > 0:
|
||||
slotLabel += f','
|
||||
i += 2
|
||||
annotation = "B-"
|
||||
elif textTokenize[i] == "**/end**":
|
||||
isSlot = False
|
||||
slotLabel += ":" + slotVal
|
||||
slotVal = None
|
||||
i += 1
|
||||
elif isSlot:
|
||||
slotLabel += textTokenize[i]
|
||||
col2.append(textTokenize[i])
|
||||
col4.append(annotation + slotVal)
|
||||
annotation = "I-"
|
||||
i += 1
|
||||
elif not isSlot:
|
||||
col2.append(textTokenize[i])
|
||||
col4.append("NoLabel")
|
||||
i += 1
|
||||
df = pd.DataFrame(list(zip(col1, col2, col3, col4)))
|
||||
path = ""
|
||||
if isTest: path = pathOut + 'test.conllu'
|
||||
else: path = pathOut + 'train.conllu'
|
||||
with open(path, "a", encoding="utf-8") as outputFile:
|
||||
outputFile.write(f"# text: {cleanText}\n# intent: {intent}\n# slots: {slotLabel}\n")
|
||||
df.to_csv(path, header=None, index=None, sep='\t', mode='a')
|
||||
with open(path, "a", encoding="utf-8") as outputFile:
|
||||
outputFile.write(f"\n")
|
||||
|
||||
|
||||
def processFile(pathIn, pathOut, fileName, isTest):
|
||||
# path = './data/dialog-16-01-01.tsv'
|
||||
encoding = "utf-8"
|
||||
# encoding = "cp1250"
|
||||
dialog_df = pd.read_csv(pathIn + fileName, sep='\t', header=None, encoding=encoding)
|
||||
|
||||
dialog_df = dialog_df.reset_index() # make sure indexes pair with number of rows
|
||||
for _, row in dialog_df.iterrows():
|
||||
if row[0].strip() == "user":
|
||||
text = removePunctation(row[1]).lower()
|
||||
|
||||
# movies annotation
|
||||
annotatedText = dummyTextAnnotation(text, titles, slots[0])
|
||||
|
||||
# dates annotation
|
||||
annotatedText = dummyTextAnnotation(annotatedText, dates, slots[1])
|
||||
|
||||
# time
|
||||
annotatedText = dummyTextAnnotation(annotatedText, times, slots[2])
|
||||
|
||||
# quantity
|
||||
annotatedText = dummyTextAnnotation(annotatedText, quantities, slots[3])
|
||||
|
||||
# seats
|
||||
annotatedText = dummyTextAnnotation(annotatedText, seats, slots[4])
|
||||
|
||||
# area
|
||||
annotatedText = dummyTextAnnotation(annotatedText, areas, slots[5])
|
||||
|
||||
parseAnnotation(annotatedText, row[2], len(row[1].split()), text, isTest, pathOut)
|
||||
|
||||
# dialog_df.to_csv(pathOut + "test.conllu", sep="\t", index=False, header=None)
|
||||
|
||||
def annotateData():
|
||||
pathOut = './tasks/zad8/pl/'
|
||||
pathIn = "./data/clean/"
|
||||
i = 0
|
||||
j = 0
|
||||
nr = 0
|
||||
for i in range(16,20):
|
||||
for j in range(20):
|
||||
for nr in range(1,5):
|
||||
fileName = "dialog-" + str(i).zfill(2) + "-" + str(j).zfill(2) + "-" + str(nr).zfill(2) + ".tsv"
|
||||
try:
|
||||
processFile(pathIn, pathOut, fileName, False)
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
fileName = "dialog-" + str(i).zfill(2) + "-" + str(j).zfill(2) + "-" + str(nr).zfill(2) + "(test)" + ".tsv"
|
||||
processFile(pathIn, pathOut, fileName, True)
|
||||
except:
|
||||
pass
|
||||
# annotateData()
|
||||
processFile("./data/clean/", './tasks/zad8/pl/', "newUserQuestions.tsv", isTest=False)
|
||||
# testText = "dobrze dokonano rezerwacji na film transformer numer twojej rezeracji to 123890"
|
||||
# print(dummyTextAnotation(testText, sampelValuesList=titles, slotName=slots[0]))
|
48
tasks/zad8/pl/cleanData.py
Normal file
48
tasks/zad8/pl/cleanData.py
Normal file
@ -0,0 +1,48 @@
|
||||
import pandas as pd
|
||||
import regex
|
||||
|
||||
# cleans our data
|
||||
# extracts intents for lab8 from dtsv files with dialogues
|
||||
def removeParenthesis(text):
|
||||
resultText = ""
|
||||
leftParCount = 0
|
||||
for letter in text:
|
||||
if letter == "(": leftParCount += 1
|
||||
if (leftParCount == 0):
|
||||
resultText += letter
|
||||
if letter == ")": leftParCount -= 1
|
||||
return resultText
|
||||
|
||||
def processFile(pathIn, pathOut, fileName):
|
||||
# path = './data/dialog-16-01-01.tsv'
|
||||
encoding = "utf-8"
|
||||
# encoding = "cp1250"
|
||||
dialog_df = pd.read_csv(pathIn + fileName, sep='\t', header=None, encoding=encoding)
|
||||
dialog_df.iloc[:,2] = dialog_df.iloc[:,2].apply(lambda x : removeParenthesis(str(x)))
|
||||
dialog_df.iloc[:,2] = dialog_df.iloc[:,2].apply(lambda x : regex.sub(r"( & |&| AND |AND)", " ", str(x)))
|
||||
dialog_df.iloc[:,2] = dialog_df.iloc[:,2].apply(lambda x : " ".join(list(set(x.split()))))
|
||||
dialog_df.to_csv(pathOut + fileName, sep="\t", index=False, header=None)
|
||||
|
||||
def cleanAllData():
|
||||
pathOut = './data/clean/'
|
||||
pathIn = "./data/"
|
||||
i = 0
|
||||
j = 0
|
||||
nr = 0
|
||||
for i in range(16,20):
|
||||
for j in range(20):
|
||||
for nr in range(1,5):
|
||||
fileName = "dialog-" + str(i).zfill(2) + "-" + str(j).zfill(2) + "-" + str(nr).zfill(2) + ".tsv"
|
||||
try:
|
||||
processFile(pathIn, pathOut, fileName)
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
fileName = "dialog-" + str(i).zfill(2) + "-" + str(j).zfill(2) + "-" + str(nr).zfill(2) + "(test)" + ".tsv"
|
||||
processFile(pathIn, pathOut, fileName)
|
||||
except:
|
||||
pass
|
||||
|
||||
cleanAllData()
|
||||
|
||||
#processFile("./data/", './data/clean/', 'dialog-16-09-01.tsv')
|
263
tasks/zad8/pl/test.conllu
Normal file
263
tasks/zad8/pl/test.conllu
Normal file
@ -0,0 +1,263 @@
|
||||
# text: dzień dobry
|
||||
# intent: hello
|
||||
# slots:
|
||||
1 dzień hello NoLabel
|
||||
2 dobry hello NoLabel
|
||||
|
||||
# text: jakie filmy są w tym tygodniu w repertuarze
|
||||
# intent: reqmore
|
||||
# slots: jakiefilmy:goal,wtymtygodniu:interval
|
||||
1 jakie reqmore B-goal
|
||||
2 filmy reqmore I-goal
|
||||
3 są reqmore NoLabel
|
||||
4 w reqmore B-interval
|
||||
5 tym reqmore I-interval
|
||||
6 tygodniu reqmore I-interval
|
||||
7 w reqmore NoLabel
|
||||
8 repertuarze reqmore NoLabel
|
||||
|
||||
# text: o której godzinie w piątek mogę zobaczyć na noże
|
||||
# intent: reqmore inform
|
||||
# slots: októrejgodzinie:goal,wpiątek:date,nanoże:title
|
||||
1 o reqmore inform B-goal
|
||||
2 której reqmore inform I-goal
|
||||
3 godzinie reqmore inform I-goal
|
||||
4 w reqmore inform NoLabel
|
||||
5 piątek reqmore inform B-date
|
||||
6 mogę reqmore inform NoLabel
|
||||
7 zobaczyć reqmore inform NoLabel
|
||||
8 na reqmore inform B-title
|
||||
9 noże reqmore inform I-title
|
||||
|
||||
# text: ok w takim razie chciałbym zarezerwować 2 miejsca na seans o 19:30
|
||||
# intent: inform
|
||||
# slots: zarezerwować:goal,2:quantity,o19:30:time
|
||||
1 ok inform NoLabel
|
||||
2 w inform NoLabel
|
||||
3 takim inform NoLabel
|
||||
4 razie inform NoLabel
|
||||
5 chciałbym inform NoLabel
|
||||
6 zarezerwować inform B-goal
|
||||
7 2 inform B-quantity
|
||||
8 miejsca inform NoLabel
|
||||
9 na inform NoLabel
|
||||
10 seans inform NoLabel
|
||||
11 o inform NoLabel
|
||||
12 19:30 inform B-time
|
||||
|
||||
# text: dwa normalne
|
||||
# intent: inform
|
||||
# slots: dwa:quantity
|
||||
1 dwa inform B-quantity
|
||||
2 normalne inform NoLabel
|
||||
|
||||
# text: mogą być
|
||||
# intent: ack
|
||||
# slots:
|
||||
1 mogą ack NoLabel
|
||||
2 być ack NoLabel
|
||||
|
||||
# text: dziękuje bardzo
|
||||
# intent: bye
|
||||
# slots:
|
||||
1 dziękuje bye NoLabel
|
||||
2 bardzo bye NoLabel
|
||||
|
||||
# text: witam
|
||||
# intent: hello
|
||||
# slots:
|
||||
1 witam hello NoLabel
|
||||
|
||||
# text: chciałbym zarezerować dwa bilety na batman
|
||||
# intent: inform
|
||||
# slots: zarezerować:goal,dwa:quantity,batman:title
|
||||
1 chciałbym inform NoLabel
|
||||
2 zarezerować inform B-goal
|
||||
3 dwa inform B-quantity
|
||||
4 bilety inform NoLabel
|
||||
5 na inform NoLabel
|
||||
6 batman inform B-title
|
||||
|
||||
# text: a kiedy jest najbliższy seans
|
||||
# intent: inform
|
||||
# slots: kiedyjestnajbliższyseans:goal
|
||||
1 a inform NoLabel
|
||||
2 kiedy inform B-goal
|
||||
3 jest inform I-goal
|
||||
4 najbliższy inform I-goal
|
||||
5 seans inform I-goal
|
||||
|
||||
# text: to poproszę trzy bilety na batmana o 15:30
|
||||
# intent: inform
|
||||
# slots: poproszętrzy:quantity,batmana:title,o15:30:time
|
||||
1 to inform NoLabel
|
||||
2 poproszę inform B-quantity
|
||||
3 trzy inform I-quantity
|
||||
4 bilety inform NoLabel
|
||||
5 na inform NoLabel
|
||||
6 batmana inform B-title
|
||||
7 o inform NoLabel
|
||||
8 15:30 inform B-time
|
||||
|
||||
# text: na samym tyle sali
|
||||
# intent: inform
|
||||
# slots: nasamymtyle:area
|
||||
1 na inform B-area
|
||||
2 samym inform I-area
|
||||
3 tyle inform I-area
|
||||
4 sali inform I-area
|
||||
|
||||
# text: dziękuję
|
||||
# intent: thankyou
|
||||
# slots:
|
||||
1 dziękuję thankyou NoLabel
|
||||
|
||||
# text: hej
|
||||
# intent: hello
|
||||
# slots:
|
||||
1 hej hello NoLabel
|
||||
|
||||
# text: chciałbym kupić bilety na seans zorro - jak to było na prawdę
|
||||
# intent: inform
|
||||
# slots: zorro:title
|
||||
1 chciałbym inform NoLabel
|
||||
2 kupić inform NoLabel
|
||||
3 bilety inform NoLabel
|
||||
4 na inform NoLabel
|
||||
5 seans inform NoLabel
|
||||
6 zorro inform B-title
|
||||
7 - inform NoLabel
|
||||
8 jak inform NoLabel
|
||||
9 to inform NoLabel
|
||||
10 było inform NoLabel
|
||||
11 na inform NoLabel
|
||||
12 prawdę inform NoLabel
|
||||
|
||||
# text: zorro2
|
||||
# intent: inform
|
||||
# slots: zorro2:title
|
||||
1 zorro2 inform B-title
|
||||
|
||||
# text: poproszę o listę seansów
|
||||
# intent: reqmore
|
||||
# slots: listęseansów:goal
|
||||
1 poproszę reqmore NoLabel
|
||||
2 o reqmore NoLabel
|
||||
3 listę reqmore B-goal
|
||||
4 seansów reqmore I-goal
|
||||
|
||||
# text: poproszę o listę filmów granych jutro wieczorem
|
||||
# intent: reqmore inform
|
||||
# slots: listęfilmów:goal,jutro:date,wieczorem:time
|
||||
1 poproszę reqmore inform NoLabel
|
||||
2 o reqmore inform NoLabel
|
||||
3 listę reqmore inform B-goal
|
||||
4 filmów reqmore inform B-goal
|
||||
5 granych reqmore inform NoLabel
|
||||
6 jutro reqmore inform B-date
|
||||
7 wieczorem reqmore inform B-time
|
||||
|
||||
# text: chciałbym kupić bilety na film to nie wypanda
|
||||
# intent: inform
|
||||
# slots: kupić:goal,toniewypanda:title
|
||||
1 chciałbym inform NoLabel
|
||||
2 kupić inform B-goal
|
||||
3 bilety inform NoLabel
|
||||
4 na inform NoLabel
|
||||
5 film inform NoLabel
|
||||
6 to inform B-title
|
||||
7 nie inform I-title
|
||||
8 wypada inform I-title
|
||||
|
||||
# text: 20:15
|
||||
# intent: inform
|
||||
# slots: 20:15:time
|
||||
1 20:15 inform B-time
|
||||
|
||||
# text: 11
|
||||
# intent: inform
|
||||
# slots: 11:quantity
|
||||
1 11 inform B-quantity
|
||||
|
||||
# text: w środku pomiedzy górnym i środkowym rzędem
|
||||
# intent: nan
|
||||
# slots: wśrodkupomiedzygórnymiśrodkowymrzędem:area
|
||||
1 w null B-area
|
||||
2 środku null I-area
|
||||
3 pomiedzy null I-area
|
||||
4 górnym null I-area
|
||||
5 i null I-area
|
||||
6 środkowym null I-area
|
||||
7 rzędem null I-area
|
||||
|
||||
# text: <3
|
||||
# intent: thankyou
|
||||
# slots:
|
||||
1 <3 thankyou NoLabel
|
||||
|
||||
# text: dzień dobry
|
||||
# intent: hello
|
||||
# slots:
|
||||
1 dzień hello NoLabel
|
||||
2 dobry hello NoLabel
|
||||
|
||||
# text: chciał bym zamówić bilet na film minionki dzisiaj o 18:30
|
||||
# intent: inform
|
||||
# slots: dzisiaj:date,minionki:title,18:30:time
|
||||
1 chciał inform NoLabel
|
||||
2 bym inform NoLabel
|
||||
3 zamówić inform NoLabel
|
||||
4 bilet inform NoLabel
|
||||
5 na inform NoLabel
|
||||
6 film inform NoLabel
|
||||
7 minionki inform B-title
|
||||
8 dzisiaj inform B-date
|
||||
9 o inform NoLabel
|
||||
10 18:30 inform B-time
|
||||
|
||||
# text: czy jest jakis film o godzinie 18:30
|
||||
# intent: request
|
||||
# slots: jestjakisfilm:goal,18:30:time
|
||||
1 czy request NoLabel
|
||||
2 jest request B-goal
|
||||
3 jakis request I-goal
|
||||
4 film request I-goal
|
||||
5 o request NoLabel
|
||||
6 godzinie request NoLabel
|
||||
7 18:30 request B-time
|
||||
|
||||
# text: niech będzie
|
||||
# intent: ack
|
||||
# slots:
|
||||
1 niech ack NoLabel
|
||||
2 będzie ack NoLabel
|
||||
|
||||
# text: 1
|
||||
# intent: inform
|
||||
# slots: 1:quantity
|
||||
1 1 inform B-quantity
|
||||
|
||||
# text: jakie sš dostępne ulgi
|
||||
# intent: nan
|
||||
# slots:
|
||||
1 jakie NoLabel
|
||||
2 sš NoLabel
|
||||
3 dostępne NoLabel
|
||||
4 ulgi NoLabel
|
||||
|
||||
# text: studencka
|
||||
# intent: inform
|
||||
# slots:
|
||||
1 studencka inform NoLabel
|
||||
|
||||
# text: daleko od ekranu
|
||||
# intent: inform
|
||||
# slots: dalekoodekranu:area
|
||||
1 daleko inform B-area
|
||||
2 od inform I-area
|
||||
3 ekranu inform I-area
|
||||
|
||||
# text: tak
|
||||
# intent: ack
|
||||
# slots:
|
||||
1 tak ack NoLabel
|
3003
tasks/zad8/pl/train.conllu
Normal file
3003
tasks/zad8/pl/train.conllu
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user