初学NLP,尝试word2vec模型

第一次学这种,查阅了很多的博客,克服了些些问题,记录一下第一次探索的历程和相关代码,文中借鉴多篇优秀的文章,连接会在文章中给出。

1.实验样本

在我最开始寻找实验头绪的时候,了解做这个需要实验样本,但是大部分博主没有提供他的实验样本,所以我在网络上下载了《倚天屠龙记》的文本。
在下面这篇博客中我了解到可以运用文本进行分割自己生成词的实验样本,以及如何运用jieba的包。
借鉴的博客1
运用jieba包切割词的相关代码:

import jieba.analyse
import codecsf=codecs.open('D:/NLP/A.txt','r',encoding="utf8")
target = codecs.open("D:/NLP/B.txt", 'w',encoding="utf8")print('open files')
line_num=1
line = f.readline()#循环遍历每一行,并对这一行进行分词操作
#如果下一行没有内容的话,就会readline会返回-1,则while -1就会跳出循环
while line:print('---- processing ', line_num, ' article----------------')line_seg = " ".join(jieba.cut(line))target.writelines(line_seg)line_num = line_num + 1line = f.readline()#关闭两个文件流,并退出程序
f.close()
target.close()
exit()

将下载好的文件A切割后保存在文件B中。
前后对比

上面博客最后有一张词语相似度的截图,让我也很想试试,但是作者没有附加代码,所以我有一段时间一直以为可以直接print出模型的相似度,直到后来我看到下面这篇文章
借鉴的博客2
但是,该博客发布日期有点早,现在的一些方法已经更新不能用了,所以我在大佬的代码下做了一些些修改

model.similarity   ---->model.wv.similarity
model.most_similar ---->model.wv.most_similar

再根据我的文本修改,形成的以下的代码

from gensim.models import word2vec
import logging# 主程序
logging.basicConfig(format='%(asctime)s:%(levelname)s: %(message)s', level=logging.INFO)
sentences = word2vec.Text8Corpus(u"D:/NLP/B.txt")  # 加载语料
model = word2vec.Word2Vec(sentences, size=200)  # 训练skip-gram模型,默认window=5print(model)
# 计算两个词的相似度/相关程度
try:y1 = model.wv.similarity(u"张无忌", u"赵敏")
except KeyError:y1 = 0
print(u"【张无忌】和【赵敏】的相似度为:", y1)
print("-----\n")
#
# 计算某个词的相关词列表
y2 = model.wv.most_similar(u"张无忌", topn=20)  # 20个最相关的
print(u"和【张无忌】最相关的词有:\n")
for item in y2:print(item[0], item[1])
print("-----\n")
# 寻找不合群的词
y4 = model.wv.doesnt_match(u"很多 张无忌 赵敏 周芷若".split())
print(u"不合群的词:", y4)
print("-----\n")# 保存模型,以便重用
model.save(u"神雕侠侣.model")

最后在控制台输出,并保存了模型

第一次用自然语言处理的模型,记录一下,也很感谢学习过程中看到的一些大佬的文章。

