用到的工具jieba
jieba分词,最好用的开源中文分词工具。他最主要的两个功能是分词和关键词的抽取。在这里我们需要用他的分词功能来提取文本中的人名。
gephi
gephi是一个开源的复杂网络数据可视化软件,可用于探索数据分析、链路分析、社交网络分析、生物网络分析等。我们需要把数据处理成gephi可接受的csv格式,然后再进行绘制。
实现流程
代码实现分为三步,1. 人物出场次数统计。2. 人物关系统计。3. 格式化输出。
准备工作
准备两份字典,用于分词。文本人物字典
文本人物字典包含了文本中的大部分人名,或者说是我们关心的人物的人名。
人物别称映射字典
民国时期的散文,势必每个人会有多个称呼,在文化人中甚多。蕊生、我、兰成、胡先生指代的都是胡兰成。因此需要一个映射字典,将不同的称呼都映射到同一个人名当中。
定义文件路径常量和初始化全局变量
TEXT_PATH = '../jsjs.txt' # 文本路径
DICT_PATH = 'person.txt' # 人物字典路径
SYNONYMOUS_DICT_PATH = 'synonymous_dict.txt' # 同义词路径
SAVE_NODE_PATH = 'node.csv'
SAVE_EDGE_PATH = 'edge.csv'
'''
person_counter是一个计数器,用来统计人物出现的次数。{'a':1,'b':2}
person_per_paragraph每段文字中出现的人物[['a','b&