R-水浒人物关系呈现
一、背景
利用R呈现《水浒传》人物关系网络图
二、技术路线
思路:以在同一段出现的共现关系,绘制人物关系网络图
工具:R
三、过程
1. 预定义函数
#读取文件内容函数
get.content<-function(file.path){return (scan(file.path,sep='\n',what='character'))
}
#从termlist中筛选出words,返回词项列表
get.intersect.terms<-function(termlist,words){heros<-list()heros<-lapply(1:length(termlist),function(i) heros[[i]]<-intersect(termlist[[i]],words))hero.clean<-list()j<-1for (i in (1:length(heros))){if(length(heros[[i]]>1)){hero.clean[[j]]=heros[[i]]j=j+1}}return (hero.clean)
}
#获取输入向量元素间的两两关系
get.relationship<-function(termvector){a<-NULLlen<-length(termvector)if(len>1){for (i in 1:(len-1))for (j in (i+1):len)a<-append(a,c(termvector[i],termvector[j]))}return (a)
}
2. 实现:
library(tm)
library(Rwordseg)
words<-get.content('水浒人名.txt')
insertWords(words) #作为临时分词词项使用
sh.data<-get.content('水浒传.txt')
segwords.list<-segmentCN(sh.data)
co.heros<-get.intersect.terms(segwords.list,words)
co.heros<-lapply(co.heros,function(i) get.relationship(i))
co.heros<-unlist(co.heros)
co.matrix<-matrix(co.heros,ncol=2,byrow=TRUE)
write.csv(co.matrix,'水浒.csv',row.names=FALSE)
也可以将上述过程封装成一个函数:
#读取文件,返回words参数中定义的词项间共现关系列表
auto.getrls<-function(file.path,words){file.data<-get.content(file.path)file.term<-segmentCN(file.data) #分词file.terms<-get.intersect.terms(file.term,words) #获取交集file.terms.rls<-lapply(file.terms,function(i) get.relationship(i)) #获取词项间关系file.terms.rls<-unlist(file.terms.rls) #将列表转换为向量 return (file.terms.rls)
}
3. 得到CSV关系数据,利用社会网络分析工具Gephi进行网络可视化
R-水浒人物关系呈现相关推荐
- vue框架制作水浒人物的地图分布图(仅供参考)
WebGIS课程作业实验步骤--制作水浒人物的分布图 1.初始化(注意先看第9点) 创建项目 https://segmentfault.com/a/1190000015772392 引入高德地图(步骤 ...
- Java程序-单链表增删改查(实现对水浒人物的增删改查操作)
单链表增删改查(实现对水浒人物的增删改查操作) 前言 一.链表(Linked List)介绍 二.应用实例 1.问题描述 2.代码实现 总结 前言 参考:B站,尚硅谷数据结构与算法 课程 一.链表(L ...
- IOS对战卡牌《梦回水浒》抢先体验
<梦回水浒> 是一款水墨风格的即时对战卡牌手游.该游戏以水浒108将为人物原型,引入阴阳五行学说,结合独创的多种对战玩法,给玩家带来不一样的游戏体验.不同于一般的卡牌游戏,在<梦回水 ...
- Tableau制作人物关系图
人物关系图可以清晰表示人物之间的关联关系,通过这种关系的呈现给人直观印象,能够达到总览人物故事的全貌,一起看下这个人物关系图是怎样制作的吧. 在绘制人物关系图之前我们需要设计人物关系图,看似杂乱无章的 ...
- R语言 基于共现提取《雪中悍刀行》人物关系并画网络图
概述 雪中悍刀行作为现象级的网文,电视剧版即将上映,作为曾经的一员"妖孽"书粉,按捺不住想做点啥.最近在研究知识图谱,就以此为契机展开相关研究吧. 本文将基于简单共现关系,编写 R ...
- 关于《梦回水浒》的几个问题释疑
在这里,首先要感谢近段时间帮忙测试<梦回水浒>的所有朋友啦,因为你们,我们才能把游戏做的更好~ 最近,关于<梦回水浒>,经常被问到两个问题: 1.为什么<梦回水浒> ...
- 用pyecharts制作小说《剑来》的人物关系图(粗)
先上效果 今天在一如既往地划水时,水友给我推了个小说叫<剑来>.下班回到家,准备下载了看一下,结果一看,光txt都要9MB,以我磨蹭的速度,怕不是明年都看不完.正好最近在做一些NLP相关的 ...
- 你不知道的水浒好汉,在这里!
你不知道的水浒好汉,在这里 <水浒传>中有着108位好汉,个个都是真英雄.这一百零八位好汉性格各不相同,本事各有所长,结局也是各有异同.梁山伯上的一百零八位头领,是由天罡星三十六员和地煞星 ...
- 红楼梦人物关系 python_如何用Python来理一理红楼梦里的那些关系
前言 今天,一起用 Python 来理一理红楼梦里的那些关系 不要问我为啥是红楼梦,而不是水浒三国或西游,因为我也鉴定的认为,红楼才是无可争议的中国古典小说只巅峰,且不接受反驳!而红楼梦也是我多次反复 ...
最新文章
- 消息队列—经典5连问—你能抗几道?
- 500页开放书搞定概率图建模,图灵奖得主Judea Pearl推荐(附链接)
- FD.io/VPP — L2 vSwitch
- python各进制、字节串间的转换
- mysql免安装如何改密码_mysql免安装版配置与修改密码的教程
- php 编译 iconv错误,php编译错误:configure: error: Please reinstall the iconv library.
- 【快速入门Linux】6_Linux命令—用户权限相关命令
- MFC下运行控制台不显示黑屏
- Hive学习之Metastore及其配置管理
- 我们自研的那些Devops工具
- JAVA项目实战开发电商项目案例(一)前后端项目分离
- Gephi教程:使用Graph Streaming 插件实现数据可视化
- Python安装Github下载的包,以SimpleCV为例
- 计算机主板 上电顺序,笔记本电脑主板的上电过程
- pluck()取表中一列中所有值组成数组
- 在线播放.html,网页嵌入式SWF视频播放器
- 通过小宝的卡牌游戏,看开源SCUT服务器运行使用
- 西门菲莎大学计算机专业排名,2019-2020西门菲莎大学世界排名多少【QS最新第314名】...
- 【案例分享】项目施工进度报告 - 树形报表
- JAVA网络爬爬学习之HttpClient+Jsoup
热门文章
- 经过一年的不懈努力社招进了阿里,我总结了50个Java面试必考题
- php数组试题,8个PHP数组面试题,php数组试题_PHP教程
- java遍历多层map_Java遍历Map对象的四种方式
- [附源码]Java计算机毕业设计SSM黑河市劳务人员管理系统
- 在线正则表达式匹配测试
- 过程和数据文件操作以及异常处理
- 带图片的日历html,js css+html实现简单的日历
- 每日简报 5月22日简报新鲜事 每天一分钟 了解新鲜事
- JBoss,Geronimo还是Tomcat? ——三种开源Java应用服务器的比较
- golang中字符串和数字转换