前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何训练一个词向量

如何训练一个词向量

作者头像
全栈程序员站长
发布2022-09-05 14:38:57
2810
发布2022-09-05 14:38:57
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

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

数据
数据

首先我们需要给数据进行分词操作,然后去掉停用词,让剩下的词都是有用的词。数据处理好了之后,结果如下所示:

数据
数据

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

代码语言:javascript
复制
from gensim.models import word2vec
sentences = word2vec.Text8Corpus('dataset/seg.txt')
model = word2vec.Word2Vec(sentences=sentences, size=100)

或者

代码语言:javascript
复制
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表示词向量的维度,然后我们可以通过这个计算一个词最相似的几个词以及相似度,如下图所示:

相似度
相似度

最后我们可以将训练好的词向量储存起来:

代码语言:javascript
复制
model.wv.save_word2vec_format('word2vec.txt', binary=False)
model.save('word2vecxiaomi.model')

最后,训练好的词向量如图所示:

词向量
词向量

这个860表示词的数量,256表示词向量的维度。然后我们就可以把这些词向量进行可视化操作,我用的是这个向量可视化界面。最后把词向量投影到空间中就如图所示:

词向量
词向量

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136839.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档