diff --git a/README.md b/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/chatbot.py b/chatbot.py deleted file mode 100644 index 5ee5bff..0000000 --- a/chatbot.py +++ /dev/null @@ -1,19 +0,0 @@ -import re -import random - -#default_answers = [0: "Powiedz mi więcej.", 1: "Zmieńmy temat - opowiedz mi o swojej rodzinie.", 2: "Rozumiem.", 3: "Czemu tak uważasz?", 4: "Interesujące...", 5: "Mhm.", 6: "Jak się z tym czujesz?"] -#answer_patterns = #lista list zczytana z pliku; struktura listy np. lista[0] - regex, lista[n] - odpowiedzi - -print("Witaj. Jak się dzisiaj czujesz?") -while True: - match_found = False - user_input = input() - for answer_pattern in answer_patterns: - if re.match(answer_pattern[0], user_input): - match_found = True - answer_number = random.randint(1, len(answer_pattern)) - print(answer_pattern[answer_number]) - break - if not match_found: - answer_number = random.randint(0, len(default_answers)) - print(default_answers[answer_number]) \ No newline at end of file diff --git a/chatbot2.py b/chatbot2.py deleted file mode 100644 index 049f195..0000000 --- a/chatbot2.py +++ /dev/null @@ -1,384 +0,0 @@ -from nltk.chat.util import Chat - -pairs_pl = ( - ( - r"Potrzebuję (.*)", - ( - "Dlaczego potrzebujesz %1?", - "Czy poczułbyś się lepiej gdybyś miał %1?", - "Jesteś pewny, że potrzebujesz %1?", - ), - ), - ( - r"Dlaczego nie mogę (.*)", - ( - "Myślisz, że powinieneś móc %1?", - "Gdybyś mógł %1, co byś wtedy zrobił?", - "Nie wiem -- dlaczego nie możesz %1?", - "Czy kiedykolwiek tak naprawdę spróbowałeś?", - ), - ), - ( - r"Nie mogę (.*)", - ( - "Skąd wiesz, że nie możesz %1?", - "Może mógłbyś %1 gdybyś spróbował.", - "Co musiało by się wydarzyć, byś mógł %1?", - ), - ), - ( - r"Jestem (.*)", - ( - "Jak się czujesz z tym, że jesteś %1?", - "Czy sprawia Ci przyjemność bycie %1?", - "Dlaczego chciałeś mi powiedzieć, że jesteś %1?", - "Dlaczego myślisz, że jesteś %1?", - "Czy przyszedłeś do mnie, bo jesteś %1?", - "Od jak dawna jesteś %1?", - "Czy dobrze się czujesz z tym, że jesteś %1?", - ), - ), - ( - r"Czy jesteś (.*)", - ( - "Czy to ma znaczenie czy jestem %1?", - "Wolałbyś, żebym nie był %1?", - "Być może wierzysz, że jestem %1.", - "Mogę być %1 - a jak Tobie się wydaje?", - ), - ), - ( - r"Co (.*)\?", - ( - "Dlaczego pytasz?", - "W jaki sposób miałaby Ci pomóc odpowiedź na to pytanie?", - "A co Ty o tym myślisz?", - ), - ), - ( - r"Jak (.*)\?", - ( - "A jak Tobie się wydaje?", - "Może sam spróbujesz odpowiedzieć na to pytanie.", - "O co tak naprawdę pytasz?", - ), - ), - ( - r"(Dlatego,? że|Ponieważ) (.*)", - ( - "Czy to jest prawdziwy powód?", - "Jakie inne powody przychodzą Ci na myśl?", - "Czy może być inny powód, oprócz %2?", - ), - ), - ( - r"(.*)przepraszam (.*)", - ( - "Często przeprosiny nie są wcale potrzebne.", - "Jakie uczucia Ci towarzyszą, gdy przepraszasz?", - "Uważasz, że powinieneś przepraszać?" - ), - ), - ( - r"(Cześć|Hej) (.*)", - ( - "Dzień dobry, cieszę się, że możemy się dziś spotkać.", - "Dzień dobry, jak się dzisiaj czujesz?", - "Dzień dobry, jak Ci minął dzień?", - ), - ), - ( - r"Wydaje mi się, że (.*)", - ( - "Masz wątpliwości, że %1?", - "Naprawdę tak myślisz?", - "Ale nie jesteś pewny, że %1?" - ), - ), - ( - r"(.*) przyjaci(.*)", - ( - "Opowiedz mi więcej o twoich przyjaciołach.", - "Kiedy myślisz o przyjacielu, jakie towarzyszą Ci uczucia?", - "Może opowiesz mi o twoich przyjaciołach z dzieciństwa?", - ), - ), - ( - r"Tak", - ( - "Wydajesz się tego pewny.", - "Dobrze, czy mógłbyś powiedzieć mi coś więcej?" - ) - ), - ( - r"(.*) komputer (.*)", - ( - "Naprawdę mówisz o mnie?", - "Czy rozmowa z komputerem wydaje Ci się czymś dziwnym?", - "Czy komputery sprawiają, że czujesz się zagrożony?", - "CZy odczuwasz zagrożenie ze strony komputerów?", - ), - ), - ( - r"Czy to jest (.*)", - ( - "Myślisz, że to jest %1?", - "Być może to %1 - jak Ty myślisz?", - "Gdyby to było %1, co byś zrobił?", - "To zdecydowanie może być %1.", - ), - ), - ( - r"To jest (.*)", - ( - "Wydajesz się tego bardzo pewny.", - "Gdybym powiedział Ci, że to prawdopodobnie nie jest %1, jak byś się wtedy czuł?", - ), - ), - ( - r"Czy (możesz|mógłbyś|mogłabyś)(.*)", - ( - "Dlaczego myślisz, że nie %1%2?", - "Jeżeli %1, to co?", - "Dlaczego pytasz czy %1%2?", - ), - ), - ( - r"Czy mogę (.*)", - ( - "Być może wcale nie chcesz %1.", - "Czy chciałbyś móc %1?", - "Gdybyś mógł %1, zrobiłbyś to?", - ), - ), - ( - r"(jesteś)(.*)", - ( - "Dlaczego mówisz, że %1%2?", - "Dlaczego myślisz, że %1%2?", - "Chcemy rozmawiać o mnie czy o tobie?", - "Chciałbyś, żebym był%2?", - "Być może tak naprawdę mówisz o sobie?", - "Może chciałbyś, żebym był%2" - ), - ), - ( - r"Nie chcę (.*)", - ( - "Naprawdę nie chcesz %1?", - "Dlaczego nie chcesz %1?", - ), - ), - ( - r"Czuję (.*)", - ( - "Dobrze, powiedz mi więcej o tym jak się czujesz.", - "Często czujesz %1?", - "Kiedy zazwyczaj czujesz %1?", - "Gdy czujesz %1, co zazwyczaj z tym robisz?", - ), - ), - ( - r"Mam (.*)", - ( - "Dlaczego mówisz, że masz %1?", - "Czy naprawdę masz %1?", - "Teraz gdy już masz %1, co planujesz zrobić?", - ), - ), - ( - r"Ja bym (.*)", - ( - "Mógłbyś dokładniej powiedzieć co byś %1?", - "Dlaczego %1?", - "Czy ktoś wie, że Ty byś %1?", - ), - ), - ( - r"Czy jest (.*)", - ( - "Myślisz, że jest %1?", - "Możliwe, że jest %1.", - "Czy chciałbyś, żeby był %1?", - ), - ), - ( - r"(?=Mój|Moja)(.*)", - ( - "Rozumiem, %1.", - "Dlaczego uważasz, że %1?", - "Kiedy %1, jak się wtedy czujesz?", - ), - ), - ( - r"Ty (.*)", - ( - "Powinniśmy mówić o Tobie, nie o mnie.", - "Dlaczego tak o mnie myślisz?", - "Dlaczego to dla Ciebie ważne?", - ), - ), - ( - r"Dlaczego (.*)", - ("Może sam spróbujesz odpowiedzieć to pytanie?", - "Dlaczego myślisz, że %1?" - ) - ), - ( - r"(Chciałabym|chciałbym) (.*ć|.*c) (.*)", - ( - "Co by się zmieniło, gdybyś mógł %2 %3?", - "Dlaczego %1 %2 %3?", - "Co byś zrobił gdybyś mógł %2 %3?", - "Gdybyś mógł %2 %3, co byś wtedy zrobił?", - ), - ), - ( - r"(Chciałabym|chciałbym) (.*)", - ( - "Co by się zmieniło, gdybyś miał %2?", - "Dlaczego %1 %2?", - "Co byś zrobił gdybyś miał %2?", - "Gdybyś miał %2, co byś wtedy zrobił?", - ), - ), - ( - r"(mama|matka).*", - ( - "Opowiedz mi o twojej matce.", - "Jak układają się twoje stosunki z matką?", - "Co czujesz kiedy myślisz o twojej mamie?", - "Myślisz, że to ma wpływ na to jak obecnie się czujesz?", - "Dobre relacje rodzinne są ważne.", - ), - ), - ( - r"(tata|ojciec).*", - ( - "Opowiedz mi więcej o twoim ojcu.", - "Jak układają się twoje stosunki z ojcem?", - "Co czujesz kiedy myślisz o twoim ojcu?", - "Myślisz, że to ma wpływ na to jak obecnie się czujesz?", - "Czy masz problem z okazywaniem uczuć członkom twojej rodziny?", - ), - ), - ( - r"(.*)\?", - ( - "Dlaczego o to pytasz?", - "Zastanów się czy jesteś w stanie sam odpowiedzieć na to pytanie.", - "Być może odpowiedzi powinieneś szukać u siebie?", - "Może chciałbyś powiedzieć mi o tym coś więcej?", - ), - ), - ( - r"wyjdź", - ( - "Dziękuję, że zechciałeś ze mną porozmawiać.", - "Do zobaczenia.", - "Dziękuję, to będzie 200zł. Miłego dnia!", - ), - ), - ( - r"(.* mieć dziec.*)", - ( - "Dlaczego %1?", - "Czy twoje doświadczenia z dzieciństwa mają wpływ na tę decyzję?", - "Dobrze wspominasz swoje dzieciństwo?", - ), - ), - ( - r"(.*) dziec(.*)", - ( - "Czy jako dziecko miałaś wielu przyjaciół?", - "Jakie jest twoje ulubione wspomnienie z dzieciństwa?", - "Pamiętasz jakieś koszmary czy sny z dzieciństwa?", - "Czy inne dzieci Ci dokuczały?", - "Myślisz, że twoje doświadczenia z dzieciństwa miały wpływ na to jak się dzisiaj czujesz?", - ), - ), - ( - r"(.*)", - ( - "Proszę, powiedz mi coś więcej.", - "Proszę, powiedz mi dlaczego %1", - "W takim razie zmieńmy temat... Opowiedz mi coś o twojej rodzinie.", - "Chciałbyś rozwinąć tę myśl?", - "Dlaczego uważasz, że %1?", - "Rozumiem.", - "Interesujące.", - "%1.", - "Rozumiem. I co Ci to mówi?", - "Jak się przez to czujesz?", - "Co czujesz kiedy to mówisz?", - ), - ), -) - -reflections_pl = { - "jestem": "jesteś", - "byłem": "byłeś", - "byłam": "byłaś", - "będę": "będziesz", - "ja": "ty", - "ty": "ja", - "chciałbym": "chciałbyś", - "chciałabym": "chciałabyś", - "mam": "masz", - "masz": "mam", - "mój": "twój", - "moja": "twoja", - "moje": "twoje", - "mojej": "twojej", - "moi": "twoi", - "jesteś": "jestem", - "byłeś": "byłem", - "byłaś": "byłam", - "będziesz": "będę", - "twój": "mój", - "twoja": "moja", - "twoje": "moje", - "ciebie": "mnie", - "ci": "mi", - "tobie": "mi", - "mnie": "ciebie", - "mi": "tobie", - "chciałem": "chciałeś", - "chciałam": "chciałaś", - "szukam": "szukasz", - "obawiam": "obawiasz", - "boję": "boisz", - "ufam": "ufasz", - "z tobą": "ze mną", - "muszę": "musisz", - "możesz": "mogę", - "mógłbyś": "mogę", - "mogłabyś": "mogę", - "powinnam": "powinnaś", - "powinienem": "powinieneś" -} - -grazyna_chatbot = Chat(pairs_pl, reflections_pl) - - -def grazyna_chat(): - greeting = ['Rozmawiaj z programem pisząc proste zdania w języku polskim.', - 'Aby zakończyć rozmowę napisz \033[1;31mwyjdź\033[0;0m.'] - frame_width = len(max(greeting, key=len)) + 8 - print("*" * frame_width + "\n*" + (frame_width - 2) * " " + "*") - print("*" + int((frame_width - len(greeting[0]) - 1) / 2) * " " + greeting[0] + int( - (frame_width - len(greeting[0]) - 2) / 2) * " " + "*") - print("*" + int((frame_width - len(greeting[1]) + 13 - 1) / 2) * " " + greeting[1] + int( - (frame_width - len(greeting[1]) + 13 - 2) / 2) * " " + "*\n*" + (frame_width - 2) * " " + "*") - print("*" * frame_width) - print("\nDzień dobry. Jak się dzisiaj czujesz?") - - grazyna_chatbot.converse(quit="wyjdź") - - -def demo(): - grazyna_chat() - - -if __name__ == "__main__": - demo() \ No newline at end of file diff --git a/requirements-analysis.md b/requirements-analysis.md index 66fed97..29e3aab 100644 --- a/requirements-analysis.md +++ b/requirements-analysis.md @@ -4,53 +4,181 @@ Tytuł Projektu: System sprzedaży biletów kinowych Zadanie 1: Rezerwacja biletu -------------------------------- -*system:* ... +*system:* Witam w systemie sprzedaży biletów kinowych. Jak mogę Ci pomóc? + +*user:* Chciałbym dokonać rezerwacji biletów. + +*system:* Świetnie! Na kogo będą rezerwowane bilety? Proszę podaj imię, nazwisko oraz adres e-mail. + +*user:* Jan Kowalski jankowalski@poczta.pl. + +*system:* Oczywiście. Na jaki film chcesz zarezerwować bilety? + +*user:* Na film Batman. + +*system:* Jaki dzień i godzina Cię interesują? + +*user:* 1 kwietnia o 20:00. + +*system:* Podaj proszę liczbę i rodzaj biletów, które chcesz zakupić. + +*user:* 2 normalne. + +*system:* Dobrze. Jakie miejsca Cię interesują? + +*user:* W ostatnim rzędzie. + +*system:* W ostatnim rzędzie dostępne są miejsca od numeru 3 do numeru 13. Które chcesz wybrać? + +*user:* Chcę miejsca 4 i 5. + +*system:* Rozumiem. Podałeś poprawne dane rezerwacji. Pozwól, że je powtórzę: 2 bilety normalne na pokaz filmu Batman 1 kwietnia o godzinie 20:00, miejsca o numerach 4 i 5 w ostatnim rzędzie na nazwisko Kowalski. Czy mogę zatwierdzić rezerwację dla tych danych czy chcesz coś jeszcze poprawić? + +*user:* Nie, dane się zgadzają. + +*system:* W takim razie zatwierdzam dokonanie rezerwacji. Kod twojej rezerwacji to 123456. Potwierdzenie zostało wysłane do Ciebie e-mailem. Bilety możesz odebrać w kinie 30 minut przed seansem. Dziękuję za rozmowę i życzę dobrej zabawy :) -*user:* ... -*system:* ... Zadanie 2: Anulowanie rezerwacji biletu --------------------------- +-------------------------------- -*system:* ... +*system:* Witam w systemie sprzedaży biletów kinowych. Jak mogę Ci pomóc? + +*user:* Chciałbym anulować rezerwację biletów. + +*system:* W porządku. Będę potrzebować kodu twojej rezerwacji, który został do Ciebie wysłany e-mailem. Czy posiadasz taki kod? Jeśli tak, podaj go proszę. + +*user:* 123456. + +*system:* Kod jest poprawny. Czy na pewno chcesz anulować rezerwację? + +*user:* Tak, chcę. + +*system:* Oczywiście. Rezerwacja została anulowana. Zapraszamy na film w innym terminie. Dziękuję za rozmowę i życzę miłego dnia :) -*user:* ... -*system:* ... Zadanie 3: Zakup biletu --------------------------- +-------------------------------- -*system:* ... +*system:* Witam w systemie sprzedaży biletów. Jak mogę Ci pomóc? + +*user:* Chciałbym zakupić bilet na film Batman. + +*system:* Świetnie! Na kogo będą rezerwowane bilety? Proszę podaj imię, nazwisko oraz adres e-mail. + +*user:* Jan kowalski i JanKowlski@wp.pl. + +*system:* Dobrze na jaki dzień i godzinę? + +*user:* 15.03 na 18:30. + +*system:* Dobrze jakie miejsca ciebie interesują? + +*user:* Bliżej środka. + +*system:* Dostępne jest miejsce w 5 rzędzie od 6:8, 10:13 w 6 rzędzie 7:11 a w 7 rzędzie od 6:13. + +*user:* Chciałbym zakupić w 6 rzędzie 8 miejsce. + +*system:* Dobrze chcesz zapłacić teraz czy na miejscu. + +*user:* Zapłace na miejscu + +*system:* Rozumiem. Podałeś poprawne dane rezerwacji. Pozwól, że je powtórzę: 1 bilety normalne na pokaz filmu Batman 15 marca o godzinie 18:30, miejsca o numerach 8 w szóstym rzędzie na nazwisko Kowalski. Czy mogę zatwierdzić rezerwację dla tych danych czy chcesz coś jeszcze poprawić? + +*user:* Nie, dane się zgadzają. + +*system:* W takim razie zatwierdzam dokonanie rezerwacji. Kod twojej rezerwacji to 123456. Potwierdzenie zostało wysłane do Ciebie e-mailem. Bilety możesz odebrać w kinie 30 minut przed seansem. Dziękuję za rozmowę i życzę dobrej zabawy -*user:* ... -*system:* ... Zadanie 4: Anulowanie zakupu biletu --------------------------- +-------------------------------- -*system:* ... +*system:* Witam w systemie sprzedaży biletów. Jak mogę Ci pomóc? + +*user:* Chciałbym anulować zakup biletu + +*system:* W porządku. Będę potrzebować kodu twojej rezerwacji, który został do Ciebie wysłany e-mailem. Czy posiadasz taki kod? Jeśli tak, podaj go proszę. + +*user:* 123456. + +*system:* Kod jest poprawny. Z racji na to że dokonał pan już opłaty biletu Czy na pewno chcesz anulować zakup? + +*user:* Tak, chcę. + +*system:* Oczywiście. Zakup została anulowana. Na jakie konto przelać ponownie pieniądze? +*user:* Poproszę na to samo z którego płaciłem. +*system:* Dobrze fundusze zostaną przelane w ciągu 3 dni roboczych. Zapraszamy na film w innym terminie. Dziękuję za rozmowę i życzę miłego dnia. -*user:* ... -*system:* ... Zadanie 5: Sprawdzenie dostępności miejsc --------------------------- +-------------------------------- -*system:* ... +*system:* Witam w systemie sprzedaży biletów kinowych. Jak mogę Ci pomóc? + +*user:* Chciałbym dowiedzieć się czy są dostępne 2 miejsca na film TYTUŁ? + +*system:* Jaki dzień i godzina Cię interesują? + +*user:* wtorek o 18:30 + +*system:* Niestety wszystkie miejsca na ten seans zostały już zarezerwowane. Czy chcesz sprawdzić dostępność miejsc na inny seans? + +*user:* Tak + +*system:* Jaki inny seans Cię interesuje? + +*user:* wtorek o 20:00 + +*system:* Na wtorkowy seans o 20:00 dostępne jest 15 miejsc. + +*user:* Czy są dostępne miejsca w tylnych rzędach? + +*system:* Tak, 3 miejsca w rzędzie K i 2 miejsca w rzędzie J. Czy mogę Ci jeszcze w czymś pomóc? + +*user:* Nie, dziękuję, to wszystko. + +*system:* Dziękuję za rozmowę i życzę miłego dnia. -*user:* ... -*system:* ... Zadanie 6: Sprawdzenie repertuaru kina --------------------------- +-------------------------------- -*system:* ... +*system:* Witam w systemie sprzedaży biletów kinowych. Jak mogę Ci pomóc? -*user:* ... +*user:* Dzień dobry, chciałbym dowiedzieć się jakie filmy są wyświetlane w tym tygodniu? -*system:* ... +*system:* W tym tygodniu gramy TYTUŁ1, TYTUŁ2, TYTUŁ3 … + +*user:* Czy TYTUŁ7 to komedia? + +*system:* Nie, TYTUŁ7 to horror. + +*user:* Czy któryś z tych filmów jest odpowiedni dla 8-letniego dziecka? + +*system:* Tak, TYTUŁ2 i TYTUŁ5 nie mają ograniczeń wiekowych, a TYTUŁ3 jest odpowiedni dla widzów powyżej 7 roku życia. + +*user:* To są filmy z lektorem czy z dubbingiem? + +*system:* Wszystkie trzy filmy są z dubbingiem. + +*user:* Kto gra w TYTUŁ4? / Kto jest reżyserem filmu TYTUŁ 8? / O czym jest TYTUŁ2? + +*system:* Imiona Nazwiska aktorów / Imie Nazwisko reżysera / Krótki opis filmu + +*user:* Czy TYTUŁ7 to komedia? + +*system:* Nie, TYTUŁ7 to horror. + +*user:* Jak długi jest TYTUŁ3? + +*system:* TYTUŁ3 trwa 107 minut. Czy chciałbyś sprawdzić dostępność miejsc bądź zarezerwować bilet? + +*user:* Nie, na razie dziękuję. Do usłyszenia. + +*system:* Dziękuję za rozmowę i życzę miłego dnia.