潜在Dirichlet分配解决方案示例

use*_*128 5 lda topic-modeling

我想了解Latent Dirichlet Allocation(LDA).我有机器学习和概率理论的基本知识,并基于这篇博客文章http://goo.gl/ccPvE我能够发展LDA背后的直觉.但是,我仍然没有完全理解其中的各种计算.我想知道有人可以使用一个非常小的语料库向我展示计算(比如说3-5个句子和2-3个主题).

joh*_*ual 7

Edwin Chen(在Twitter btw工作)在他的博客中有一个例子.5个句子,2个主题:

  • 我喜欢吃西兰花和香蕉.
  • 我早餐吃了香蕉和菠菜冰沙.
  • 龙猫和小猫很可爱.
  • 我姐姐昨天收养了一只小猫.
  • 看看这只可爱的仓鼠嚼着一块西兰花.

然后他做了一些"计算"

  • 句子1和2:100%主题A.
  • 句子3和4:100%主题B.
  • 句子5:60%主题A,40%主题B.

并猜测主题:

  • 主题A:30%西兰花,15%香蕉,10%早餐,10%咀嚼,......
    • 在这一点上,你可以将主题A解释为关于食物
  • 主题B:20%的龙猫,20%的小猫,20%的可爱,15%的仓鼠,......
    • 在这一点上,你可以将主题B解释为关于可爱的动物

你的问题是他是如何提出这些数字的?这些句子中哪些词带有"信息":

  • 西兰花,香蕉,冰沙,早餐,咀嚼,吃
  • 龙猫,小猫,可爱,收养,汉普斯特

现在让我们一句一句地从每个主题中获取单词:

  • 食物3,可爱0 - > 食物
  • 食物5,可爱0 - > 食物
  • 食物0,可爱3 - > 可爱
  • 食物0,可爱2 - > 可爱
  • 食物2,可爱2 - > 50%食物 + 50%可爱

所以我的数字与陈的略有不同.也许他在"西兰花片"中加入了"片"这个词来计算食物.


我们在头脑中做了两个计算:

  • 查看句子并首先提出2个主题.LDA通过将每个句子视为主题的"混合"并猜测每个主题的参数来做到这一点.
  • 决定哪些词很重要.LDA使用"term-frequency/inverse-document-frequency"来理解这一点.

  • 问题是关于计算,你只是说"然后他做了一些"计算" - 你能进一步解释吗?:) (2认同)