我正在尝试在一个单独的程序上运行聊天机器人的 TwitterTrainer,如下所示:
from chatterbot import ChatBot
from chatterbot.trainers import TwitterTrainer
from settings import TWITTER
import logging
# Comment out the following line to disable verbose logging
logging.basicConfig(level=logging.INFO)
chatbot = ChatBot("TwitterBot",
logic_adapters=[
"chatterbot.logic.BestMatch"
],
input_adapter="chatterbot.input.TerminalAdapter",
output_adapter="chatterbot.output.TerminalAdapter",
database="./twitter-database.db",
twitter_consumer_key=TWITTER["CONSUMER_KEY"],
twitter_consumer_secret=TWITTER["CONSUMER_SECRET"],
twitter_access_token_key=TWITTER["ACCESS_TOKEN"],
twitter_access_token_secret=TWITTER["ACCESS_TOKEN_SECRET"],
trainer="chatterbot.trainers.TwitterTrainer",
random_seed_word="random"
)
chatbot.train()
chatbot.logger.info('Trained database generated successfully!')
我得到看起来像这样的错误:
文件“C:\Python27\lib\json\decoder.py”,第 364 行,在解码 obj 中,end = self.raw_decode(s, idx=_w(s, 0).end()) 文件“C:\Python27 \lib\json\decoder.py",第 380 行,在 raw_decode obj 中,end = self.scan_once(s, idx) UnicodeDecodeError: 'utf8' codec can't decode byte 0x85 in position 94: invalid start byte
该程序连续运行不超过 3 秒,但一些推文被写入 twitter-database.db,直到发生异常。
在查看 trainer.py 时,我也看到了这个:
# TODO: Handle non-ascii characters properly
关于为什么会发生这种情况以及我该如何解决这个问题的任何想法?