问题标签 [topic-modeling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1564 浏览

nlp - 使用槌进行主题建模

我正在尝试将主题建模与 Mallet 一起使用,但有一个问题。

我怎么知道什么时候需要重建模型?例如,我有这么多从网络上爬取的文档,使用 Mallet 提供的主题建模,我可能能够创建模型并用它推断文档。但随着时间的推移,随着我爬取的新数据,可能会出现新的主题。在那种情况下,我怎么知道我是否应该从头到现在重建模型?

我正在考虑为每个月抓取的文件这样做。有人可以建议吗?

那么,主题建模是否更适合主题数量固定(输入参数 k,主题数量)下的文本。如果不是,我如何真正确定要使用的数字?

0 投票
4 回答
2674 浏览

nlp - 关于 lda 推理

现在,我正在使用 MALLET 包中的 LDA 主题建模工具对我的文档进行一些主题检测。最初一切都很好,我从中得到了 20 个主题。但是,当我尝试使用该模型推断新文档时,结果有点令人费解。

例如,我故意在我手动创建的文档上运行我的模型,该文档只包含来自主题“FLU”之一的关键字,但我得到的每个主题的主题分布均 <0.1。然后,我在一个已经采样的文档中尝试相同的操作,其中一个主题的得分为 0.7。同样的事情又发生了。

有人可以就原因提供一些线索吗?

尝试在 MALLET 邮件列表上询问,但显然没有人回复。

0 投票
1 回答
2720 浏览

java - Mallet 中的主题建模;文档

我正在为 Mallet 寻找一些好的文档,特别是与主题建模相关的类。我查看了 Java 文档,但它们并没有太大帮助。例如:

仍然不知道这个方法是做什么的(如果你知道,请告诉我......)。另外,如果您对槌有一定的经验并且可以帮助我打印通过主题模型学习的主题(或代表主题的词组),请告诉我。欢迎大家咨询!

我见过 getTopWords 方法,但我无法调用它……也许是一个丢失的罐子?

0 投票
1 回答
3304 浏览

python - 使用潜在狄利克雷分配的主题预测

我在文档语料库上使用了 LDA 并找到了一些主题。我的代码的输出是两个包含概率的矩阵。一个文档主题概率和另一个单词主题概率。但我实际上不知道如何使用这些结果来预测新文档的主题。我正在使用吉布斯采样。有谁知道怎么做?谢谢

0 投票
3 回答
2278 浏览

text-mining - 使用保存的主题状态用槌推断主题

我使用以下命令从一些文档生成主题模型:

但是,我没有使用该--output-model选项来生成序列化的主题培训对象。有什么方法可以使用状态文件来推断新文档的主题?训练很慢,如果我必须从头开始创建序列化模型,我需要几天时间才能重新训练。

0 投票
1 回答
1122 浏览

yahoo - 雅虎!LDA 实施问题

全部,

我一直在一组文档上运行 Y!LDA (https://github.com/shravanmn/Yahoo_LDA),结果看起来很棒(或者至少是我所期望的)。现在我想使用生成的主题对语料库执行反向查询。有谁知道运行 learntopics 可执行文件后生成的 3 个人类可读文本文件是否是该库的最终输出?如果是这样,那是我需要解析来执行我的查询吗?在这一点上,我有点耸耸肩……

谢谢,亚当

0 投票
1 回答
5079 浏览

nlp - 为什么使用 MALLET 主题推断对单个和一批文档会得到不同的结果?

我正在尝试使用 Mallet 2.0.7 执行 LDA 主题建模。从培训课程的输出来看,我可以训练 LDA 模型并获得良好的结果。此外,我可以使用该过程中内置的推理器,并在重新处理我的训练文件时获得类似的结果。但是,如果我从更大的训练集中取出一个单独的文件,并用推理器处理它,我会得到非常不同的结果,这并不好。

我的理解是推理器应该使用固定模型,并且仅具有该文档的本地特征,所以我不明白为什么在处理 1 个文件或训练集中的 1k 文件时会得到任何不同的结果。我没有进行频率截止,这似乎是一种会产生这种效果的全局操作。您可以在下面的命令中看到我正在使用的其他参数,但它们大多是默认的。将迭代次数更改为 0 或 100 并没有帮助。

导入数据:

火车:

特别是在培训期间分配给一个文件的主题,#14 是关于葡萄酒的,这是正确的:

在整个火车批次上运行推理:

火车上的推理分数——非常相似:

对仅包含该 1 个 txt 文件的另一个训练数据文件运行推理:

对一个文档的推理会产生主题 80 和 36,它们非常不同(14 的得分接近 0):

0 投票
3 回答
1460 浏览

nlp - 主题发现/发现的最佳模型

在简短的非结构化文档中发现主题的最佳模型是什么,例如。短信或推特信息?潜在狄利克雷分配?

0 投票
3 回答
6298 浏览

machine-learning - 如何理解 Mallet 中 Topic Model 类的输出?

当我在主题建模开发人员指南中尝试示例代码时,我真的很想了解该代码输出的含义。

首先在运行过程中,它给出:

所以问题1:第一行的“编码LDA:10个主题,4个主题位,1111个主题掩码”是什么意思?我只知道“10 个主题”是关于什么的。

问题2:“ <10> LL/token:-9,24097 <20> LL/token:-9,1026 <30> LL/token:-8,95386 <40> LL/token:- 8,75353" 是什么意思?这似乎是 Gibss 采样的一个指标。但它不是单调递增的吗?

之后,将打印以下内容:

这部分的第一行可能是token-topic assignment,对吧?

问题3:对于第一个主题,

0.008 被称为“主题分布”,是不是这个主题在整个语料库中的分布?然后好像有冲突:如上图的topic 0,其token会在copus中出现8+7+6+4+4+...次;相比之下,主题 7 在语料库中有 4+3+3+3+3... 次被识别。结果,主题 7 的分布应该低于主题 0。这是我无法理解的。更进一步,最后那个“0 0.55”是什么?

非常感谢您阅读这篇长文。希望您能回答它,并希望这对其他对 Mallet 感兴趣的人有所帮助。

最好的

0 投票
4 回答
6080 浏览

nlp - LDA 如何给出一致的结果?

流行的主题模型 Latent Dirichlet Allocation (LDA),当用于从语料库中提取主题时,会返回在字典单词上具有不同概率分布的不同主题。

而潜在语义索引(LSI)在每次迭代后给出相同的主题和相同的分布。

实际上,LDA 被广泛用于提取主题。如果每次分类都返回不同的主题分布,LDA 如何保持一致性?

考虑这个简单的例子。取文档样本,其中 D 表示文档:

每行代表一个文档。在上述语料库中,LDA 模型用于从文档中生成主题。Gensim 用于 LDA,执行批量 LDA,其中选择的主题数为 4,通过数为 20。

现在在原始语料库上执行批量 LDA,20 次通过后生成的主题是:

现在批量 LDA 再次在相同的原始语料库上执行,在这种情况下生成的主题是:

在这两种情况下,每个主题中的单词分布都不相同。事实上,词的分布从来都不一样。

那么,如果 LDA 在 LSI 等主题中没有相同的词分布,它如何有效地工作呢?