众所周知在《三国演义》中随着时间的变化出场了很多的人物,因此也可以利用一些文本挖掘方式,分析书中的人物关系等。下面将会利用文本分析方法,观察书中人物的出场情况和人物之间的关系。
1 人物重要性时序分析
先介绍一些关键人物随着章节的推进,他们的出场频次随着时间的变化情况。先读取“一些三国人物的名和字.csv”和“三国演义.txt”文件,该数据中主要包含书中不同阵营的关键人物的名称和字等信息。
## 输出高清图像
%config InlineBackend.figure_format = 'retina'
%matplotlib inline
## 图像显示中文的问题
import matplotlib
matplotlib.rcParams['axes.unicode_minus']=False
import seaborn as sns
sns.set(font= "Kaiti",style="ticks",font_scale=1.4)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import networkx as nx
import altair as alt
## 忽略提醒
import warnings
warnings.filterwarnings("ignore")
## 读取三国一些三国人物的名和字数据
TK_name = pd.read_csv("data/三国演义/一些三国人物的名和字.csv")
print(TK_name.head())
名 字 阵营
0 曹操 孟德 曹魏
1 曹丕 子桓 曹魏
2 司马懿 仲达 曹魏
3 荀彧 文若 曹魏
4 荀攸 公达 曹魏
## 读取三国演义数据
TK_df = pd.read_csv("data/三国演义/三国演义.txt",sep="t")
TK_df.head(5)
Name content
0 宴桃园豪杰三结义,斩黄巾英雄首立功 滚滚长江东逝水,浪花淘尽英雄。是非成败转头空。青山依旧在,几度夕阳红。白发渔樵江渚上,惯看秋...
1 张翼德怒鞭督邮,何国舅谋诛宦竖 且说董卓字仲颖,陇西临洮人也,官拜河东太守,自来骄傲。当日怠慢了玄德,张飞性发,便欲杀之。玄...
2 议温明董卓叱丁原,馈金珠李肃说吕布 且说曹操当日对何进曰:“宦官之祸,古今皆有;但世主不当假之权宠,使至于此。若欲治罪,当除元恶...
3 废汉帝陈留践位,谋董贼孟德献刀 且说董卓欲杀袁绍,李儒止之曰:“事未可定,不可妄杀。”袁绍手提宝剑,辞别百官而出,悬节东门,...
4 发矫诏诸镇应曹公,破关兵三英战吕布 却说陈宫临欲下手杀曹操,忽转念曰:“我为国家跟他到此,杀之不义。不若弃而他往。”插剑上马,不...
想要分析每个人物的出场情况,就需要计算在每个章节中,感兴趣的人出场频次等信息,下面的程序中,则是计算每个人物在每章节出现的次数,计算时将出现的名字和字各作为一次出现,需要注意的是,计算时根据分词前的文本内容进行计算,最终的计算结果将会转化为数据表格。最终的输出数据表中,行表示对应的章节,列表示人物名称ÿ