NLP生成word2vec预训练模型步骤及UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte xxxx in position x的bug解决

it2023-01-14  59

1.分词(网上说无需去停用词,直接分词就可以,我试了一下效果还行,就没有去停用词),将分词后的文本用utf-8编码存储到.txt文件中。 2.生成并保存模型,参考资料:https://blog.csdn.net/qq_35273499/article/details/79098689。但是这份资料里有一个问题,就是关于编码的问题。在加载分词后的文本时,对于中文,一定一定要用utf-8编码!即sentences = word2vec.Text8Corpus(u’mytrain_fenci_withsp.txt’),这里的u表示unicode编码,其包含三种编码,分别为utf-8,utf-16以及utf-32。若用原文中写的“r”进行编码,那么就会出现UnicodeDecodeError: ‘utf-8’ codec can’t decode byte xxxx in position x: invalid start byte的bug。 3.加载已保存的模型。保存模型参考资料:https://blog.csdn.net/HUSTHY/article/details/103164934#%E6%A8%A1%E5%9E%8B%E4%BF%9D%E5%AD%98%E5%92%8C%E5%8A%A0%E8%BD%BD,这里注意保存和加载.bin模型的时候binary参数都要选择True,原文没有加,需要加上。 4.简单使用模型,参考资料:https://blog.csdn.net/python3_i_know/article/details/86626696

保存模型 方式一 model.save(‘mylaw.model’) 方式二 model.wv.save_word2vec_format(‘文件名.vector’) model.wv.save_word2vec_format(‘文件名.bin’, binary=True)

加载模型 model = gensim.models.KeyedVectors.load_word2vec_format(‘文件名.bin’, binary=True)

最新回复(0)