NLP---word2vec的python实现
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实现的更多相关文章
- 学习NLP:《精通Python自然语言处理》中文PDF+英文PDF+代码
		
自然语言处理是计算语言学和人工智能之中与人机交互相关的领域之一. 推荐学习自然语言处理的一本综合学习指南<精通Python自然语言处理>,介绍了如何用Python实现各种NLP任务,以帮助 ...
 - 利用搜狐新闻语料库训练100维的word2vec——使用python中的gensim模块
		
关于word2vec的原理知识参考文章https://www.cnblogs.com/Micang/p/10235783.html 语料数据来自搜狐新闻2012年6月—7月期间国内,国际,体育,社会, ...
 - [Algorithm & NLP] 文本深度表示模型——word2vec&doc2vec词向量模型
		
深度学习掀开了机器学习的新篇章,目前深度学习应用于图像和语音已经产生了突破性的研究进展.深度学习一直被人们推崇为一种类似于人脑结构的人工智能算法,那为什么深度学习在语义分析领域仍然没有实质性的进展呢? ...
 - Python NLP入门教程
		
本文简要介绍Python自然语言处理(NLP),使用Python的NLTK库.NLTK是Python的自然语言处理工具包,在NLP领域中,最常使用的一个Python库. 什么是NLP? 简单来说,自然 ...
 - 用python实现入门级NLP
		
今天看到一篇博文,是讲通过python爬一个页面,并统计页面词频的脚本,感觉蛮有意思的 Python NLP入门教程:http://python.jobbole.com/88874/ 本文简要介绍Py ...
 - NLP学习(4)----word2vec模型
		
一. 原理 哈弗曼树推导: https://www.cnblogs.com/peghoty/p/3857839.html 负采样推导: http://www.hankcs.com/nlp/word2v ...
 - NLP大赛冠军总结:300万知乎多标签文本分类任务(附深度学习源码)
		
NLP大赛冠军总结:300万知乎多标签文本分类任务(附深度学习源码) 七月,酷暑难耐,认识的几位同学参加知乎看山杯,均取得不错的排名.当时天池AI医疗大赛初赛结束,官方正在为复赛进行平台调 ...
 - Python 和 R 数据分析/挖掘工具互查
		
如果大家已经熟悉python和R的模块/包载入方式,那下面的表查找起来相对方便.python在下表中以模块.的方式引用,部分模块并非原生模块,请使用 pip install * 安装:同理,为了方便索 ...
 - word2vec模型原理与实现
		
word2vec是Google在2013年开源的一款将词表征为实数值向量的高效工具. gensim包提供了word2vec的python接口. word2vec采用了CBOW(Continuous B ...
 - Machine and Deep Learning with Python
		
Machine and Deep Learning with Python Education Tutorials and courses Supervised learning superstiti ...
 
随机推荐
- nginx反向代理配置(conf文件中的nginx)
			
########### 每个指令必须有分号结束.##################user administrator administrators; #配置用户或者组,默认为nobody nob ...
 - jvm初步理解
			
1.什么是运行时数据区? 1.什么是运行时数据区  javac 指令:编译java文件生成class文件  java指令:运行class文件即将数据放到jvm中  class文件运行,后将不同的 ...
 - centeros 命令
			
一.查看系统时间.硬件时间 # date // 查看系统时间 #hwclock // 查看硬件时间 二.时间服务器上的时间同步的方法 安装ntpdate工具 # yum -y install ntp ...
 - Circle Linux镜像在阿里云镜像站首发上线
			
镜像下载.域名解析.时间同步请点击阿里云开源镜像站 Circle Linux简介 Circle Linux 社区是一个开源.共创的 Linux 社区,将通过完全开放.包容的社区形式与全球开发者共同构建 ...
 - 软路由openwrt中替换国内镜像源(以阿里云为例)
			
镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 一.打开openwrt终端 二.找到distfeeds.conf 进入opkg cd /etc/opkg 查看opkg内文件 ls 可以找到di ...
 - 5月16日 python学习总结  DBUtils模块、orm 和 cookie、session、token
			
一.DBUtils模块 介绍 The DBUtils suite is realized as a Python package containing two subsets of modules, ...
 - 洛谷   P1020 [NOIP1999 普及组] 导弹拦截
			
Coidng #include <iostream> #include <algorithm> #include <cstring> #include <ve ...
 - 一个序列出现固定元素个数的方法(DFS)
			
#include <iostream.h> int a[100];int i; static int stat=0; void dfs(int n,int oneCount) { if(o ...
 - grep 命令?
			
强大的文本搜索命令,grep(Global Regular Expression Print) 全局正则表达式搜索.grep 的工作方式是这样的,它在一个或多个文件中搜索字符串模板.如果模板包括空格, ...
 - python 模块和包的基础知识
			
1.常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀 2.为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理.这时我们不仅 ...