如何训练一个词向量

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • “ASP.default_aspx”并不包含“DropDownList1_SelectedIndexChanged”的定义,其解决方法。[通俗易懂]

    “ASP.default_aspx”并不包含“DropDownList1_SelectedIndexChanged”的定义,其解决方法。[通俗易懂]“ASP.default_aspx”并不包含“DropDownList1_SelectedIndexChanged”的定义,其解决方法。在使用DropDownList控件的DataBind方法,将ArrayList数组绑定在DropDownList空间中,执行程序,出现错误:…出现错误的原因:…解决方法:…

    2022年7月18日
    19
  • IdentityServer4总结[通俗易懂]

    IdentityServer4总结[通俗易懂]一.客户端模式客户端模式只对客户端进行授权,不涉及到用户信息。如果API需要提供到第三方应用,第三方应用自己做用户授权,不需要用到用户资源,就可以用客户端模式,只对客户端进行授权访问api资源。1.添加客户端newClient(){ClientId=”apiClientCd”,//客户端IdClientSecrets={newSecret(“apiSecret”.Sha256())},//客户端密码AllowedGrantTypes=GrantTypes.

    2025年6月29日
    0
  • 运维面试题(面前准备)

    运维面试题(面前准备)前段时间一直在面试,也没怎么写博客,现在找到实习工作了,也有时间去写了。在这里分享一下我面试之前做的一些准备。(以下内容是我从网上查找整理得到的…红色标注为面试提及的,但不一定是我整理的内容)TCP/IP简述TCP三次握手的过程?答:在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器…

    2022年6月14日
    39
  • AssetBundle 详解

    AssetBundle 详解文章目录AssetBundle的定义和作用什么是AssetBundle用处AssetBundle使用流程图指定资源的AssetBundle属性构建AssetBundle包核心代码详解上传AB包加载AB包和包里面的资源加载本地的AB包加载服务器上的AB包AssetBundle分组策略按照逻辑实体分组按照资源类型分组按照使用分组构建AB后产生的文件AssetBund…

    2022年6月29日
    28
  • 点击导航栏,切换div内容(js+css+html)[通俗易懂]

    点击导航栏,切换div内容(js+css+html)[通俗易懂]**成果展示**代码展示:* <html> <head> <metacharset="utf-8"> <metahttp-equiv="X-UA-Compatible"content="IE=edge"> <title></tit

    2022年5月8日
    407
  • Java视屏教程下载地址——孙鑫讲解

    Java视屏教程下载地址——孙鑫讲解CD1-2        CD3-4CD5-6CD7-8CD9-10JLesson7CD11-12光盘讲解:CD1:Java的一些基本概念,Java的起源、为什么我们要学习Java语言,Java跨平台原理剖析;Java环境变量的配置,初学者常犯的问题,Java语言的基本数据类型和Java的语句。CD2:Java面向对象编程,面向对象编程和面向过程

    2022年5月16日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号