文本挖掘实操|用文本挖掘剖析54万首诗歌(8)
2024-06-15 来源:旧番剧
在上图的5个词汇对中,“渔樵”和“躬耕”之间的语义距离最短,也就是语义相关度最高,它们之间的语义演变路径也就越短,中间只隔了2个词汇;“燕市”和“宝婺”的语义距离最大,语义相关度最小,二者的语义演变路径隔了12个词汇。可以看到,语义关联性越弱(distance值越大)的两个词汇之间的最短语义演变路径就越长,反之越短,所以语义距离与语义演变路径长度呈正相关关系,语义关联度与语义演变路径呈负相关关系。
有了前面的词嵌入模型和语义相关度做“铺垫”,后续的热门诗歌题材发现就水到渠成了~
4 用文本聚类进行热门诗歌题材发现
先开宗明义,在本文中,关于“诗歌题材”中的“题材”二字的定义,笔者认为是:
作为诗歌创作材料的社会生活的某些方面,亦特指诗人用以表现作品主题思想的素材,通常是指那些经过集中、取舍、提炼而进入作品的生活事件或生活现象。一言以蔽之,写景、摹物、抒情、记事、明理皆是“题材”。
因为事先不知道这54万余首诗歌中到底会存在多少个题材,所以笔者选取的聚类算法没有预设聚类数这个参数,且兼顾运行效率和节省计算资源,能利用前面训练好的word2vec词嵌入模型和语义关联度计算。
此时,有个很好的选择 --- 社区发现算法中的Infomap。
4.1 基于社区发现的热门诗歌题材发现
字词是承载诗歌题材的最小语义单元,如“五云山上五云飞,远接群峰近拂堤。若问杭州何处好,此中听得野莺啼”,看到其中的“五云山”和“群峰”,则可以给该诗打上一个“山川巍峨”的题材标签。由此,笔者接下来会基于社区发现算法,结合“词汇簇群--->词汇簇群语义特征--->题材标签”的思路来发现热门诗歌题材。
先说说基于社区发现的大致原理。
我们知道,在社交网络中,每个用户相当于每一个点,用户之间通过互相的关注关系构成了整个线上人际网络。
在这样的网络中,有的用户之间的连接较为紧密,有的用户之间的连接关系较为稀疏。其中连接较为紧密的部分可以被看成一个社区,其内部的节点之间有较为紧密的连接,而在两个社区间则相对连接较为稀疏。
如何去划分上述的社区便称为社区发现的问题。
基于社区发现算法的话题聚类/发现,在于挖掘词汇语义网络中居于头部的大型“圈子”。
将词汇拟人化,词汇之间存在的相似度/关联度可以视为词汇之间的亲密程度,那么,诗歌题材发现任务可以看做是找到不同成员组成的“圈子”,圈子的特性可以根据其中的成员特征来确定,换言之,题材的名称可以根据其中聚合的词汇的内涵来拟定,比如某个词汇簇群中包含“卫霍”、“甲兵”、“征战”等词汇,那么这个题材可以命名为“战争”。示意图如下所示(点击图片可放大查看):