chatterbot attributeError: у объекта 'str' нет атрибута 'text' - PullRequest
0 голосов
/ 14 марта 2019
 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 Ответ

0 голосов
/ 23 марта 2019

Вам необходимо преобразовать ваше сообщение в 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)
...