Вопрос: Ошибка UnicodeDecodeError: кодеку «utf-8» не удается декодировать байт 0xe3 в позиции 0: неожиданный конец данных

#python #unicode #encoding #utf-8 #fasttext

Вопрос:

Я использую FastText.load_fasttext_format() для загрузки быстрого текста обученную японскую модель(300 dim) в Google Colab. Вот мой код.

 model_path = "/content/drive/MyDrive/IDR/rakuten/wikipedia_fastText/cc.ja.300.bin"
model = FastText.load_fasttext_format(model_path)
 

И вот ошибка кодирования.

 ---------------------------------------------------------------------------

UnicodeDecodeError                        Traceback (most recent call last)

<ipython-input-7-61d7c85f09b2> in <module>()
      2 
      3 model_path = "/content/drive/MyDrive/IDR/rakuten/wikipedia_fastText/cc.ja.300.bin"
----> 4 model = FastText.load_fasttext_format(model_path)

2 frames

/usr/local/lib/python3.7/dist-packages/gensim/models/fasttext.py in _load_dict(self, file_handle, encoding)
    818                 word_bytes  = char_byte
    819                 char_byte = file_handle.read(1)
--> 820             word = word_bytes.decode(encoding)
    821             count, _ = self.struct_unpack(file_handle, '@qb')
    822 

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe3 in position 0: unexpected end of data
 

Ответ №1:

Специфическая ошибка, по-видимому, заключается unexpected end of data в следующем .

Вы уверены cc.ja.300.bin , что загруженный вами файл имеет полную неискаженную длину и исправленное содержимое, соответствующее любой объявленной контрольной сумме, из источника, из которого он был загружен?

Отдельно, метод load_fasttext_format() класса является устаревшим в текущих версиях Gensim, с load_facebook_model() теперь предпочтительной формой (хотя это не объясняет вашу ошибку).