如何训练一个词向量

如何训练一个词向量现在在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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 虚拟主机和云服务器有什么区别,我们应该如何选择?[通俗易懂]

    虚拟主机和云服务器有什么区别,我们应该如何选择?[通俗易懂]虚拟主机已经有了一段时间的历史,近几年随着其技术的不断成熟,以及其低廉的价格,成为众多站长的首选对象。但近两年云计算的出现,衍生出云服务器这个产物。这时,很多站长便对虚拟主机与云服务器应该如何选择感到困扰,不知是选择技术比较成熟的虚拟主机,还是选择最新的云服务器。虚拟主机与云服务器的区别:虚拟主机是利用虚拟技术将一台物理服务器划分成多个“虚拟”服务器,虚拟主机的出现大大节省了服务器硬件的成本,…

    2022年6月25日
    33
  • pytorch之nn.Conv1d详解

    pytorch之nn.Conv1d详解之前学习pytorch用于文本分类的时候,用到了一维卷积,花了点时间了解其中的原理,看网上也没有详细解释的博客,所以就记录一下。Conv1dclasstorch.nn.Conv1d(in_channels,out_channels,kernel_size,stride=1,padding=0,dilation=1,groups=1,bias=True)in_channe…

    2022年6月12日
    109
  • apache 负载均衡 超时设置_apache负载均衡配置

    apache 负载均衡 超时设置_apache负载均衡配置最近因为新疆移动项目的要求,必须要用负载均衡来实现HTTP请求,没办法,我这个人一般是有压力的环境下才会好好学习,所以只有老实的自己来边学边写了。   其实,我们在平时经常听说集群这个名词,但是真正知道的又有几个呢,恩,好了,不讲废话了,我就先给大家扫盲吧,当然,我讲的不一定是对的,我就把我自己知道的讲出来,集群目前分3类吧,科学集群、高可用性集群、负载均衡集群。    科学集群(ScientificClustering,简称SC):使用特殊的软硬件技术将大量的计算能力有限的机器连接成计算能力巨大

    2025年9月4日
    7
  • Lens Distortion Correction[通俗易懂]

    LensDistortionCorrectionbyShehrzadQureshiSeniorEngineer,BDTIMay14,2011AtypicalprocessingpipelineforcomputervisionisgiveninFigure1below:Thefocusofthisart

    2022年4月7日
    43
  • Plugin For KanColleViewer – Provissy Tools V1.0

    Plugin For KanColleViewer – Provissy Tools V1.0これはKanColleViewerためのプラグインです,KanColleViewerの機能を拡張する。#介绍/Introduction/紹介这是一个KanColleViewer(俗称”提督很忙

    2022年7月2日
    27
  • tcp的四次挥手(为什么三次握手和四次挥手)

    在开始之前可以先了解一下TCP三次握手TCP四次挥手过程和状态变迁在断开连接之前客户端和服务器都处于ESTABLISHED状态,双方都可以主动断开连接,以客户端主动断开连接为优。第一次挥手:客户端打算断开连接,向服务器发送FIN报文(FIN标记位被设置为1,1表示为FIN,0表示不是),FIN报文中会指定一个序列号,之后客户端进入FIN_WAIT_1状态。也就是客户端发出连接释放报文段(FIN报文),指定序列号seq=u,主动关闭TCP连接,等待服务器的确认。第二次挥…

    2022年4月13日
    62

发表回复

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

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