1

我正在尝试在一个单独的程序上运行聊天机器人的 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

关于为什么会发生这种情况以及我该如何解决这个问题的任何想法?

4

1 回答 1

1

您能否尝试在文件顶部添加 Python 源代码编码# -*- coding: utf-8 -*-。这些类型错误将因此而发生。此处提供更多信息http://chatterbot.readthedocs.io/en/stable/encoding.html#fixing-encoding-errors

于 2017-06-23T13:25:31.710 回答