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