word2vec-python对词进行相似度计算1相关推荐

  1. python图像识别之图片相似度计算

    作者 | a1131825850疯子  来源 | Python爬虫scrapy 1.背景 要识别两张图片是否相似,首先我们可能会区分这两张图是人物照,还是风景照等-对应的风景照是蓝天还是大海-做一系列 ...

  2. python根据词向量计算相似度_基于词向量的词语间离和句子相似度分析

    基于词向量的词语间离和句子相似度分析 苟瀚文 1 苟先太 2 [摘 要] 分析了词向量在自然语言处理中的作用.使用已经训练好的词向量进 行了简单类比推理.词语间离和句子相似度分析.给出一种结合词向量和 ...

  3. python根据词向量计算相似度_如何使用gensim的word2vec模型和python计算句子相似度...

    如何使用gensim的word2vec模型和python计算句子相似度 根据Gensim Word2Vec,我可以使用gensim包中的word2vec模型来计算2个单词之间的相似度. 例如 trai ...

  4. python专业方向 | 文本相似度计算

    作者系浙江大学生物医学工程专业的硕士在读:专注于自然语言处理 iOS开发. 步骤 1.分词.去停用词 2.词袋模型向量化文本 3.TF-IDF模型向量化文本 4.LSI模型向量化文本 5.计算相似度 ...

  5. python 幂数拟合及拟合度计算

    有时候对数据的分析处理,需要进行曲线拟合,python提供了丰富的工具,其中scipy中的curve_fit可以用来进行幂数拟合或者指数拟合等各种类型的拟合. 先定义好要拟合的函数形式target_f ...

  6. ML:文本、图像等数值化数据相似度计算之余弦相似度计算三种python代码实现

    ML:文本.图像等数值化数据相似度计算之余弦相似度计算三种python代码实现 目录 相似度计算之余弦相似度计算 输出结果 三种python代码实现

  7. 自动摘要生成(三):词向量相似度与有效词含量

    一.前言 新闻在动摘要生成的前两部分在这里: 自动摘要生成(一):最大边界相关算法(MMR) 自动摘要生成(二):由PageRank转变而来的TextRank算法 这里是新闻摘要生成系列的第三部分,这 ...

  8. [Python人工智能] 九.gensim词向量Word2Vec安装及《庆余年》中文短文本相似度计算

    从本专栏开始,作者正式开始研究Python深度学习.神经网络及人工智能相关知识.前一篇详细讲解了卷积神经网络CNN原理,并通过TensorFlow编写CNN实现了MNIST分类学习案例.本篇文章将分享 ...

  9. word2vec词向量训练及中文文本类似度计算

    本文是讲述怎样使用word2vec的基础教程.文章比較基础,希望对你有所帮助! 官网C语言下载地址:http://word2vec.googlecode.com/svn/trunk/ 官网Python ...

最新文章

  1. uc/os内存管理的理解
  2. node express 学习笔记
  3. 留存率提高20%+,如何通过产品迭代做用户增长?
  4. 积跬步以至千里_《荀子》名句76则:不积跬步,无以至千里;不积小流,无以成江海...
  5. Java 线程的生命周期
  6. Python3与OpenCV3.3 图像处理(一)--环境搭建与简单DEMO
  7. Docker笔记2 容器及其基本操作
  8. 怎么将电脑中的声音录制成WAV格式
  9. git与idea结合,实现通过idea向远程仓库gitee发送代码和获取代码
  10. Java基础系列—字符串
  11. Tomcat启动页面中文乱码解决方法
  12. c语言各种古怪的写法
  13. 新手必看!纯干货!模具设计ug开启刀具半径补偿2种方法
  14. RHCE7-NOTE(红帽工程师--题库详细笔记)
  15. VS快捷键,常用加粗
  16. 2021中职组网络空间安全国赛CD模块分组混战镜像*
  17. web前端基础入门教程之HTML5 新元素
  18. 华为p9总是显示切换服务器中,原来华为手机是有双系统模式的,保护个人隐私,一部手机相互切换!...
  19. vue调用cordova 插件_Vue.js 使用cordova camera插件调取相机
  20. vue14 动画-自学视频

热门文章

  1. Linux SPI子系统(3):SPI控制器驱动层
  2. python做生日祝福短信_祝福短信之整蛊生日祝福语
  3. 不要轻易放弃丢失的U盘文件夹数据,这里有按文件夹恢复数据的技巧
  4. 2713-54-4,α-D-Mannopyranosyl Fluoride,-D-氟代吡喃甘露糖分子式: C6H11FO5
  5. 新概念英语第二册Lesson5:No wrong numbers
  6. 金 融 量 化 分 析 • 外 篇 • 绘 制 行 情 数 据 数 据 图
  7. 交换机链路聚合技术的负载均衡算法原理(含C语言实现)
  8. 《惢客创业日记》2019.03.18(周一)从创业角度看郭德纲(5)
  9. 聚类分简单来讲:有监督 -gt; 分类(…
  10. 如何将视频做成gif动图?