File size: 1,811 Bytes
9f712c4
842d7ef
9f712c4
c603eb7
03db324
9f712c4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c603eb7
 
 
 
03db324
 
 
c603eb7
9f712c4
 
 
 
b893cd4
 
03db324
c603eb7
 
03db324
 
 
 
 
c603eb7
 
6dacbe5
c603eb7
9f712c4
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import nltk
import streamlit as st
from nltk.chat.util import Chat, reflections
from nltk.metrics import jaccard_distance
import re

# 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())
    common_tokens = s1.intersection(s2)
    all_tokens = s1.union(s2)
    return 1 - len(common_tokens) / len(all_tokens)

# 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 = -float('inf')
        response = ""
        for pattern, responses in chatbot._pairs:
            if isinstance(pattern, str):
                pattern_str = pattern
            else:
                pattern_str = pattern.pattern
            sim = jaccard_similarity(user_input.lower(), pattern_str.lower())
            if sim > max_sim:
                max_sim = sim
                response = chatbot.respond(pattern_str)
        st.write("ChatBot: " + response)

# Sohbet botunu başlat
run_chatbot()