一、前言
终于做出这张图时,我突然有点感慨,这就是2017年我的日记中提到过或记录过的一个个人名,当然为避免引起不必要的麻烦,隐去了许多亲人朋友的名字。想到一辈子说长也长,说短的话,几十张词云图也就概括了那些人与事。曾经朝夕相处、相识相知的人,或许早已渐行渐远了,二三老友谈起故人往事才发现死活想不起某某同学姓甚名谁,遗忘总是发生在不知不觉间,有时候连自己都不知道究竟忘记了什么。
童年、少年、青年时期的人与事,忘却了总是难免,然而眼下的一载春秋里又何尝不是“事如春梦了无痕”呢?2018年已经过去了一周,很多人该总结、该回顾2017年的想来也都总结回顾了,没有总结习惯的就继续过自己新的一年。往常也没有写年末小结的我,或许是听许飞《父亲写的散文诗》听得“热泪盈眶”,“这是我父亲 / 日记里的文字 / 这是他的生命 留下 / 留下来的散文诗”,这几句歌词让我想到多年之后要是我的孩子去了解我的过去,虽然没有什么散文诗可言,但也希望借着回顾之际能总结和留下点什么......
胡言乱语了许多,其实打算研究日记里出现的人名,也是因为想学习和应用一些文本分析和挖掘的方法,根据看过的文章来实践操作下,而日记是现成的语料库,也是最熟悉不过的文本,因此有了这样一篇文章。
二、提取人名
首先为了获取文本中出现的人名,根据这篇文章《从天龙八部小说衍生出的google语义分析与gephi社交网络》里提供的思路,用jieba中文分词Python库尝试从日记文本中提取出TF/IDF权重最大的、TOP5000名词。
由输出结果可知,在庄子、贾宝玉、王小波等人名准确提取出来的同时,夹杂着许多其他事物的名词,需要剔除。由于还不知道有什么便捷高效的方法可以实现提取人名,本次先根据文本中人名出现的次数,划定一个下限,再手动筛选出符合要求的姓名,接着将TF/IDF权重同时增大100或1000倍,以便用HTML5 Word Cloud实现漂亮的词云图。
上图便是我的日记里最具代表性的人物画像了。有大师大家鲁迅、叶嘉莹等,有知乎用户张佳玮、路人甲,有喜欢的歌手山口百惠、安溥,有AI大佬吴恩达、李飞飞,也有一些热门综艺、热点事件里的人物等等。每个人因其不同的缘故而被记录,并得以拼凑出这一年度印记。
三、提取人物关系
除了从文本中提取人名,本次还基于共现提取出日记中人物的网络关系,并运用gephi进行可视化。
引用一段对共现网络基本原理的介绍:“实体间的共现是一种基于统计的信息提取。关系紧密的人物往往会在文本中多段内同时出现,可以通过识别文本中已确定的实体(人名),计算不同实体共同出现的次数和比率。当比率大于某一阈值,我们认为两个实体间存在某种联系。”
实现的代码可参考提取《釜山行》人物关系的代码,可根据自己的需求进行更改。
运用到自己的文本上,并生成后续用于gephi可视化的“节点”和“边”文件,同样需要剔除非人名的数据。节点格式如下:
边格式如下:
将数据导入gephi软件中:
调整节点的大小和颜色,并运行布局算法:
加上标签,比词云图能看到更多人物的姓名:
一顿瞎操作,聚焦到文本中人物关系比较接近与频繁的部分,主要的节点有鲁迅、叶嘉莹、黛玉等等:
整个网络中最重要的一条脉络如下图所示:
在大部分较常规的联系之中,存在着“贺龙”与“贺知章”这一蛮奇特的关联,思索了几秒后,才想起曾有人询问取名、赐名的一桩旧事,倒也有趣,不过说来至今不知道贺姓名人还有哪些,大看到的小伙伴可以说说,并试着为贺姓小男孩取个你觉得不错的名字呗?
人物关系网络的背后是2017年一点一滴的记忆,有许多不足为外人道尔却自得其乐的地方,有许多自己都记不得却借此想起的人和事。
我是个记性很差的人,平日里就记不得几天前乃至昨天的许多事,日记也写了两三年,每每回过头看当初的人与事,就倍感庆幸曾经的勤奋下笔,而遇上空白的时期,或一笔带过的岁月,也会很惘然,仿佛人生被抽离了一部分,只剩下白茫茫的一片。借用沈复在《浮生六记》开篇的话:“东坡云:‘事如春梦了无痕’,苟不记之笔墨,未免有辜彼苍之厚。”我虽没有得天独厚的一些大事可记述,但那种“事如春梦了无痕”的遗憾和惘然却感同身受。
本文虽然只是简单的文本挖掘,没有深入的研究,但对自己来说,还是蛮新颖的探索过程,也借此粗浅的回顾下自己2017的一些人与事,最后再留个谜语,按下图打一个综艺节目吧,欢迎评论猜谜。
四、相关阅读
《从天龙八部小说衍生出的google语义分析与gephi社交网络》