diff --git a/data/dialog-14-01-01.tsv b/data/dialog-14-01-01.tsv index e69de29..617f112 100644 --- a/data/dialog-14-01-01.tsv +++ b/data/dialog-14-01-01.tsv @@ -0,0 +1,12 @@ +user dzien dobry, czy poleci pan cos z menu? hello() +system Witamy w systemie rezerwacji pokoi hotelowych. Czy jest pan zainteresowany w konkretnym menu z restauracji z jednym z hoteli? welcomemsg() +user tak, czy sa wolne pokoje z ładnym widokiem dla 2 osob w przyszły weekend? request(room)&inform(people=2,date=next_weekend) +system W jakiej miejscowości chciałby dokonać Pan rezerwacji? reques(city) +user Warszawa inform(city) +system Dobrze, czy zainteresuje Pana 5 gwiazdowy hotel xyz w centrum Warszawy z widokiem na rynek, wliczonym śniadaniem oraz spa? offer(xyz) +user a mozna troche dalej, na rynku straszne halasy sa reqalts() +system Dobrze, może zainteresuje Pana hotel zzz 7 km od centrum z widokiem na jezioro? offer(zzz) +user tak, to jest to confirm() +system Dobrze, rezerwacja na termin 01.04.2023 - 02.04.2023 w hotelu zzz została zrobiona. Numer rezerwacji: 111333555 affirm()&inform(reservation_number) +user potwierdzam confirm() +system Dziękuję, do zobaczenia! bye() diff --git a/data/dialog-14-03-01.tsv b/data/dialog-14-03-01.tsv index e69de29..fb1c9f5 100644 --- a/data/dialog-14-03-01.tsv +++ b/data/dialog-14-03-01.tsv @@ -0,0 +1,13 @@ +user dzień dobry hello() +system Witamy w systemie rezerwacji pokoi hotelowych. welcomemsg +user chciałbym zarezerwować pokój dwuosobowy na dni 25-28 marca 2023 request(people=2,date=25-28 marca 2023) +system Dobrze, w jakiej miejscowości chciałby Pan zarezerwować pokój? request(city) +user w Poznaniu inform(city) +system Dobrze czy ma Pan jeszcze dodatkowe wymagania dotyczące zakwaterowania? request(requirements) +user balkon w pokoju, bar w hotelu inform(requirements=balkon&bar) +system Dobrze, czy zainteresuje Pana 4 gwiazdkowy hotel xyz znajdujący się 2 km od rynku, który posiada balkon, bar oraz wliczone śniadanie w cenę? offer(xyz) +user zależy ile kosztuje reqmore(price) +system Hotel xyz kosztuje 220 zł za dobę. inform(price) +user brzmi dobrze confirm() +system Dobrze, rezerwacja w hotelu xyz na termin 25.03.23 - 28.03.23 została zrobiona. Numer rezerwacji 987654321 affirm()&inform(reservation_number=987654321) +user dziękuję thankyou() diff --git a/data/dialog-14-05-01.tsv b/data/dialog-14-05-01.tsv index e69de29..7bfe881 100644 --- a/data/dialog-14-05-01.tsv +++ b/data/dialog-14-05-01.tsv @@ -0,0 +1,13 @@ +user Witam, z jakim systemem mam do czynienia? hello()&request(system) +system Witamy w systemie rezerwacji pokoi hotelowych. welcomemsg() +user Chciałbym zarezerowować pokój w jakimś hotelu w Warszawie, możliwie jak najbliżej lotniska. request(room)&inform(city=Warszwa,area=close_to_airport) +system Dobrze, czy zainteresowałby Pana hotel xyz, który znajduje się 1,2 km od lotniska i dodatkowo ma wliczone śniadanie w cenę? offer(xyz) +user To zależy od tego jaka jest cena. Mogę poprosić o szerszy wybór hoteli? request(price)&reqalts() +system Dobrze, mam do zaoferowania parę hoteli spełniających Twoje wymagania: -xyz - 4 gwiazdkowy hotel z bufetem, basenem i parkingiem 200 zł za dobę w odległości 1,2 km od lotniska -yzx - 3 gwiazdkowy hotel niedaleko stadionu z opcją wykupu śniadania 120 zł za dobę w odległości 2,5 km od lotniska -zxy - budżetowy motel z restauracją obok oraz parkingiem strzeżonym 80 zł za dobę położony 4 km od lotniska Czy jest Pan zainteresowany jedną z opcji? select(hotel) +user W tej sytuacji jestem zainteresowany rezerwacją tego hotelu, który jest najbliżej inform(option=xyz) +system Jaki jest termin wizyty? request(date) +user 31.03.2023 - 02.04.2023 inform(date=31.03.2023 – 02.04.2023) +system Dobrze, czy rezerwacja ma być dla jednej osoby? request(people) +user Tak, dla jednej inform(number_of_people=1) +system Dobrze rezerwacja dla 1 osoby w hotelu xyz na termin 31.03.2023 - 02.04.2023 została zrobiona. Numer rezerwacji: 444555666 affirm()&inform(reservation_number=444555666) +user dziękuję bardzo thankyou() diff --git a/data/dialog-14-07-01.tsv b/data/dialog-14-07-01.tsv index e69de29..c44db4c 100644 --- a/data/dialog-14-07-01.tsv +++ b/data/dialog-14-07-01.tsv @@ -0,0 +1,13 @@ +user Witam hello() +system Witamy w systemie rezerwacji pokoi hotelowych. welcomemsg() +user Witam, chcialbym zarezerwowac pokoj dla 3 osob, 2 os na jeden pokoj a ta trzecia osobno inform(number_of_rooms(2),number_of_people(2,1) +system Dobrze, w jakiej miejscowości chciałby Pan zarezerwować ten hotel i w jakim terminie? request(city) +user W Sosnowcu, na 9-11 września inform(city=Sosnowiec,date=9-11 września) +system Czy zainteresuje Pana hotel xyz w Sosnowcu niedaleko centrum? W cenę ma wliczone śniadanie i dodatkowo jest dostępny basen. offer(xyz) +user Poproszę confirm() +system Dobrze, rezerwacja na 2 pokoje w hotelu xyz w Sosnowcu została zrobiona na termin 9-11 września. Numer rezerwacji 0987654321. affirm()&inform(reservation_number=0987654321) +user Dziękuję, kiedy mogę zapłacić? request(payment) +system Zapłacić można albo z góry albo przy odebraniu kluczy do pokoju. inform(payment=z góry albo przy odebraniu kluczy do pokoju.) +user Ok, to zapłacę przy odebraniu kluczy inform(payment=przy odebraniu kluczy do pokoju.) +system Dobrze, czekamy na Pańską wizytę z niecierpliwością! confirm() +user Do zobaczenia bye() diff --git a/data/dialog-14-11-01.tsv b/data/dialog-14-11-01.tsv index e69de29..42f5403 100644 --- a/data/dialog-14-11-01.tsv +++ b/data/dialog-14-11-01.tsv @@ -0,0 +1,16 @@ +user chciałbym zamówić jedzenie request(food) +system Witamy w systemie rezerwacji pokoi hotelowych. Czy jest pan zainteresowany w konkretnym menu z restauracji w jednym z hoteli? welcomemsg() +user podaj menu, dań głównych request(menu) +system Dzień dobry, niestety nie mamy dostępu do informacji na temat menu w naszych hotelach. Czy jest Pan zainteresowany rezerwacją pokoju w jednym z hoteli, z którymi współpracujemy? canthelp() +user tak jaki hotel jest najbliżej Poznania confirm()&inform(city=Poznań) +system Dobrze, mam do zaoferowania parę hoteli spełniających Twoje wymagania: -xyz - 5 gwiazdkowy hotel blisko rynku z bufetem i parkingiem podziemnym -yzx - 4 gwiazdkowy hotel niedaleko stadionu z opcją wykupu śniadania -zxy - budżetowy motel położony 5 km od centrum z restauracją obok oraz parkingiem strzeżonym Czy jest Pan zainteresowany jedną z opcji? offer(xyz,yzx,zxy) +user czy w zxy jest basen? request(pool) +system zxy nie posiada basenu. negate(pool) +user a xyz? request(pool) +system xyz posiada spa, jednak nie posiada basenu inform(spa)&negate(pool) +user czy sa wolne 2 osobowe pokoje na 25.03? request(rooms=2,date=25.03) +system w hotelu xyz są jeszcze 2 wolne pokoje 2-osobowe na termin 25.03. Czy dokonać rezerwacji? inform(availability)&request(confirmation) +user tak, o której zaczyna się doba hotelowa? request(check-in/out time) +system Doba hotelowa w hotelu xyz zaczyna się o 14. inform(check-in/out time) +user potwierdzam rezerwację confirm() +system Dobrze, rezerwacja w hotelu xyz na termin 25.03 została zrobiona. Numer rezerwacji 444555666. confirm()&inform(reservation_number=444555666) diff --git a/data/dialog-14-13-01.tsv b/data/dialog-14-13-01.tsv index e69de29..dc43b4e 100644 --- a/data/dialog-14-13-01.tsv +++ b/data/dialog-14-13-01.tsv @@ -0,0 +1,15 @@ +user witam hello() +system Witamy w systemie rezerwacji pokoi hotelowych. welcomemsg() +user chcialabym dokonac rezerwacji pokoju w warszawie inform(city=Warszawa) +system Dobrze, czy masz jakieś dodatkowe wymagania dotyczące zakwaterowania? reqmore() +user wazny jest dla mnie jedyny parking oraz sniadania w formie bufetu inform(requirement=parking,requirement=breakfast) +system Dobrze, mam do zaoferowania parę hoteli spełniających Twoje wymagania: -xyz - 5 gwiazdkowy hotel blisko rynku z bufetem, basenem i parkingiem -yzx - 4 gwiazdkowy hotel niedaleko stadionu z opcją wykupu śniadania -zxy - budżetowy motel położony 5 km od centrum z restauracją obok oraz hotelem strzeżonym Czy jest Pani zainteresowana jedną z opcji? offer(xyz,yzx,zxy) +user w jakiej cenie jest hotel yzx request(price) +system Hotel yzx kosztuje 140 zł za dobę. inform(price=140) +user dobrze to chcialabym zarezerwowac ten hotel confirm() +system Na jaki termin chciałabyś dokonać rezerwacji? request(date) +user na DD.MM.RR do DD.MM.RR inform(date=DD.MM.RR do DD.MM.RR) +system Dobrze, czy rezerwacja ma być dla jednej osoby? request(people) +user dla 2 inform(people=2) +system Dobrze rezerwacja dla 2 osób w hotelu yzx na termin DD.MM.RR - DD.MM.RR została zrobiona. Numer rezerwacji: 1234567890 confirm()&inform(reservation_number=1234567890) +user dziekuje thankyou() diff --git a/data/dialog-14-15-01.tsv b/data/dialog-14-15-01.tsv index e69de29..4f23512 100644 --- a/data/dialog-14-15-01.tsv +++ b/data/dialog-14-15-01.tsv @@ -0,0 +1,11 @@ +user Dzień dobry hello() +system Witamy w systemie rezerwacji pokoi hotelowych. welcomemsg() +user Chciałbym zarezerwować hotel w Zakopanem na najbliższy weekend. request(hotel)&inform(city=Zakopane) +system Dobrze, czy hotel xyz, który znajduje się niedaleko stoku spełniałby Pańskie wymagania? offer(xyz) +user Czy hotel posiada przynajmniej 3 gwiazdki oraz basen? request(stars=3,pool) +system Dzień dobry, hotel ma 3 gwiazdki i nie posiada basenu. inform(stars=3,pool=false) +user Poproszę o znalezienie hotelu z basenem. inform(requirement=pool) +system Dobrze, czy 4 gwiazdkowy hotel zyx, który znajduje się 3 km od centrum i posiada basen oraz wliczone w cenę śniadanie Pana zainteresuje? offer(zyx) +user Tak proszę o dokonanie rezerwacji pokoju dla trzech osób. confirm&inform(people=3) +system Dobrze rezerwacja dla 3 osób w hotelu zyx w Zakopanem na najbliższy weekend została zrobiona. Numer rezerwacji: 999888777 confirm()&inform(reservation_number=999888777) +user Dziękuję bardzo thankyou() diff --git a/data/dialog-14-17-01.tsv b/data/dialog-14-17-01.tsv index e69de29..258a0a3 100644 --- a/data/dialog-14-17-01.tsv +++ b/data/dialog-14-17-01.tsv @@ -0,0 +1,11 @@ +user Dzień dobry hello() +system Dzień dobry! Witam w systemie rezerwacji pokojów hotelowych. W czym mogę pomóc? welcomemsg() +user Chciałbym zarezerwować pokój na dwie doby, najlepiej z widokiem na miasto. Rezerwacja od 25.03 do 27.03. Czy jest może u Państwa dostępny pokój? inform(requirement=view_of_city,date=25.03-77.03) +system Dobrze, czy hotel xyz, który znajduje się blisko centrum by pasował? offer(xyz) +user Tak, to ten hotel w Poznaniu confirm() +system Dobrze, są jeszcze wolne pokoje w cenie 150 zł za dobę. Czy dokonać rezerwacji? inform(price=150)&request(confirmation) +user Tak, poproszę dla dwóch osób inform(people=2) +system Dobrze, rezerwacja dla 2 osób jest zrobiona w hotelu xyz o numerze rezerwacji 123456789 confirm()&inform(reservation_number=123456789) +user Bardzo dziękuję, będziemy za 3 dni o godzinie 15 thankyou()&confirm() +user Do zobaczenia bye() +system Dziękuję i do zobaczenia! thankyou() diff --git a/data/dialog-14-19-01.tsv b/data/dialog-14-19-01.tsv index e69de29..d1f22ee 100644 --- a/data/dialog-14-19-01.tsv +++ b/data/dialog-14-19-01.tsv @@ -0,0 +1,8 @@ +user Dzień dobry. Chciałbym anulować rezerwację hello()&inform(cancellation) +system Witamy w systemie rezerwacji pokoi hotelowych. welcomemsg() +system Dobrze, proszę podać numer rezerwacji. request(reservation_number) +user 8976098 inform(reservation_number=8976098) +system Dobrze, rezerwacja została anulowana. Czy można poznać powód anulowania? affirm()&request(reason) +user Bardzo dziękuję za sprawne załatwienie tematu. Powodem jest choroba mojej żony i niestety nie jesteśmy w stanie udać się w podróż ze względu na jej stan fizyczny. thankyou()&inform(reason=sickness) +system Dziękuję za podanie powodu i życzę szybkiego powrotu do zdrowia! thabkyou() +user Jeszcze raz bardzo dziękuję thankyou() diff --git a/utils/script.py b/utils/script.py index 2651f30..3e93c97 100644 --- a/utils/script.py +++ b/utils/script.py @@ -38,7 +38,27 @@ def process_text(text, nazwisko_user, nazwisko_system): def read_tsv(file_path): with open(file_path, 'r', encoding='utf-8') as tsv_file: content = tsv_file.read() - return content + spaces=0 + pos_of_names = [] + for letter in range(15,len(content)): + if content[letter] =="\n"or content[letter] ==" ": + spaces = spaces+1 + pos_of_names.append(letter) + if spaces == 2: + break + for letter in range(pos_of_names[1],len(content)): + if content[letter] =="]": + pos_of_names.append(letter+2) + for letter2 in range(pos_of_names[2],len(content)): + if content[letter2] =="\n": + pos_of_names.append(letter2) + spaces=spaces+1 + break + if spaces==3: + break + user = content[14:pos_of_names[1]] + operator = content[pos_of_names[2]:pos_of_names[3]] + return content,user,operator def write_tsv(file_path, content): @@ -58,18 +78,24 @@ def replace_first_space_with_tab(text): new_lines.append(line) return "\n".join(new_lines) - -if __name__ == '__main__': - # wypelnic przed uruchomieniem - nazwisko_user = "Maślanka" - nazwisko_system = "Bałtruszewicz" - numer_user = "16" - numer_system = "15" - file_path = f"/Users/wojciechbatruszewicz/InformatykaStudia/SEMESTR8/SD/PROJEKT/data/dialog-{numer_system}-{numer_user}-01.tsv" - - text = read_tsv(file_path) +def do_all(filename): + path="C:/Users/macty/OneDrive/Pulpit/conversations" + file_path = path+"/"+filename + text,user,operator = read_tsv(file_path) text = remove_empty_lines(text) text = join_lines(text) - text = process_text(text, nazwisko_user, nazwisko_system) + text = process_text(text, user, operator) text = replace_first_space_with_tab(text) write_tsv(file_path, text) + + +if __name__ == '__main__': + import os + + for filename in os.listdir("C:/Users/macty/OneDrive/Pulpit/conversations"): + do_all(filename) + #nie działa dla sytuacji gdzie ktoś na początku pisze 2 razy zanim dostanie odpowiedź, ale nie chce mi sie kombinować z poprawianiem tego dla jednej sytuacji + + + +