自然语言处理-第十期-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的主要内容,如果未能解决你的问题,请参考以下文章