如今大火的电视剧《都挺好》源于阿耐的同名小说,今天我们来对这部小说使用python分析一下人物关系。本文主要使用google推出的word2vec进行分析。使用的库主要有jieba、gensim。

一、文本准备

从网上下载《都挺好》小说txt。打开查看如下所示:

可以看出,文本中有分段以及大量的换行符,所以在读取文本时需要先去除这些符号。读取文本函数如下:

二、文本分词

在使用word2vec进行模型训练之前,首先需要将文本处理成word2vec可以操作的格式,即分词后使用空格分隔的文本。本文使用jieba进行分词,为了提高分词效果,加入了用户字典和停用词设置。

用户字典格式为:

停用词格式为:

以下是添加用户字典的代码:

以下是添加停用词设置:

下面开始分词,一开始直接使用jieba分词,但是后面做相似度分析的时候效果不好,因为好多无关词性的词也跑出来,如下图:

所以为了提高效果,在分词的时候加入了词性,分词的代码如下:

调用函数之后会产生两个文件,一个文件是分词的文件,用来进行word2vec训练,另一个文件存储分词相应的词性。此时,我们还需要一个能根据词来查询其词性的方法,代码如下:

三、模型训练

经过第二步的分词之后,就可以进行训练了。训练主要是调用word2vec相关的函数将词向量化,主要代码如下:

模型已经生成,我们可以调用模型来看一下具体某个词的词向量

是一个200维的向量。维度可以由我们定义。至此,模型已经训练好。下面进行测试。

四、模型测试

如果此时直接使用模型,效果和之前一样,我们可以利用已生成好的词性文件来进行优化。主要思路是当查找到与目标相似度较高的词时,查询其词性,如果是想要的词性,就输出,不是就抛弃。具体代码如下:

本次求与“苏大强”相似度最高的10个词,运行结果如下

效果确实好多了。但是发现这些词没有文章中的主人公。查看苏大强与蔡根花的相似度:

运行结果如下:

苏大强与蔡根花的相似度明明很高,为什么求相似度top10时没有她。

还有其他主人公的相似度比上面的词相似度低一些,但是要更加的有用。如何能显示出更多有效的词呢。

后来经过排查,发现是因为“蔡根花”词性为空,所以在进行优化时,就把本文的人名优化去了,原因是jieba没有把这些词当做人名(nr)。

五、模型优化

针对这种情况,我们有两种解决方式,第一种是将这些人名的词性加入到词性文件,这样在查找时,就可以找到。第二种方式是直接寻找指定词与目标词的相似度。第二种目标性更强,下面我们直接用用户字典里的词作为与目标“苏大强”的相似度比较。

还是不太好看,排序输出后为:

从结果中可以看出,苏大成与蔡根花的相似度最高,蔡根花是苏大成的保姆,也是他的 “宝贝”,也挺符合故事情节的。

