用 Python 提取《釜山行》人物关系
项目简介:本项目将带大家使用 Python 提取《釜山行》人物关系,对于给定的剧本文本,通过分析文本中人物的共现关系,提取整个文本表示的人物关系,并将人物关系可视化表示。本项目教程由Forec发布在实验楼。
一、项目介绍
1. 内容简介
《釜山行》是一部丧尸灾难片,其人物少、关系简单,非常适合我们学习文本处理。这个项目将介绍共现在关系中的提取,使用python编写代码实现对《釜山行》文本的人物关系提取,最终利用Gephi软件对提取的人物关系绘制人物关系图。
2. 知识点
本项目完成过程中将学习:
共现网络的基本原理
Python代码对《釜山行》中人物关系提取的具体实现
jieba
库的基本使用Gephi软件的基本使用
二、项目原理及效果图
实验基于简单共现关系,编写 Python 代码从纯文本中提取出人物关系网络,并用Gephi
将生成的网络可视化。下面介绍共现网络的基本原理。(共现网络英文介绍)
实体间的共现是一种基于统计的信息提取。关系紧密的人物往往会在文本中多段内同时出现,可以通过识别文本中已确定的实体(人名),计算不同实体共同出现的次数和比率。当比率大于某一阈值,我们认为两个实体间存在某种联系。这种联系可以具体细化,但提取过程也更加复杂。因此在此课程只介绍最基础的共现网络。
项目通过Python提取《釜山行》人物关系网络,通过gephi这个软件做可视化处理后,最终效果如下图所示:
三、实验过程
本项目的完整代码、详细步骤及demo,可以在实验楼查看并在线完成:Python基于共现提取《釜山行》人物关系
开发准备:
打开Xfce终端,进入 Code
目录,创建 work
文件夹, 将其作为课程的工作目录。下载并安装 Gephi
。
$ mkdir work && cd work $ mkdir gephi && cd gephi $ wget http://labfile.oss.aliyuncs.com/courses/677/gephi-0.9.1-linux.tar.gz #下载 $ tar -zxvf gephi-0.9.1-linux.tar.gz #解压
下载《釜山行》的中文剧本。
$ wget http://labfile.oss.aliyuncs.com/courses/677/busan.txt
安装jieba
中文分词。
$ sudo pip2 install jieba
实验步骤:
1.观察文本结构、准备词典
可以通过各类百科获取《釜山行》的主要人物,你可以在百度百科中找到他们的介绍,并将人名写入一个字典中。
2.确定需要的变量
3.文本中实体识别
在实验楼中的显示结果如下图:
4.根据识别结果构建网络
5.过滤冗余边并输出结果
6.可视化网络
对《釜山行》剧本中的人物关系数据进行处理后,可以使用gephi这个软件来将人物关系可视化,以便展示的更直观。(Gephi是一款开源免费跨平台基于JVM的复杂网络分析软件, 其主要用于各种网络和复杂系统,动态和分层图的交互可视化与探测开源工具。)
使用 gephi 导入生成的网络,并生成简单的可视化布局。可以在最上方的数据资料选项卡中查看图中所有的边和节点,对于分词不准确导致的噪音,可以手动删除。
通过对节点染色、放大,调整成合适布局后如下图所示。节点染色根据模块化计算结果不定,但染色效果大致相同。
预览后右侧显示最终的人物关系图。
项目代码下载地址:Python基于共现提取《釜山行》人物关系
更多Python经典项目:Python全部项目