1. 程式人生 > >用gensim匯入word2vec詞向量bin檔案,出現字元編碼

用gensim匯入word2vec詞向量bin檔案,出現字元編碼

首先丟擲我遇到的問題。

我訓練了一個詞向量檔案,得到了一個二進位制檔案,model.bin,然後準備呼叫gensim來測試bin檔案裡面的詞向量效果怎麼樣,於是就匯入這個模型。

import gensim

# 匯入模型
model = gensim.models.KeyedVectors.load_word2vec_format('t8model.bin',binary=True)

print (model['word'])

然後出現以下編碼問題

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte

查了一下,這是Stack Overflow上的答案

The strings (words) stored in your model are not valid utf8. By default, gensim decodes the words using the strict encoding settings, which results in the above exception whenever an invalid utf8 sequence is encountered.

然後知道我測試的詞在模型中不是utf-8形式的,於是我找了一個以前測試正確的模型,來重新測試,然後就沒有出現編碼問題。

這就確定了我的問題的原因是由於模型中的詞不是utf-8形式的。

現在就去找導致這種結果的原因......