Python中gensim库word2vec的使用

14 篇文章 0 订阅
12 篇文章 0 订阅

Python中gensim库word2vec的使用:

pip install gensim安装好库后,即可导入使用:

1、训练模型定义

from gensim.models import Word2Vec  
model = Word2Vec(sentences, sg=1, size=100,  window=5,  min_count=5,  negative=3, sample=0.001, hs=1, workers=4)  

 

参数解释:

0.sentences是训练所需预料,可通过以下方式进行加载

sentences=word2vec.Text8Corpus(file)

此处训练集的格式为英文文本或分好词的中文文本

1.sg=1是skip-gram算法,对低频词敏感;默认sg=0为CBOW算法。

2.size是输出词向量的维数,值太小会导致词映射因为冲突而影响结果,值太大则会耗内存并使算法计算变慢,一般值取为100到200之间。

3.window是句子中当前词与目标词之间的最大距离,3表示在目标词前看3-b个词,后面看b个词(b在0-3之间随机)。

4.min_count是对词进行过滤,频率小于min-count的单词则会被忽视,默认值为5。

5.negative和sample可根据训练结果进行微调,sample表示更高频率的词被随机下采样到所设置的阈值,默认值为1e-3。

6.hs=1表示层级softmax将会被使用,默认hs=0且negative不为0,则负采样将会被选择使用。

7.workers控制训练的并行,此参数只有在安装了Cpython后才有效,否则只能使用单核。

详细参数说明可查看word2vec源代码。

2、训练后的模型保存与加载

model.save(fname)  
model = Word2Vec.load(fname)  

 

3、模型使用(词语相似度计算等)

model.most_similar(positive=['woman', 'king'], negative=['man'])  
#输出[('queen', 0.50882536), ...]  
  
model.doesnt_match("breakfast cereal dinner lunch".split())  
#输出'cereal'  
  
model.similarity('woman', 'man')  
#输出0.73723527  
  
model['computer']  # raw numpy vector of a word  
#输出array([-0.00449447, -0.00310097,  0.02421786, ...], dtype=float32)  

其它内容不再赘述,详细请参考gensim的word2vec的官方说明,里面讲的很详细。

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值