自然语言处理-第十期-LDA&Topic Model

Posted 好奇宝宝与机器学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自然语言处理-第十期-LDA&Topic Model相关的知识,希望对你有一定的参考价值。

背景


上一期整期在解释什么是Topic. 基本上所有的Topic Molde 算法都带有Latent(潜在)这个单词。这是因为Topic Model 发掘的是一个隐藏的规律。在已经理解Topic 之后,我们将介绍 LDA模型。本次介绍将跳过模型数学部分。

Topic Model &LDA

Topic Model的目标

上一期提到了,Topic是文章背后隐藏的属性。但是Topic Model并不是要揭示这一段讲的是“健身器材的介绍”。LDA所做的是将“跑步机”、“椭圆机”等词放在同一个Topic里面。 换句话说,LDA所做的是Cluster,做的是将词 分群 的任务。那么LDA具体是怎么做的呢?


LDA过程

LDA(Latent Derelicht Allocation)本质上是一个概率模型。它通过计算P( word | topics) 和 P( topics | documents) 来获得单词的分群。我们通过一个网上的例子来说明下:

假设我们目前我们目前看到的是三个文档,其包含两个主题:食物和宠物


文档1主要关于食物主题(Topic A),文档2主要是关于宠物主题(Topic B)。文档3在A、B主题中平均分布,除了有一个未分配的单词Fish。通过现有信息,我们能够得到 文档3中的Fish 应该归属于哪个主题。

首先,我们需要计算该词在不同主题中出现的概率:

P( ‘Fish’ | topic A) = 0.75

P( ‘Fish’ | topic B) = 0.25

现在,我们需要计算该Fish单词所在文档的主题分布:

P( topic A | Document 3) = P( topic B | Document 3) = 0.5

因为他们目前是平均分布的,所以都是0.5

通过两次概率计算,我们能够将文档3中的该Fish 分配到Topic A中。

该算法的下一步是对文档中的所有单词重复该步骤,计算概率 然后分配主题。在许多次循环之后,最终结果收敛,也就是LDA的结果。


总结下

LDA模型实际上就是概率分布的模型。其中最关键的两个步骤是:

  • 该词在所有文档的范围内,归属于哪个Topic;

  • 该词所在的文档归属于哪个Topic

在初始步骤中,随机给所有单词配置一个主题Topic之后,对所有的单词计算以上两个概率。在网上看LDA有很多好处,扩展性什么的:

  • 我个人认为LDA的一个最大的好处就是能够处理多义词或者同一个词的不同语境。 因为LDA进行主题划分时,又考虑到整个文档的主题倾向。例如,一个通篇在谈花卉的文章里面的化肥,可能与农业文章里的化肥归属于不同主题;

  • LDA模型能够将分布最不同的词突出,例如上面例子中的“Eat” 很明显是归属于食品主题的;

总之,LDA通过基于上述两个概率的循环,将所有文档中的所有单词进行Cluster。 并且当其面对一个新的文档时,能够计算出其主题分布。

下期预告

实际上大家会发现,从概念上理解LDA模型其实并不难。其通过两个主要的概率原则,将所有的词分配到不同的主题中。此模型一个很重要的问题是,该模型最终是否会收敛。这个最重要的问题,需要通过大量的数学来证明。所以本系列并不涉及,以实用为主。

下一期将给大家带来一个LDA模型实际应用的例子。


以上是关于自然语言处理-第十期-LDA&Topic Model的主要内容,如果未能解决你的问题,请参考以下文章

CSDN编程竞赛 ——— 第十期

主题模型(topic models)总结

艺术编程-技术之声第十期

学习总结第十期

第十期 华为拓扑-OSPF配置

第十期新手教程:macOS系统强制退出程序方法