from nltk.tokenize import word_tokenize
from nltk.stem import WordNetLemmatizer

def preprocess(sentence):
    lemmatizer = WordNetLemmatizer()
    sentence = sentence.lower()
    tokens = word_tokenize(sentence)
    tokens = [lemmatizer.lemmatize(token) for token in tokens if token.isalnum()]
    return tokens

import random

class Chatbot:
    def __init__(self, pairs):
        self.pairs = pairs
    
    def respond(self, sentence):
        for pair in self.pairs:
            if sentence in pair[0]:
                return random.choice(pair[1])
        return "متاسفم، متوجه نشدم."

pairs = [
    (["سلام", "درود"], ["سلام! چطور می‌توانم کمکتان کنم؟", "سلام!"]),
    (["خداحافظ", "بای"], ["خدانگهدار!", "موفق باشید!"])
]

chatbot = Chatbot(pairs)

def chat():
    print("چت‌بات: سلام! من اینجا هستم تا کمکتان کنم. برای خروج 'بای' را تایپ کنید.")
    while True:
        user_input = input("شما: ")
        if user_input.lower() in ["بای", "خداحافظ"]:
            print("چت‌بات: خداحافظ!")
            break
        response = chatbot.respond(user_input.lower())
        print(f"چت‌بات: {response}")

chat()