python编码解码单词_在使用w2v时python中的编码问题
我正在使用word2vec模型在python中編寫我的第一個應用程序。 這里是我的簡單的代碼在使用w2v時python中的編碼問題
import gensim, logging
import sys
import warnings
from gensim.models import Word2Vec
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
def main():
####LOAD MODEL
model = Word2Vec.load_word2vec_format('models/vec-cbow.txt', binary=False)
model.similarity('man', 'women')
if __name__ == '__main__':
with warnings.catch_warnings():
warnings.simplefilter("error")
#warnings.simplefilter("ignore")
main()
我得到這個以下錯誤:
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 96-97: invalid continuation byte
我試圖通過增加這兩條線解決它,但我仍然得到錯誤。
reload(sys) # Reload does the trick!
sys.setdefaultencoding('UTF8') #UTF8 #latin-1
該w2v模型是在英語句子訓練。
編輯:以下是完整的堆棧:
**%run "...\getSimilarity.py"**
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
**...\getSimilarity.py in ()**
64 warnings.simplefilter("error")
65 #warnings.simplefilter("ignore")
---> 66 main()
**...\getSimilarity.py in main()**
30 ####LOAD MODEL
---> 31 model = Word2Vec.load_word2vec_format('models/vec-cbow.txt', binary=False) # C binary format
32 model.similarity('man', 'women')
**...\AppData\Local\Enthought\Canopy\User\lib\site-packages\gensim-0.12.4-py2.7-win-amd64.egg\gensim\models\word2vec.pyc in load_word2vec_format(cls, fname, fvocab, binary, encoding, unicode_errors)**
1090 else:
1091 for line_no, line in enumerate(fin):
-> 1092 parts = utils.to_unicode(line.rstrip(), encoding=encoding, errors=unicode_errors).split(" ")
1093 if len(parts) != vector_size + 1:
1094 raise ValueError("invalid vector on line %s (is this really the text format?)" % (line_no))
**...\AppData\Local\Enthought\Canopy\User\lib\site-packages\gensim-0.12.4-py2.7-win-amd64.egg\gensim\utils.pyc in any2unicode(text, encoding, errors)**
215 if isinstance(text, unicode):
216 return text
--> 217 return unicode(text, encoding, errors=errors)
218 to_unicode = any2unicode
219
**...\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.6.2.3262.win-x86_64\lib\encodings\utf_8.pyc in decode(input, errors)**
14
15 def decode(input, errors='strict'):
---> 16 return codecs.utf_8_decode(input, errors, True)
17
18 class IncrementalEncoder(codecs.IncrementalEncoder):
**UnicodeDecodeError: 'utf8' codec can't decode bytes in position 96-97: invalid continuation byte**
任何提示如何解決這個問題呢? 在此先感謝。
2017-01-02
sareem
+0
'models/vec-cbow.txt'有多大?可以通過文件共享網站將其包含在問題中?它似乎不是'utf-8'編碼的。 –
+0
它是2.25 GB。我沒有得到你的意思“可以通過文件共享網站將它包含在問題中?”? –
+0
不是太大了。沒有意義。 –
總結
以上是生活随笔為你收集整理的python编码解码单词_在使用w2v时python中的编码问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web前后端 http转https
- 下一篇: 网上办信用卡收费的可靠吗