在之前分词的基础上进一步分析人物的关系。

首先先把每一行小说里面的人物名字统计出来,只需在之前统计各人物出场次数的基础上增加一点代码即可:

sentence = []
for line in f.readlines():seg_list = jieba.cut(line,cut_all=False)unique_list = []linenames.append([])for i in seg_list:if i not in STOPWORD:unique_list.append(i)if i in all_names:linenames[-1].append(i)if names.get(i) is None:names[i] = 0relationships[i] = {}names[i] += 1sentence.append(unique_list)

linenames这个列表里存储的即为每一行出现的各人物名字,同时给每一个人物添加一个关系元组,用来分析其他人物与该人物的亲密关系。

for line in linenames:for name1 in line:for name2 in line:if name1 in relationships:if name1 == name2:continueif relationships[name1].get(name2) is None:relationships[name1][name2]=1else:relationships[name1][name2] += 1

根据每一行小说里某一人物与其他人物同时出现的次数来分析该人物与其他人物的亲密关系:

for line in linenames:for name1 in line:for name2 in line:if name1 in relationships:if name1 == name2:continueif relationships[name1].get(name2) is None:relationships[name1][name2]=1else:relationships[name1][name2] += 1

现在来打印输出看看relationships里的数据:

{'路明非': {'路鸣泽': 108, '古德里安': 76, '楚子航': 75, '陈雯雯': 147, '诺诺': 311, '陈墨瞳': 21, '诺玛': 13, '芬格尔': 146, '富山雅史': 22, '恺撒': 114, '曼施坦因': 35, '诺顿': 7, '昂热': 4}, '康斯坦丁': {'诺顿': 1}, '路鸣泽': {'路明非': 108, '楚子航': 9, '古德里安': 3, '陈墨瞳': 1, '芬格尔': 2, '陈雯雯': 6, '诺诺': 2, '诺顿': 1, '恺撒': 2}, '古德里安': {'诺玛': 3, '路明非': 76, '路鸣泽': 3, '诺诺': 13, '陈墨瞳': 1, '芬格尔': 9, '富山雅史': 12, '曼施坦因': 42, '楚子航': 4}, '诺玛': {'古德里安': 3, '路明非': 13, '诺诺': 4, '芬格尔': 3, '曼施坦因': 7, '恺撒': 6, '楚子航': 1, '诺顿': 1, '陈墨瞳': 1}, '楚子航': {'路鸣泽': 9, '路明非': 75, '陈雯雯': 5, '恺撒': 100, '曼施坦因': 14, '昂热': 1, '诺顿': 3, '诺诺': 10, '古德里安': 4, '苏茜': 7, '芬格尔': 9, '诺玛': 1}, '陈雯雯': {'路明非': 147, '楚子航': 5, '陈墨瞳': 2, '诺诺': 31, '芬格尔': 2, '路鸣泽': 6, '恺撒': 1}, '诺诺': {'路明非': 311, '古德里安': 13, '陈墨瞳': 4, '陈雯雯': 31, '诺玛': 4, '恺撒': 68, '芬格尔': 13, '楚子航': 10, '诺顿': 6, '曼施坦因': 13, '苏茜': 8, '路鸣泽': 2}, '昂热': {'曼施坦因': 1, '楚子航': 1, '恺撒': 2, '诺顿': 2, '路明非': 4}, '陈墨瞳': {'诺诺': 4, '古德里安': 1, '路明非': 21, '陈雯雯': 2, '路鸣泽': 1, '芬格尔': 2, '恺撒': 10, '诺顿': 8, '曼施坦因': 3, '诺玛': 1}, '芬格尔': {'路明非': 146, '古德里安': 9, '诺顿': 4, '诺诺': 13, '陈墨瞳': 2, '恺撒': 41, '路鸣泽': 2, '陈雯雯': 2, '诺玛': 3, '曼施坦因': 4, '楚子航': 9, '富山雅史': 2, '苏茜': 3}, '富山雅史': {'路明非': 22, '古德里安': 12, '恺撒': 1, '芬格尔': 2}, '曼施坦因': {'古德里安': 42, '路明非': 35, '恺撒': 22, '楚子航': 14, '昂热': 1, '诺玛': 7, '诺诺': 13, '芬格尔': 4, '诺顿': 2, '陈墨瞳': 3}, '恺撒': {'富山雅史': 1, '路明非': 114, '楚子航': 100, '诺诺': 68, '曼施坦因': 22, '昂热': 2, '陈墨瞳': 10, '芬格尔': 41, '诺顿': 14, '苏茜': 3, '陈雯雯': 1, '诺玛': 6, '路鸣泽': 2}, '诺顿': {'芬格尔': 4, '恺撒': 14, '楚子航': 3, '诺诺': 6, '苏茜': 1, '路明非': 7, '曼施坦因': 2, '昂热': 2, '诺玛': 1, '康斯坦丁': 1, '陈墨瞳': 8, '路鸣泽': 1}, '苏茜': {'楚子航': 7, '恺撒': 3, '诺诺': 8, '诺顿': 1, '芬格尔': 3}}

