import nltk import streamlit as st from nltk.chat.util import Chat, reflections from difflib import get_close_matches # Eğitim veri seti training_data = [ ("Benim adım (.*)", ["Merhaba %1, nasıl yardımcı olabilirim?"]), ("merhaba|selam|hey", ["Merhaba, size nasıl yardımcı olabilirim?"]), ("nasılsın|naber", ["İyi, teşekkür ederim. Siz nasılsınız?"]), ("(iyiyim|teşekkürler), seninle konuşmaktan keyif alıyorum", ["Ben de sizinle konuşmaktan keyif alıyorum. Size nasıl yardımcı olabilirim?"]), ("çıkış|kapat|sonlandır", ["Görüşürüz, umarım tekrar görüşürüz!"]), ] # NLTK chat için eğitim def train_bot(training_data): chatbot = Chat(training_data, reflections) return chatbot # Sohbet botunu eğitme chatbot = train_bot(training_data) # Sohbet botunu çalıştırma def run_chatbot(): print("Merhaba! Benim adım ChatBot. Size nasıl yardımcı olabilirim? (Çıkış için 'çıkış' yazabilirsiniz)") user_input = st.text_area("Siz: ") if user_input: # En yakın eşleşmeyi bul closest_match = get_close_matches(user_input.lower(), [pattern for pattern, _ in chatbot._pairs], n=1, cutoff=0.6) if closest_match: response = chatbot.respond(closest_match[0]) st.write("ChatBot: " + response) else: st.write("ChatBot: Üzgünüm, anlayamadım. Lütfen tekrar deneyin.") # Sohbet botunu başlat run_chatbot()