大过年的,笔者断续码了三天,才终于‘自觉’地写完了这篇。
之前在学习gensim库发现了LDA系列比较有意义且项目较为完整的Tutorials,于是乎就开始学一下Author-Topic Model。
具体解析参见笔者CSDN博客,主要是挖了一下官方的一个关于科技论文研究案例,这边简单来看看作者-主题模型可实现的功能点。
先来看看python+gensim中实现该ATM模型的所需材料:
功能点归纳:
主题模型(常规)
作者偏好哪些主题
单词主题偏好
相似性作者推荐
可视化(常规)
1、主题模型(常规)
某个主题下,关键/重要词有哪些,以及可能性。
2、作者偏好哪些主题
这点应该是该模型的主要模块。
model.get_author_topics('GeoffreyE.Hinton')
>>>[(6,0.76808063951144978), (7,0.23181972762044473)]
作者为'GeoffreyE.Hinton',
表示:该作者(GeoffreyE.Hinton)偏好第6、7号主题,主题分别是概率。
这边官方案例该两个主题定义为:Character recognition','Reinforcement learning'
3、单词主题偏好
[(model.get_term_topics(i),dictionary.id2token[i])foriinrange(100)]
>>>[([],'acknowledgements'), ([],'acknowledgements_-PRON-'), ([],'acquire'), ([(,0.013787687427660612)],'action'), ([],'action_potential'), ([],'active')]
其中单词’action’,更偏好于0号主题(’Circuits’),可能性为0.013。
当然,很多单词可能都没有特别偏好的主题。
4、相似性作者推荐
官方案例中包括两种相似性距离:
其中Hellinger距离被用来度量两个概率分布的相似度。它是f散度的一种(f散度——度量两个概率分布相似度的指标)。
get_table('YannLeCun', smallest_author=3)
从表格中可以看到大牛YannLeCun与其他哪些作者的文笔较为相似。
5、可视化(常规)
上图中的圆圈是单个作者,它们的大小表示归因于相应作者的文档数量。将鼠标悬停在圆圈上会告诉您作者的名称及其大小。一些圆圈的重叠,代表着不同作者话题内容的重叠。
碎碎念:难得有种码字好久,很想吐槽的冲动..
前后感觉整理了三天,时间略久,总觉得漏掉了啥重要的+gensim说明文档关于这块示例缺乏了点,看来一定是过年吃的鸡鸭鱼鹅腐蚀了我的心智..
领取专属 10元无门槛券
私享最新 技术干货