我正在尝试学习潜在的Dirichlet分配(LDA)。我有机器学习和概率论的基本知识,并且基于这篇博文http://goo.gl/ccPvE,我能够发展出LDA背后的直觉。然而,我仍然没有完全理解其中的各种计算。我想知道有人能用一个非常小的语料库(比如说3-5个句子和2-3个主题)向我展示计算结果。
发布于 2012-12-14 04:03:25
Edwin (在Twitter工作)在他的博客中有an example。5句,2个专题:
我喜欢吃花椰菜和香蕉。breakfast.
然后他做了一些“计算”
并猜测一下这些主题:
的
可爱的
你的问题是他是怎么得出这些数字的?这些句子中哪些词带有“信息”:
西兰花,香蕉,冰沙,早餐,咀嚼,eat
现在让我们一句接一句地从每个主题中获取单词:
可爱食物3,可爱0-> food
所以我的数字和陈的略有不同。也许他在“西兰花片”中加入了“片”这个词,作为对食物的计数。
我们在脑子里做了两次计算:
发布于 2020-12-10 15:48:53
LDA程序
Step1:浏览每个文档,并将文档中的每个单词随机分配给K主题之一(K是事先选定的)
Step2:这个随机赋值给出了所有文档的主题表示和所有主题的单词分布,尽管不是很好。
因此,要改进它们:对于每个文档d,遍历每个单词w并计算:
的单词比例
的作业与主题t的比例,相对于所有文档d
Step3:重新分配单词w一个新的主题t‘,在这里我们用概率选择主题t’
这个生成模型预测了主题t‘生成单词w的概率。我们会多次迭代这个最后一步,使每个文档在语料库中得到稳定的状态。
求解计算
假设你有两份文件。
医生一:“银行打电话来问我钱的事,。”
医生二:“银行说这笔钱已经批准了。。”
删除停止词、大写和标点符号之后。
语料库中独特的词语:银行呼叫关于货币船批准的

接下来,

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


关于主题k=1

关于主题k=2

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

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

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

https://stackoverflow.com/questions/10624760
复制相似问题