训练模型

  • 利用gensim.models.Word2Vec(sentences)建立词向量模型

    • 该构造函数执行了三个步骤:建立一个空的模型对象,遍历一次语料库建立词典,第二次遍历语料库建立神经网络模型可以通过分别执行model=gensim.models.Word2Vec()model.build_vocab(sentences)model.train(sentences)来实现
  • 训练时可以指定以下参数
    • min_count指定了需要训练词语的最小出现次数,默认为5
    • size指定了训练时词向量维度,默认为100
    • worker指定了完成训练过程的线程数,默认为1不使用多线程。只有注意安装Cython的前提下该参数设置才有意义
  • 训练结果保存可以通过model.save('fname')model.save_word2vec_format(fname)来保存为文件,再使用model.load(fname)model.load_word2vec_format(fname,encoding='utf-8')读取查询结果

例如:

from gensim.models.word2vec import Word2Vec sentences = [['A1','A2'],[],[],....]
model= Word2Vec()
model.build_vocab(sentences)
model.train(sentences,total_examples = model.corpus_count,epochs = model.iter)
保存:
model.save('/tmp/MyModel')
#model.save_word2vec_format('/tmp/mymodel.txt',binary = False)
#model.save_word2vec_format('/tmp/mymodel.bin.gz',binary = True)
  • 前一组方法保存的文件不能利用文本编辑器查看但是保存了训练的全部信息,可以在读取后追加训练
  • 后一组方法保存为word2vec文本格式但是保存时丢失了词汇树等部分信息,不能追加训练

追加加训练:

model = gensim.models.Word2Vec.load('/tmp/mymodel')
model.train(more_sentences)

加载:

model = gensim.models.Word2Vec.load('/tmp/mymodel')#model = gensim.models.KeyedVectors.load_word2vec_format('/tmp/vectors.txt',binary = False)
#model = gensim.models.KeyedVectors。load_word2vec_format('/tmp/vectors.bin',binary = True)
##使用gzipped / bz2输入也可以,不需要解压:
#model = gensim.models.KeyedVectors.load_word2vec_format('/tmp/vectors.bin.gz',binary=True)

模型使用:

获取词向量

print(model ['man'])
print(type(model ['man']))

输出:

[0.14116223 0.05663395 0.01500377 -0.03592452 ...]
numpy.ndarray

计算一个词的最近似的词,倒排序

model.most_similar(['男人'])

输出:

[('女',0.7664012908935547),( '男孩',0.6824870109558105),( '青少年',0.6586930155754089),( '女孩',0.5921714305877686),( '强盗',0.5585119128227234),( '男',0.5489763021469116),('人',0.5420035719871521),( '人',0.5342026352882385),( '绅士',0.5337990522384644),( '摩托车手',0.5336882472038269)]

计算两词之间的余弦相似度

word2vec一个很大的亮点:支持词语的加减运算(实际中可能只有少数例子比较符合)

model.most_similar(positive = ['woman','king'],negative = ['man'],topn = 2)
输出:
[('王后',0.7118192911148071),('君主',0.6189675331115723)]
---
model.similarity('女人', '男人')
输出:
0.7664012234410319

计算两个集合之间的余弦似度

当出现某个词语不在这个训练集合中的时候,会报错!

list1 = ['我','走','我','学校']
list2 = ['我','去','家']
list_sim1 = model.n_similarity(list1,list2)
print(list_sim1)
输出:
0.772446878519

选出集合中不同类的词语

model.doesnt_match('breakfast cereal dinner lunch'.split())

输出:

'谷类'


 

gensim Word2Vec 训练和使用相关推荐

  1. 自然语言处理之使用gensim.Word2Vec训练词向量进行词义消歧

    自然语言处理之使用gensim.Word2Vec训练词向量进行词义消歧 NLP中进行词义消歧的一个非常方便且简单的方法就是训练词向量,通过词向量计算余弦值,来推断某个词在句子中的含义.python中的 ...

  2. 使用word2vec训练中文词向量

    https://www.jianshu.com/p/87798bccee48 一.文本处理流程 通常我们文本处理流程如下: 1 对文本数据进行预处理:数据预处理,包括简繁体转换,去除xml符号,将单词 ...

  3. word2vec训练中文词向量

    词向量作为文本的基本结构--词的模型.良好的词向量可以达到语义相近的词在词向量空间里聚集在一起,这对后续的文本分类,文本聚类等等操作提供了便利,这里简单介绍词向量的训练,主要是记录学习模型和词向量的保 ...

  4. python实现glove,gensim.word2vec模型训练实例

    20210331 https://blog.csdn.net/sinat_26917383/article/details/83029140 glove实例 https://dumps.wikimed ...

  5. NLP 利器 Gensim 来训练 word2vec 词向量模型的参数设置

    使用 Gensim 来训练 word2vec 词向量模型的参数设置 文章目录 一.最小频次 min_count 二.词向量维度 size 三.并行处理核心数 workers 我们可以使用一些参数设置来 ...

  6. Tensorflow和Gensim里word2vec训练

    Tensorflow里word2vec训练 # -*- coding:utf-8 -*- import tensorflow as tf import numpy as np import math ...

  7. Python Gensim Word2Vec

    Gensim is an open-source vector space and topic modelling toolkit. It is implemented in Python and u ...

  8. 利用word2vec训练词向量

    利用word2vec训练词向量 这里的代码是在pycharm上运行的,文件列表如下: 一.数据预处理 我选用的数据集是新闻数据集一共有五千条新闻数据,一共有四个维度 数据集:https://pan.b ...

  9. 深度学习 - 38.Gensim Word2Vec 实践

    目录 一.引言 二.Word2vec 简介 1.模型参数 2.Word2vec 网络 3.Skip-gram 与 CBOW 4.优化方法 4.1 负采样 4.2 层次 softmax 三.Word2v ...

最新文章

  1. MySQL 解压版创建用户密码
  2. 一份来自上海院校的考研预调剂系统已开放名单!
  3. 都在说微服务,那么微服务的反模式和陷阱是什么(二)
  4. Jquery高亮显示文本中重要的关键字
  5. 1215.2——单链表
  6. Netty 系列三(ByteBuf).
  7. SAP ABAP Netweaver系统的传输请求类型和原始系统的含义
  8. Jenkins自定义主题教程
  9. Git操作,有时候会遇到“git did not exit cleanly (exit code 128)”错误
  10. java移动接口发短信_天天都会写接口,但它的用途和好处有多少人能说得清楚?...
  11. 编写批处理文件编译.Net工程
  12. 830. 较大分组的位置
  13. android开发那些事儿(五)-通用流行框架大全
  14. mt65xx android phone win10驱动,mt65xx android phone驱动
  15. redis视频教程 java_Redis高级运用视频教程
  16. 编写程序:实现输出100以内质数的功能
  17. 解决Cannot find module ‘./index.module.scss‘ or its corresponding type declarations.ts(2307)
  18. 科技论文写作常用句式结构
  19. 问题解决:下载的网页打开后自动跳转到首页
  20. java encapsulation_Java Encapsulation vs Abstraction

热门文章

  1. 计算机组成原理笔记[哈工大]
  2. JVisualVM、Visual GC
  3. 如何用Github API操作github和gist(v3)
  4. java(基础)_输入
  5. 一维、二维正态分布概率密度曲线的绘制
  6. 5G商用元年车联网鏖战升级 谁能掌握最后的话语权?
  7. 圣人与凡人 结束与解脱
  8. 从循环神经网络到卷积神经网络
  9. 场效应管和三极管对比
  10. 企业工商四要素核验是对哪些信息进行验证?