从这里即可看出某一人物与其他人物的亲密关系。

利用jieba分词分析小说三相关推荐

  1. 利用jieba分词分析小说一

    准备工作 下载好需要分析的小说txt文件,这里我选择的是<龙族>的第一部. 小说人物名字的txt文件. 中文停用词txt文件. 安装好jieba库. 正式开始 用jieba.cut()完成 ...

  2. 利用jieba分词分析小说二

    在之前通过jieba分词统计出了各人物的出场次数的基础上,我们可以利用Gensim Word2vec进一步分析人物关系, Gensim是自然语言处理中的一款具备多种功能的神器.Gensim是一款开源的 ...

  3. 爬取B站中的《啥是佩奇》的实时弹幕并利用jieba分词形成词云效果

    这一连好多天都在忙,到今天为止,终于忙完了,可以认真学习一些自己的技术了! 这次我的目标是爬取B站中<啥是佩奇>的实时弹幕,下面我们开始吧! 找到网址,检查,并找到实时弹幕的API接口 凭 ...

  4. 利用python语言分析小说的词频、词性、词云、小说人物出场次数排序以及小说人物关系

    1.需要准备的文件 bird.png:云底图片 sgyy.txt:三国演义原文 tingyong.txt:停用词文件 2.源代码 1.统计词频词性并写入文件中 # 贾高亮 # 时间:2023/3/21 ...

  5. jieba分词提取小说人名

    文章目录 1. 读入文本 2. 分词 3. 计数 4. 排序 5. 添加用户字典 以<神雕侠侣>为例: 使用 jieba.posseg获取词性,人名的词性为 nr 1. 读入文本 impo ...

  6. 利用pyecharts的wordcloud实现词云(可结合Pandas数据分析和jieba分词)

    pyecharts的wordcloud使用 1.主文件 WordCut.py # 导入pandas,用于数据提取 import pandas as pd # 导入jieba分词,可用于文章分词 imp ...

  7. 自然语言处理课程(二):Jieba分词的原理及实例操作

    上节课,我们学习了自然语言处理课程(一):自然语言处理在网文改编市场的应用,了解了相关的基础理论.接下来,我们将要了解一些具体的.可操作的技术方法. 作为小说爱好者的你,是否有设想过通过一些计算机工具 ...

  8. ik分词和jieba分词哪个好_Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考...

    前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移.因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3 ...

  9. python分词训练_python练习17:用jieba分词做关键词提取,用matplotlib做可视化

    jieba分词 是一款开源的中文分词包,同时它还带有分析模块,可以用TF-IDF等算法进行关键词分析 jieba 下面的小程序的基本思路是: 通过jieba从 保存好的txt文本中提取关键词,根据关键 ...

最新文章

  1. 图像配准----RANSAC
  2. 复习es6-let和const
  3. SAP S/4HANA Analytics Path Framework 里过滤器(filter)的使用方法介绍
  4. poj3981 字符串替换-字符串的基本操作
  5. parallels for linux,在 Parallels Desktop 上安装 Remix OS PC
  6. 堆栈图解CSAPP Bomb Lab实验解析
  7. 计算机网络维护工具,一种计算机网络维护工具箱的制作方法
  8. CCF202104-2 邻域均值
  9. MacBook运行C++,不用安装任何软件
  10. 配色没有灵感?最流行的配色案例!没有一个人不爱的
  11. Delphi中的字符串压缩与解压缩
  12. w ndows无法完成格式化,win10系统windows无法完成格式化的处理方法
  13. ab变频器22b用户手册_AB变频器 PowerFlex400用户手册.pdf
  14. 豆瓣电影评分(微信小程序)——Day1
  15. Bentley 软件公司 Acceleration Fund 宣布成立 Bentley 下属公司 Virtuosity
  16. 【阅读笔记】低照度图像增强-《Fast efficient algorithm for enhancement of low lighting video》
  17. 解决问题:Matlab如何生成或保存无背景图片
  18. 根据当前日期进行以下方面的处理: 1、取得日期的年份、月份、天、时、分、秒,并转换成大写日期格式 如:2013年8月17日 20时30分20秒 2、根据日期的不同时间段,做问候语: 早上8:00-12
  19. [病毒分析]熊猫烧香(下)核心函数部分分析
  20. Hive(番外):Hive可视化工具IntelliJ IDEA

热门文章

  1. 幼师和计算机学哪个好,大学不容易脱单的专业,计算机专业只是其一,幼师也会比较难...
  2. C++builder中输出hello
  3. 标准解读系列:行标发布,道路交通信号控制机从管控到服务
  4. 华为EROFS文件系统的性能测试
  5. 模拟赛DAY1 T1大美江湖
  6. 《龙武》9.15正式上线链游玩家平台 | 再续仙侠、血雨江湖
  7. 读取目录下的图片写入剪切板然后发送到qq窗口
  8. 如何使用Android原生接口,实现“应用双开”
  9. 打造前端 Deepin Linux 工作环境——安装配置 atom 编辑器
  10. AlloyTeam:致我们终将组件化的 Web (多图)