Chatbot oluşturur iken aldığım sorun

import nltk
import numpy as np
import random
import string
import bs4 as bs
import urllib.request
import re
from urllib.parse import quote
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity




q = "Mustafa_Kemal_Atatürk"
source = urllib.request.urlopen('https://en.wikipedia.org/wiki/'+ quote(q)).read()


soup = bs.BeautifulSoup(source,'lxml')

text = ""
for paragraph in soup.find_all('p'):
    text += paragraph.text
    
raw=text.lower()
nltk.download('punkt')
nltk.download('wordnet') 

sent_tokens = nltk.sent_tokenize(raw)
word_tokens = nltk.word_tokenize(raw)



lemmer = nltk.stem.WordNetLemmatizer()


def LemTokens(tokens):
    return [lemmer.lemmatize(token) for token in tokens]

remove_punct_dict = dict((ord(punct), None) for punct in string.punctuation)

def LemNormalize(text):
    return LemTokens(nltk.word_tokenize(text.lower().translate(remove_punct_dict)))

GREETING_INPUTS = ("hello", "hi", "greetings", "sup", "what's up","hey",)
GREETING_RESPONSES = ["hi", "hey", "*nods*", "hi there", "hello", "I am glad! You are talking to me"]
def greeting(sentence):
 
    for word in sentence.split():
        if word.lower() in GREETING_INPUTS:
            return random.choice(GREETING_RESPONSES)


def response(user_response):
    robo_response=''
    
    TfidfVec = TfidfVectorizer(tokenizer=LemNormalize,stop_words='english')
    tfidf = TfidfVec.fit_transform(sent_tokens)
    
   
    vals = cosine_similarity(tfidf[-1], tfidf)
    idx=vals.argsort()[0][-2]
    flat = vals.flatten()
    flat.sort()
    req_tfidf = flat[-2]
    if(req_tfidf==0):
        robo_response=robo_response+"I am sorry! I don't understand you"
    else:
        robo_response = robo_response+sent_tokens[idx]
    return robo_response



flag=True
print("ROBO: My name is Robo. I will answer your queries about Chatbots. If you want to exit, type Bye!")
while(flag==True):
    user_response = input()
    user_response=user_response.lower()
    if(user_response!='bye'):
        if(user_response=='thanks' or user_response=='thank you' ):
            flag=False
            print("ROBO: You are welcome..")
        else:
            if(greeting(user_response)!=None):
                print("ROBO: "+greeting(user_response))
            else:
                sent_tokens.append(user_response)
                word_tokens=word_tokens+nltk.word_tokenize(user_response)
                final_words=list(set(word_tokens))
                print("ROBO: ",end="")
                print(response(user_response))
                sent_tokens.remove(user_response)
    else:
        flag=False
        print("ROBO: Bye! take care..")

aldığım hata:C:\Users\Efe(Muhtar)\AppData\Local\Programs\Python\Python38\lib\site-packages\sklearn\feature_extraction\text.py:388: UserWarning: Your stop_words may be inconsistent with your preprocessing. Tokenizing the stop words generated tokens [‘ha’, ‘le’, ‘u’, ‘wa’] not in stop_words.

Bunu okuyarak metni düzenlemezseniz maalesef yardımcı olamayız.

Düzelttim. Bilgilendirdiğiniz için teşekkürler :smiley:

1 Beğeni

İyi de, bu hata çıktısının tamamı değil ki, buna bakarak hangi satırın hataya sebep olduğunu söylemek zor. Lütfen hata çıktısının tamamını paylaşın.

Bu hata çıktısının tamamı ? Soru sorduğum zaman programa bu hatayı alıyorum. response değişkenindeki

TfidfVec = TfidfVectorizer(tokenizer=LemNormalize,stop_words=‘english’)

satırında galiba hata alıyorum. “stop_words=“english”” kısımını silince hata almıyorum.

Şuradaki gibi yaptığınızda sorun çözülüyor mu?:

1 Beğeni

Şu anlık bir hata almıyorum. Yardımınız için çok teşekkür ederim.