项目原理:

实验基于简单共现关系,编写 Python 代码从纯文本中提取出人物关系网络,并用Gephi

将生成的网络可视化。下面介绍共现网络的基本原理。(共现网络简单的英文介绍)

共现网络的基本原理:

实体间的共现是是一种基于统计信息的提取,关系密切的人物往往会在文中的多段连续出现,通过文中以出现的实体(人名),计算不同实体共同出现的比率和次数,设定一个阈值,大于该阈值认为实体间存在某种联系。

准备:

环境 windows Python3.6

jephi软件

代码:

# -*- coding: utf-8 -*-import

os, sys

importjieba, codecs, math

importjieba.posseg aspseg

names ={} # 姓名字典relationships ={} # 关系字典lineNames =[] # 每段内人物关系# count namesjieba.load_userdict("D:\\ResearchContent\\Exercise_Programm\\PythonExercise\\Python\\dict.txt")

# 加载字典with

codecs.open("D:\\ResearchContent\\Exercise_Programm\\PythonExercise\\Python\\fushan.txt", "r", "utf8") asf

:for

line inf.readlines()

:

poss =pseg.cut(line)

# 分词并返回该词词性

lineNames.append([])

# 为新读入的一段添加人物名称列表for

w inposs

:if

w.flag

!="nr"orlen

(w.word)

<2:continue# 当分词长度小于2或该词词性不为nr时认为该词不为人名

lineNames[

-1

].append(w.word)

# 为当前段的环境增加一个人物if

names.get(w.word)

is None:

names[w.word] =

0

relationships[w.word] ={}

names[w.word]

+=1

# 该人物出现次数加 1

# explore relationshipsfor

line inlineNames:

# 对于每一段for

name1 inline

:for

name2 inline:

# 每段中的任意两个人if

name1 ==name2:

continueif

relationships[name1].get(name2) is None:

# 若两人尚未同时出现则新建项

relationships[name1][name2]=

1else:

relationships[name1][name2] =relationships[name1][name2]

+1

# 两人共同出现次数加 1

# outputwith

codecs.open("busan_node.txt", "w", "gbk") asf

:

f.write("Id Label Weight\r\n")

forname, times innames.items()

:

f.write(name

+" "+

name

+" "+str

(times)

+"

\r\n")

withcodecs.open("busan_edge.txt", "w", "gbk") asf

:

f.write("Source Target Weight\r\n")

forname, edges inrelationships.items()

:for

v, w inedges.items()

:if

w

>3:

f.write(name

+" "+

v

+" "+str

(w)

+"

\r\n")

参考:

修改2

python人物关系抽取_Python学习笔记(2) Python提取《釜山行》人物关系相关推荐

  1. python绘制热力地图_Python学习笔记:Python做热力地图

    输入win+R然后输入cmd回车,出现DOS界面 命令行上输入:pip install folium,然后如果出现successfully的话则代表你安装成功. 数据我已经上传百度云,大家只要设置好环 ...

  2. python __name__怎么使用_python学习笔记26(python中__name__的使用)

    在python中,每个py文件都是一个模块,也都是一个可执行文件,即包含main方法.因此,对每个py文件,可以单独运行,也可以import它给其他客户使用,这两种情况不一样. 1. 如果模块是被导入 ...

  3. python的基本数据结构_Python学习笔记——基本数据结构

    列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...

  4. python的基本数据结构_python学习笔记-基本数据结构

    Python 学习笔记-1 写在最前面,因为组内小伙伴要走,生信团队由原来的7个人,慢慢的变的只有我一个人了,需要紧急突击下python,因为有python的流程要交接维护 python 基本情况 代 ...

  5. python编辑器文字放大_python学习笔记000

    写在最前面 其实想学习编程很久了,以前也陆陆续续学习过一段时间的编程,但总是半途而废,经过我长达三秒钟的思考,总结出以下两个方面的原因: 1.没有学习的压力.因为我不是程序员,编程不是我吃饭的家伙,会 ...

  6. [转载] python numpy 子数组_Python学习笔记3:Numpy入门

    参考链接: Python中的numpy.logaddexp2 参考<Python:数据科学手册>一书,仅作个人学习及记录使用,若有侵权,请联系后台删除. 1 理解Python中的数据类型 ...

  7. python 异步加载_Python学习笔记4——爬取异步加载数据

    一.什么是异步加载? 在之前的学习笔记中,爬取的网页是需要手动翻页的网址,但是一些网站是通过自动加载翻页的,如knewone网页.浏览knewone的官网就能发现,当下拉到网页最下端时,网站会自动加载 ...

  8. python查看方法作用_python学习笔记1,新手小白也能看得懂

    这是酸菜在风变编程上学习python时积累的学习笔记,希望能帮到同样也在学习中的小伙伴.持续更新~ 第0关 Print()函数 (1)不带引号:让计算机读懂括号里的内容,打印最终的结果 例:print ...

  9. python 坐标轴 单位刻度_Python学习笔记(matplotlib篇)--坐标轴刻度

    python学习笔记--坐标轴刻度 所用的库及环境: ide:pycharm python环境:python3.7 matplotlib:   matplotlib 1.11 numpy:  nump ...

  10. python创建实例属性_Python学习笔记__6.5章 实例属性和类属性

    # 这是学习廖雪峰老师python教程的学习笔记 1.概览 1.1.实例绑定属性 class Student(object): def __init__(self, name): self.name ...

最新文章

  1. 6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
  2. c语言基础习题下载,C语言基础题目
  3. eip协议通信_3月免费公开课伺服、通信等课程重磅发布,火热报名中
  4. Ajax操作的四个步骤
  5. iOS SDK:iOS调试技巧
  6. 2017.12.18
  7. 农用地包括哪些地类_土地地类一览表
  8. Git仓库只拷贝代码-不拷贝提交记录-不拷贝其他分支
  9. 广告智能定向技术lookalike
  10. 再见,Python!你好,Go语言\n\n
  11. Mysql常用的存储引擎
  12. 计算机学数字电子基础知识,什么是数字电路?新手如何快速学习数字电路基础?...
  13. X射线检测系统技术行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  14. 360 自动 html 极速模式,用Meta标签代码让360双核浏览器默认极速模式打开网站不是兼容模式(顺带解决很多兼容性问题)...
  15. 关于程序员清明节假期延长至七天的通知
  16. 1428D - Bouncing Boomerangs(思维+构造+贪心)
  17. vs2016 程序在vs2019 运行,显示无法找到 Intel C++ Compiler XE14.0解决方案
  18. Apache服务器配置参数的全面说明(所有参数)
  19. 卸载 windows 2003 自带 .NET Framework (dotnetfx cleanup tool)
  20. Pytorch-Lightning--Tuner

热门文章

  1. 【多线程】解决SpringBoot热部署时layering-cache线程池被Tomcat Graceful shutdown,重新赋值方法区中 StatsServi
  2. chrome浏览器添加crx插件
  3. zipFile 压缩文件夹 C#
  4. creator pvr etc
  5. C语言解数独(含源码) 2020/8/19
  6. On the Sentence Embeddings from Pre-trained Language Models
  7. 第十五章 友元、异常和其他
  8. 本机电脑清除DNS缓存+浏览器清除DNS缓存
  9. antd modal层级混乱
  10. 加密流量分类-论文2:Deep Packet: A Novel Approach For Encrypted Traffic Classification Using Deep Learning