如何训练一个词向量

现在在NLP领域,词向量是一切自然语言处理的基础,有了词向量我们就可以进行数据分析,文本聚类分类的一系列操作了。接下来我们就开始学习如何训练词向量,之前我们有介绍关于 word2vec 的博文 word2vec算法理解和数学推导,这篇博文我们就一起来学习如何实现词向量的训练。
首先我们运用的语料是我之前爬取的京东小米9的好评,训练一个关于手机类的词向量。数据如下所示:
数据
首先我们需要给数据进行分词操作,然后去掉停用词,让剩下的词都是有用的词。数据处理好了之后,结果如下所示:

数据
然后我们就可以开始训练词向量了,代码如下:

from gensim.models import word2vec
sentences = word2vec.Text8Corpus('dataset/seg.txt')
model = word2vec.Word2Vec(sentences=sentences, size=100)

或者

import gensim
word2vec = gensim.models.word2vec.Word2Vec(sentences, size=256, window=10, min_count=5, sg=1, hs=1, iter=10, workers=25)
word2vec.save('word2vec_wx')

这里的100表示词向量的维度,然后我们可以通过这个计算一个词最相似的几个词以及相似度,如下图所示:
相似度
最后我们可以将训练好的词向量储存起来:

model.wv.save_word2vec_format('word2vec.txt', binary=False)
model.save('word2vecxiaomi.model')

最后,训练好的词向量如图所示:
词向量
这个860表示词的数量,256表示词向量的维度。然后我们就可以把这些词向量进行可视化操作,我用的是这个向量可视化界面。最后把词向量投影到空间中就如图所示:
词向量
我们可以看到用欧式距离计算,和“手机”这个词最相近的词分别是“感觉”、“手感”、“性能”和“续航”。我们通过这个图就可以看出词和词之间的相似关系,这就是训练整个词向量的流程,一般来说,训练数据越多,那么我们训练出的词向量的质量就越高,所以现在优质的开源词向量都是通过巨量的语料进行训练的。这篇博文希望能够帮助大家理解并动手训练词向量,谢谢。

  • 12
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值