chatterbot twitter_trainer ошибка кодирования ASCII

Я пытаюсь запустить 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, в decode 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' не может декодировать байт 0x85 в позиции 94: недопустимый начальный байт

Эта программа работает не более 3 секунд подряд, но некоторые твиты записываются в twitter-database.db до тех пор, пока не произойдет исключение.

Также, глядя на train.py, я увидел это:

# TODO: Handle non-ascii characters properly

Любые идеи о том, почему это происходит и как я могу это исправить?


person Idan BM    schedule 22.06.2017    source источник


Ответы (1)


Не могли бы вы попробовать добавить кодировку исходного кода Python вверху вашего файла # -*- coding: utf-8 -*-. Из-за этого возникает ошибка этого типа. Более подробная информация доступна здесь http://chatterbot.readthedocs.io/en/stable/encoding.html#fixing-encoding-errors

person Mallikarjunarao Kosuri    schedule 23.06.2017