Gensim:问题汇总

持续补充

1. word2vec.LineSentence()读出数据遇UnicodeDecodeError错误

问题描述:
使用LineSentence()方法读取分词后的的文件时,由于文件保存时用的是"ANSI"编码,导致在读文件并训练word2vec时报UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xc4 in position 0: invalid continuation byte.具体如下:

from gensim.models import Word2Vec,word2vec
import multiprocessing
sentences=list(word2vec.LineSentence('sohu_data_segment.txt'))

报错信息如下:
在这里插入图片描述
需要将代码改为如下:

from gensim.models import Word2Vec,word2vec
import multiprocessing
sentences=word2vec.LineSentence(open('sohu_data_segment.txt',encoding='ANSI'))
model=Word2Vec(sentences,size=100,window=5,sg=0, workers=multiprocessing.cpu_count())
2. gensim.models.Word2Vec.load()加载模型报错

问题描述:
使用gensim中的word2vec进行训练,并保存了模型文件。但使用load()加载模型文件的时候一直报错UnpicklingError:。具体如下:

from gensim.models import Word2Vec,word2vec
import multiprocessing
#为了加速训练,这里只取100条数据
sentences=list(word2vec.LineSentence(open('sohu_data_segment.txt',encoding='ANSI')))[:100]
model=Word2Vec(sentences,size=100,window=5,sg=0, workers=multiprocessing.cpu_count())
#模型保存
model.wv.save_word2vec_format('sohu_model.bin',binary=True)
#模型加载
model_copy=Word2Vec.load('sohu_model.bin')

在这里插入图片描述因为版本更新的缘故,gensim中加载模型不再使用Word2Vec,而是使用KeyedVectors。另外使用save_word2vec_format()保存的模型,要使用load_word2vec_format()方法加载;使用save()保存的模型,要使用load()方法加载。具体如下:

from gensim.models import Word2Vec,word2vec,KeyedVectors
import multiprocessing

#为了加速训练,这里只取100条数据
sentences=list(word2vec.LineSentence(open('sohu_data_segment.txt',encoding='ANSI')))[:100]
model=Word2Vec(sentences,size=100,window=5,sg=0, workers=multiprocessing.cpu_count())

#模型保存-加载方法1
model.wv.save_word2vec_format('sohu_model.bin',binary=True)
model_copy=KeyedVectors.load_word2vec_format('sohu_model.bin',binary=True)

#模型保存-加载方法2
model.wv.save("sohu_model_1.model")
model_copy1=KeyedVectors.load('sohu_model_1.model')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值