首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >潜在Dirichlet分配解实例

潜在Dirichlet分配解实例
EN

Stack Overflow用户
提问于 2012-05-16 18:48:30
回答 2查看 5.9K关注 0票数 6

我正在尝试学习潜在的Dirichlet分配(LDA)。我有机器学习和概率论的基本知识,并且基于这篇博文http://goo.gl/ccPvE,我能够发展出LDA背后的直觉。然而,我仍然没有完全理解其中的各种计算。我想知道有人能用一个非常小的语料库(比如说3-5个句子和2-3个主题)向我展示计算结果。

EN

回答 2

Stack Overflow用户

发布于 2012-12-14 04:03:25

Edwin (在Twitter工作)在他的博客中有an example。5句,2个专题:

我喜欢吃花椰菜和香蕉。breakfast.

  • Chinchillas yesterday.

  • Look吃香蕉和菠菜奶昔,小猫很可爱。

  • 在这只可爱的仓鼠那里吃了一只小猫yesterday.

  • Look,吃着一片西兰花。

然后他做了一些“计算”

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

并猜测一下这些主题:

  • 主题A: 30%西兰花,15%香蕉,10%早餐,10%咀嚼,…在这一点上,您可以将主题A解释为关于food

  • 主题B: 20%的中国猫,20%的小猫,20%的可爱,15%的仓鼠,…在这种情况下,你可以把话题B解释为关于animals

可爱的

你的问题是他是怎么得出这些数字的?这些句子中哪些词带有“信息”:

西兰花,香蕉,冰沙,早餐,咀嚼,eat

  • chinchilla,小猫,可爱,被收养,火腿

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

可爱食物3,可爱0-> food

  • food 5,可爱0-> food

  • food 0,可爱3-> cute

  • food 0,可爱2-> cute

  • food 2,可爱2-> 50% + 50% cute

所以我的数字和陈的略有不同。也许他在“西兰花片”中加入了“片”这个词,作为对食物的计数。

我们在脑子里做了两次计算:

  • 看这些句子,首先想出两个主题。LDA通过将每句话看作是主题的“混合”并猜测每个主题的参数来做到这一点。
  • 来决定哪些词是重要的。LDA使用“术语频率/反向文档频率”来理解这一点。
票数 7
EN

Stack Overflow用户

发布于 2020-12-10 15:48:53

LDA程序

Step1:浏览每个文档,并将文档中的每个单词随机分配给K主题之一(K是事先选定的)

Step2:这个随机赋值给出了所有文档的主题表示和所有主题的单词分布,尽管不是很好。

因此,要改进它们:对于每个文档d,遍历每个单词w并计算:

  • p(主题t=文档d):文档d中分配给主题t

的单词比例

  • p(word w\x主题t):来自word w

的作业与主题t的比例,相对于所有文档d

Step3:重新分配单词w一个新的主题t‘,在这里我们用概率选择主题t’

  • p(主题t‘去处文档d) * p(word w\主题t’)

这个生成模型预测了主题t‘生成单词w的概率。我们会多次迭代这个最后一步,使每个文档在语料库中得到稳定的状态。

求解计算

假设你有两份文件。

医生一:“银行打电话来问我钱的事,。”

医生二:“银行说这笔钱已经批准了。。”

删除停止词、大写和标点符号之后。

语料库中独特的词语:银行呼叫关于货币船批准的

接下来,

在此之后,我们将随机地从doc I (word bank with 1)中选择一个单词,并删除其指定的主题,并计算其新赋值的概率。

关于主题k=1

关于主题k=2

现在,我们将计算这两个概率的乘积,如下所示:

与主题1相比,document word 适用于主题2 (area is topic )。因此,我们对word bank的新任务将是主题2。

现在,我们将更新计数,因为新的任务。

现在我们要重复同样的调任步骤。并遍历整个语料库的每个单词。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10624760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档