1

次のように、chatterbot の 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!')

そして、次のようなエラーが発生します。

File "C:\Python27\lib\json\decoder.py", line 364, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Python27 \lib\json\decoder.py", line 380, in raw_decode obj, end = self.scan_once(s, idx) UnicodeDecodeError: 'utf8' コーデックは位置 94 のバイト 0x85 をデコードできません: 無効な開始バイト

このプログラムは 3 秒以上連続して実行されることはありませんが、いくつかのツイートは例外が発生するまで twitter-database.db に書き込まれます。

また、trainer.py を見ると、次のようになりました。

# TODO: Handle non-ascii characters properly

なぜこれが起こるのか、どうすれば修正できるのかについてのアイデアはありますか?

4

1 に答える 1