#chatterbot
#chatterbot
Вопрос:
from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
from chatterbot.trainers import ListTrainer
from chatterbot.comparisons import LevenshteinDistance
from chatterbot import utils
from chatterbot.preprocessors import clean_whitespace
bot2 = ChatBot('Eagle',
logic_adapters=['chatterbot.logic.BestMatch'
],
preprocessors=[
'chatterbot.preprocessors.clean_whitespace'
],
read_only=True
)
while True:
message = input ('You: ')
val = utils.get_response_time(bot2,message)
print('Response time is ',val) # message response time
reply = bot2.get_response(message)
dist = LevenshteinDistance().compare(message,reply)
print (dist,' sdd')
print('Eagle: ',reply)
if message.strip()=='bye':
print('Eagle: bye')
break;
Когда я запускаю этот код, я получаю эту ошибку. Я пытался, но теперь мне нужна некоторая помощь..
[Traceback (most recent call last):
File "two.py", line 51, in <module>
dist = LevenshteinDistance().compare(message,reply)
File "/home/anjarul/anaconda3/lib/python3.6/site-packages/chatterbot/comparisons.py", line 44, in compare
if not statement.text or not other_statement.text:
AttributeError: 'str' object has no attribute 'text'][1]
Ответ №1:
Перед вызовом вам необходимо преобразовать ваше сообщение в Statement
LevenshteinDistance.compare
Инструкции — это объекты из пакета chatterbot, которые представляют элемент диалога. И у них есть этот атрибут ‘text’ !
у меня это работает :
from chatterbot import ChatBot
from chatterbot.conversation import Statement
from chatterbot.comparisons import LevenshteinDistance
bot2 = ChatBot('Eagle')
message = Statement(input ('You: '))
reply = bot2.get_response(message)
dist = LevenshteinDistance().compare(message,reply)
print (dist, ' sdd')
print('Eagle: ', reply)