用Python分析《都挺好》中的人物关系相关推荐

  1. 用Python中的py2neo库操作neo4j,搭建简单关联图谱—基于家有儿女中的人物关系

         我第一次建立关联图谱用的是R语言,通过写代码帮公安挖掘团伙犯罪,并用图形展示团伙之间的关联关系.如有需要请关注 "阿黎逸阳的代码" 公众号的后续文章,会手把手教大家用R搭 ...

  2. python诞生的时间地点人物_用Python来计算任意视频中各人物的出镜时间!这项目值50K吗?...

    用Python来计算任意视频中各人物的出镜时间!这项目值50K吗? 简介当我开始接触深度学习时,学到的第一件事就是图像分类.这个话题非常有趣,包括我在内的很多人都沉浸在它的魅力之中.但是在我处理图像分 ...

  3. Mark!用 Python 探索《红楼梦》的人物关系

    作者 | 周萝卜 来源 | Python 技术(ID: pythonall) 相信很多人都知道,<红楼梦>就是中国古典小说的巅峰之作,太多人沉迷其中,而红学也经久不衰.当然今天我们不是来探 ...

  4. 震惊!用Python探索《红楼梦》的人物关系!

    点击上方"菜学Python",选择"星标"公众号 超级无敌干货,第一时间送达!!! 大家好,我是菜鸟哥. 相信很多人都知道,<红楼梦>就是中国古典小 ...

  5. 用Python探索《红楼梦》的人物关系

    相信很多人都知道,<红楼梦>就是中国古典小说的巅峰之作,太多人沉迷其中,而红学也经久不衰.当然今天我们不是来探究小说的,而是通过 Python 来探索下红楼梦里那千丝万缕的人物关系 开干~ ...

  6. 看过来——用Python探索《红楼梦》的人物关系

    数据准备 红楼梦 txt 文件一份 金陵十二钗 + 贾宝玉 人物名称列表. 宝玉 nr 黛玉 nr 宝钗 nr 湘云 nr 凤姐 nr 李纨 nr 元春 nr 迎春 nr 探春 nr 惜春 nr 妙玉 ...

  7. python 求连线相似度_Python分析《都挺好》中的人物关系,苏大强与蔡根花是真爱?...

    如今大火的电视剧<都挺好>源于阿耐的同名小说,今天我们来对这部小说使用python分析一下人物关系.本文主要使用google推出的word2vec进行分析.使用的库主要有jieba.gen ...

  8. 漫谈:Java和Python现在都挺火,我应该怎么选?Java和Python优缺点比较。

    http://www.bossqiang.com/article/4 声明:这是一篇容易引起撕逼的文章,为了祖国和谐,人民安康,请各位看官尽量理性讨论.同时,这篇文章是面向一些初入行的朋友进行一些相对 ...

  9. Python分析一下双色球,中大奖指日可待!

    点击上方"志斌的Python笔记",选择"星标"公众号超级无敌干货,第一时间送达!!! 一.需求简介 之前偶然见到一位网友提出了关于双色球数据的分析需求,感觉颇 ...

  10. Python分析一下双色球,中大奖指日可待

    一.需求简介 之前偶然见到一位网友提出了关于双色球数据的分析需求,感觉颇有趣味,便着手操作了一番.如下为某双色球发布站的页面,可以看到每期会产生红/蓝两种颜色的数字,其中红球为 33 选 6,蓝球为 ...

最新文章

  1. 安卓获取浏览器上网记录_Android 获取浏览器当前分享页面的截屏示例
  2. poj 3281 Dining 最大流
  3. Oracle内核参数介绍
  4. 微生物领域非顶级期刊概述
  5. Mybatis-Plus升级完成! 我的系统到底更新了什么?Mybatis-Plus比Mybatis好在了哪里?
  6. 安天365第二期线上交流
  7. 《java练习题》习题集二
  8. VSCode的Teams插件
  9. js计算浮点数出现小数;解决js计算小数问题;js数组相加出现小数;
  10. 5 分钟全面掌握 Python 装饰器
  11. Android 系统(165)---在apns-conf文件中配置一个read_only字段,使APN不可被编辑
  12. 将一幅图像转换为灰度图
  13. linux 内存pss,内存耗用:VSS/RSS/PSS/USS
  14. matlab仿真介绍,谈一谈|Matlab仿真项目简介
  15. 如何判断一个正数是奇数还是偶数,奇数输出odd,偶数输出even
  16. python-docx库实战修改word文档格式
  17. arch(linux)挂接小鹤音形输入法
  18. 计算机服务器属无形资产吗,服务器属于固定资产还是无形资产
  19. 线性代数笔记31——奇异值分解
  20. Go 每日一库之 gorilla/handlers

热门文章

  1. python 发送邮件实现 抄送,密送
  2. 这内容感觉不咋滴,啊咧怎么就十万+了?
  3. 服务器server2012重置开机密码
  4. 2010年广州市公务员考试行测真题及答案解析
  5. 艺歌点歌系统服务器连接不了,艺歌手机点歌系统歌曲是什么格式
  6. Unity里加速纹理压缩
  7. 在线支付功能的设计及其实现
  8. mysql phpmyadmin远程_phpMyAdmin远程连接mysql数据库
  9. Woff2字体404错误
  10. 古风排版java_古风排版java版-Go语言中文社区