如何训练一个词向量

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


相关推荐

  • MongoDB配置文件mongod.conf

    MongoDB配置文件mongod.conf

    2021年11月22日
  • 3D游戏建模的入门学习方法及技巧

    3D游戏建模的入门学习方法及技巧选一个你感兴趣的模型利用你感兴趣的任何物品或形象的预制模型。选一个可以激发你想象,让你知道清楚知道自己的模型该是什么样子,该怎么动的模型。你可以根据自己的喜好和需要加强现有模型。预制模型可以让你在开始建模之前,体验模型的检查和操作。从简单模型入手从复杂3D模型入手,你可能会备受打击。选一个简单的结构,然后开始学习。你不仅想要学会3D建模的基本知识,还需要慢慢学习掌握不同的工具、技巧。瓶子一样的圆柱体是一个很好的入门模型。或者你可以用更简单的立方体来熟悉所有工具技巧的用法。复杂模型可能会.

    2022年5月20日
  • Linux安装RabbitMQ[通俗易懂]

    CentOSrelease6.6,python,erlang,rabbitmq

    2022年4月9日
  • 音频PCM编码「建议收藏」

    音频PCM编码「建议收藏」PCM编码PCM就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输。简而言之PCM就是对模拟信号先抽样,再对样值幅度量化,编码的过程。例如听到的声音就是模拟信号,

    2022年8月2日
  • join方法的使用

    join方法的使用一、join方法1.1jon方法的作用使所属的线程对象x正常执行run()方法中的任务,而使当前线程y无限期的阻塞,直到x线程销毁后再继续执行线程y后面的代码。join方法具有使线程排队运行的作用,有些类似同步的运行的效果。1.2join与synchronized的区别join在内部使用wait()方法进行等待,而synchronized关键字使用的是”对象监视器”原理作为同步。…

    2022年6月11日
  • 大数据分析与应用技术创新平台「建议收藏」

    大数据分析与应用技术创新平台「建议收藏」原文链接:https://mp.weixin.qq.com/s/kCDYOInF8KjHstIMAWSljA 大数据分析与应用技术创新平台 张平文,鄂维南,袁晓如,傅毅明北京大学数学科学学院,北京 100871 北京大学大数据科学研究中心,北京 100871  北京大学信息科学技术学院,北京 100871  北京大数据研究院,北京 100871 摘…

    2022年6月6日

发表回复

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

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