import logging
from gensim.models import word2vec
import multiprocessing # 配置日志
logging.basicConfig(format='%(asctime)s - %(levelname)s - %(message)s', level=logging.INFO) # 评论的二维数组,其中的一维数组是每条评论分词之后的list
sentences = [['电池', '续航', '不错'], ['手机', '电池', '容量', '大']] # 模型路径
model_path = '../model/study_w2v' # 词向量训练, 并保存模型
model = word2vec.Word2Vec(size=128, min_count=3, window=5, workers=multiprocessing.cpu_count(), sg=1)
model.build_vocab(sentences)
model.train(sentences, total_examples=model.corpus_count, epochs=model.epochs)
model.save(model_path) # 加载模型
model = word2vec.Word2Vec.load(model_path) # 查看模型的词表中词 频度和索引
for key, value in model.wv.vocab.items(): # model.wv.vocab是一个dict
print(key, value) # 判断模型词表中是否存在某个词
print('手机' in model.wv.vocab) # 获得模型中词表的词数
print(len(model.wv.vocab)) # 获取模型中的语料数
print(model.corpus_count) # 获取词向量的维度
print(model.wv.vector_size) # # 获取某个词的词向量, 先判断再获取
noun1 = '手机'
if noun1 in model.wv.vocab:
print(model.wv[noun1]) # 计算两个词的相似度(余弦距离),结果越大越相似
noun2 = '电池'
noun3 = '电量'
noun4 = '续航' print(model.wv.similarity(noun1, noun2))
print(model.wv.similarity(noun3, noun2))
print(model.wv.similarity(noun4, noun2)) # 计算两个词的距离, 结果越大越不相似, 1-similarity
print(model.wv.distance(noun1, noun2))
print(model.wv.distance(noun3, noun2))
print(model.wv.distance(noun4, noun2)) # 取给定词最相近的topn个词
print(model.wv.most_similar(noun1)) # 找出与其他词差异最大的词
print(model.wv.doesnt_match([noun1, noun2, noun3, noun4])) # 增量训练, 增加预料在原来模型的基础上训练
new_sentences = [['手机', '拍照', '效果', '不错'], ['相机', '美颜', '效果', '好']]
model.build_vocab(sentences=new_sentences, update=True)
model.train(sentences=new_sentences, total_examples=model.corpus_count, epochs=model.iter)
model.save(model_path)

NLP---word2vec的python实现的更多相关文章

  1. 学习NLP:《精通Python自然语言处理》中文PDF+英文PDF+代码

    自然语言处理是计算语言学和人工智能之中与人机交互相关的领域之一. 推荐学习自然语言处理的一本综合学习指南<精通Python自然语言处理>,介绍了如何用Python实现各种NLP任务,以帮助 ...

  2. 利用搜狐新闻语料库训练100维的word2vec——使用python中的gensim模块

    关于word2vec的原理知识参考文章https://www.cnblogs.com/Micang/p/10235783.html 语料数据来自搜狐新闻2012年6月—7月期间国内,国际,体育,社会, ...

  3. [Algorithm & NLP] 文本深度表示模型——word2vec&doc2vec词向量模型

    深度学习掀开了机器学习的新篇章,目前深度学习应用于图像和语音已经产生了突破性的研究进展.深度学习一直被人们推崇为一种类似于人脑结构的人工智能算法,那为什么深度学习在语义分析领域仍然没有实质性的进展呢? ...

  4. Python NLP入门教程

    本文简要介绍Python自然语言处理(NLP),使用Python的NLTK库.NLTK是Python的自然语言处理工具包,在NLP领域中,最常使用的一个Python库. 什么是NLP? 简单来说,自然 ...

  5. 用python实现入门级NLP

    今天看到一篇博文,是讲通过python爬一个页面,并统计页面词频的脚本,感觉蛮有意思的 Python NLP入门教程:http://python.jobbole.com/88874/ 本文简要介绍Py ...

  6. NLP学习(4)----word2vec模型

    一. 原理 哈弗曼树推导: https://www.cnblogs.com/peghoty/p/3857839.html 负采样推导: http://www.hankcs.com/nlp/word2v ...

  7. NLP大赛冠军总结:300万知乎多标签文本分类任务(附深度学习源码)

    NLP大赛冠军总结:300万知乎多标签文本分类任务(附深度学习源码)       七月,酷暑难耐,认识的几位同学参加知乎看山杯,均取得不错的排名.当时天池AI医疗大赛初赛结束,官方正在为复赛进行平台调 ...

  8. Python 和 R 数据分析/挖掘工具互查

    如果大家已经熟悉python和R的模块/包载入方式,那下面的表查找起来相对方便.python在下表中以模块.的方式引用,部分模块并非原生模块,请使用 pip install * 安装:同理,为了方便索 ...

  9. word2vec模型原理与实现

    word2vec是Google在2013年开源的一款将词表征为实数值向量的高效工具. gensim包提供了word2vec的python接口. word2vec采用了CBOW(Continuous B ...

  10. Machine and Deep Learning with Python

    Machine and Deep Learning with Python Education Tutorials and courses Supervised learning superstiti ...

随机推荐

  1. VMWare ESXi 6.0如何复制虚拟机

    1.复制前建议将待复制的虚拟机电源关闭. 2.登录ESXi 6.0主机后,点击"配置"选项卡,再点击"存储器". 3.能看得相关的数据存储,然后右键点击存储器如 ...

  2. LGP2233题解

    题目大意 求环上走 \(n\) 步从指定点到达另一指定点,到达指定点后 不得继续移动. 大家都做过P1057传球游戏吧?还记得这道题的思路吗? 设 \(dp[i][j]\) 表示传 \(i\) 次求传 ...

  3. 常用的dos指令

    •常用的DOS指令 dir:列出当前目录下的文件及文件夹 md:创建文件 rd:删除文件 cd:进入指定目录   cd..:退回到上一级目录   cd\:退回到根目录   del:删除文件   exi ...

  4. Ubuntu20.04服务器+Anaconda上创建Python3.6虚拟环境并

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 前言 由于服务器已安装Anaconda,包含的Python版本为3.8,为使用3.6版本同时避免和其他人互相影响,我选择创建虚拟环境,并在其中安 ...

  5. ansible 一 简介和部署

    一.Ansible的介绍 Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点.实现了批量系统配置 ...

  6. SP接口的全双工首发接口整合

    unsigned char bits = 8; unsigned int speed = 50000; unsigned short delay; static void spi_transfer_d ...

  7. 比Tensorflow还强?

    大家好,我是章北海 Python是机器学习和深度学习的首选编程语言,但绝不是唯一.训练机器学习/深度学习模型并部署对外提供服务(尤其是通过浏览器)JavaScript 是一个不错的选择,市面上也出现了 ...

  8. Mapper 编写有哪几种方式?

    第一种:接口实现类继承 SqlSessionDaoSupport:使用此种方法需要编写 mapper 接口,mapper 接口实现类.mapper.xml 文件. 1.在 sqlMapConfig.x ...

  9. 如何创建spring web 工程

    在项目资源管理器右键,New-Spring Starter Proje 设置一些参数 点击Next,然后勾选两个选项

  10. SpringCloud个人笔记-03-Config初体验

    sb-cloud-config 配置中心 <?xml version="1.0" encoding="UTF-8"?> <project xm ...