独家 | LDA主题建模和pyLDAvis可视化

作者:Xuan Qi

翻译:方星轩

校对:欧阳锦

本文约1700字,建议阅读6分钟

本文的数据来自美国著名电视节目《老友记》。作者用python-Beautiful Soup抓取了224集中六个主要角色的全部剧本。角色有Ross Geller,Rachel Green,Monica Geller,Phoebe Buffay,Joey Tribbiani和Chandler Bing。本文将使用LDA对《老友记》进行主题建模。

标签:自然语言处理数据可视化,主题建模

 流行的主题建模算法包括潜在语义分析*(LSA),层次狄利克雷过程*(HDP)和潜在狄利克雷分配*(LDA),其中LDA在实践中由于效果出众被广泛采用。

主题模型是一组算法/统计模型,可以揭示文档集中的隐藏主题。例如,“浪漫”,“恐怖”和“家庭”将在与电影有关的文档中更频繁地出现。“技术”,“计算机”和“算法”在计算机科学文档中的出现频率会更高。

pyLDAvis

pyLDAvis是一个交互式LDA可视化python软件包。我的LDA建模结果是什么样的?我截取了一个pyLDAvis结果图,如下图所示。圆圈区域表示每个主题在整个语料库中的重要性,圆圈中心之间的距离表示主题之间的相似性。对于每个主题,右侧的直方图列出了前30个最相关的字词。LDA帮助我提取了6个主要主题。以该主题为例,我看到的最相关的术语是光明节(hanukkah),化石(fossil),古鲁(guru)等。对于我们的古生物学家,教授和Geller博士而言,这很可能是一个主题。我已将pyLDAvis分析结果保存为.html文件,您可以从GitHubrepo(https://github.com/XuanX111/Friends_text_generator/blob/master/friend_lda.html)下载它。我是如何得到这个很酷的视觉效果的?接下来我将逐步解释该过程。

自然语言处理

 

在处理句子之前,我首先将舞台指导与实际对话分开,然后将它们分别存储到pandas Dataframe中。

 

现在,我有六个文档,每个文档包含各个演员说的所有句子。在分词,复词之后,我进一步过滤了停用词(例如a,on,and等),只选择三个以上字母的词。然后,我计算文档中每个单词的出现次数,此过程也称为词袋模型(bag-of-words)。我使用python软件包Gensim(https://radimrehurek.com/gensim/models/ldamodel.html)进行了LDA分析。笔记本和代码可以在我的repo(https://github.com/XuanX111/Friends_text_generator/blob/master/Friends_LDAvis_Xuan_Qi.ipynb)中找到。

 

有趣的发现

 

我意识到,即使在《老友记》的角色中,其角色性格的动态特点也可以被探索。Rachel的性格随着剧情的推进而得到发展。在第1季中,Rachel只是一个试图探索世界的被宠坏的富家女孩。但到第6季,她逐渐成长为坚强独立的女性。她所使用的词随着角色的变化而变化,这可以通过LDA主题模型反映出来。我通过按“季”解析.txt文件生成了10 * 6个文档。《老友记》中共有10季和6个主要角色,因此我拥有的文档包括第1季,第2季…的Rachel,第1季,第2季的Chandler等。

 

经过50次迭代后,RachelLDA模型帮助我提取了8个主要主题(如上图)。主题之间存在一些重叠,但是通常来讲,LDA主题模型可以帮助我掌握趋势。

 

思考总结

有多少个主题可供选择?或如何评估LDA模型。

 

潜在的狄利克雷分配是在未标记的文件上训练的。因此,人们不禁想知道如何评估这种非监督模型?LDA通常要么是通过测量某些次级任务(例如文档分类或信息检索)的性能来评估的,要么是通过给定一些训练文档来估计未知保留文档的概率来评估的。通常,更好的模型将提高文档被保留的可能性。有一篇非常好的论文(http://dirichlet.net/pdf/wallach09evaluation.pdf)介绍了评估LDA模型的各种方法。

 

评估主题模型是否良好的另一种方法是遵循自己的直觉。当你拥有一个不错的模型时,通常可以讲一个有关所生成的主题的故事。以我的主题模型为例,经过50次迭代,我分配了10个主题。当我进入每个主题时,我有6个主要主题,我发现大多数单词确实与一个字符相关。例如,在主题4中,我看到了Gavin,他曾经是碰巧喜欢Rachel的一位同事。Kim·是Rachel的前任老板。Rachel曾经在Bloomingdale工作。她确实很八卦。如下图所示,主题4中的大多数单词都以字符Rachel为中心。我可以围绕主题讲一个有关的故事,这说明我的模型很好。

备注*:

潜在语言分析(Latent Semantic Analysis,简称:LSA):是自然语言处理中的一种技术,它通过产生与文档和术语相关的一组概念来分析文档和它们包含的术语之间的关系,尤其是分布式语义。

层次狄利克雷过程(hierarchical Dirichlet process,简称HDP):是一种非参数贝叶斯方法,用于对分组数据进行聚类。此方法允许组通过组之间的群集共享来共享统计强度。

潜在狄利克雷分布(the latent Dirichlet allocation,简称LDA):是一种生成统计模型,该模型允许由未观察组解释观察集,这些观察组解释了为什么数据的某些部分相似。

原文标题:

LDA Topic Modeling and pyLDAvis Visualization

原文链接:

https://medium.com/@sherryqixuan/topic-modeling-and-pyldavis-visualization-86a543e21f58

编辑:黄继彦

校对:汪雨晴

译者简介

方星轩,美国东北大学数据分析研究生在读,本科毕业于美国莫瑞州立大学商学院。对利用数据来进行市场和企业内的分析有着浓厚的兴趣,对机器学习AI领域充满好奇。喜欢篮球,吉他,旅行,希望能够结交朋友分享故事,拓宽视野,客观的看待世事万物。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章