Spaces:
Sleeping
Sleeping
Last commit not found
import nltk | |
import streamlit as st | |
from nltk.chat.util import Chat, reflections | |
from nltk.metrics import jaccard_distance | |
import numpy as np | |
# 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) | |
# Jaccard benzerliği hesapla | |
def jaccard_similarity(s1, s2): | |
s1 = set(s1.split()) | |
s2 = set(s2.split()) | |
return 1 - jaccard_distance(s1, s2) | |
# 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: | |
max_sim = -np.inf | |
response = "" | |
for pattern, responses in chatbot._pairs: | |
sim = jaccard_similarity(user_input.lower(), pattern.lower()) | |
if sim > max_sim: | |
max_sim = sim | |
response = chatbot.respond(pattern) | |
st.write("ChatBot: " + response) | |
# Sohbet botunu başlat | |
run_chatbot() |