问题标签 [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 投票
2 回答
30287 浏览

r - 主题模型:对数似然或困惑的交叉验证

我正在使用主题建模对文档进行聚类。我需要想出最佳的主题编号。因此,我决定对主题 10、20、...60 进行十倍交叉验证。

我已将我的语料库分成十批,并留出一批作为保留集。我已经使用 9 个批次(总共 180 个文档)运行了潜在狄利克雷分配 (LDA),主题为 10 到 60。现在,我必须计算保留集的困惑度或对数似然度。

我从 CV 的一次讨论中找到了这段代码。下面几行代码我真的看不懂。我有使用保留集(20 个文档)的 dtm 矩阵。但我不知道如何计算这个保留集的困惑度或对数似然度。


问题:

  1. 谁能向我解释一下 seq(2, 100, by =1) 在这里是什么意思?另外,美联社[21:30] 是什么意思?函数(k)在这里做什么?

    /li>
  2. 如果我想计算称为 dtm 的保持集的困惑度或对数似然度,是否有更好的代码?我知道有perplexity()logLik()功能,但由于我是新手,我无法弄清楚如何使用我的保持矩阵(称为 dtm)来实现它。

  3. 如何对包含 200 个文档的语料库进行十倍交叉验证?是否有我可以调用的现有代码?我caret为此目的找到了,但也无法弄清楚。

0 投票
2 回答
1260 浏览

r - 清除文档术语矩阵中的空白条目的解决方法?

我有一些过去用来生成主题模型的 r 代码。一切正常,直到我更新了我的所有 r 包以希望解决一个稍微不相关的问题。现在,以前工作的代码似乎被破坏了,我不知道该怎么办。

阅读了这篇文章 ,发现它对最初的设置非常有帮助。它描述了一种在删除稀疏项以设置后续分析后清理空白行的方法。当我使用当前的包输入相同的代码时,会发生以下情况:

有谁知道我如何才能找到问题并回滚到可行的解决方案?谢谢。

0 投票
0 回答
275 浏览

r - 将数据库输出转换为语料库以进行主题建模

我总共有 54892 个文档。从数据库中检索它们后,我应该如何将它们转换为可用于使用 LDA 进行主题建模的语料库?

这是我尝试过的代码:

我参考了这个页面,并注意到该data行的输出data <- NYTimes[sample(1:3100,size=1000,replace=FALSE),]包含一个两列的表以及另一个名为 的表TopicCode,然后将data其转换为术语文档频率矩阵。我不知道如何TopicCode从我从数据库中检索到的两列中得到它?

我在 Python 中尝试过类似的问题,我将数据转换为市场矩阵格式。我想在 R 中使用这个文件进行进一步的计算。我尝试使用读取这个文件b <- readMM(file="PRC.mm"),当我打印时,b我得到了一个336331X88看起来像这样的矩阵:

其中.表示 0。这看起来像一个术语文档矩阵,但我仍然想在 R 中重新制作这种矩阵。我该怎么办?

0 投票
5 回答
9160 浏览

python - 将 scikit-learn 向量化器和词汇表与 gensim 一起使用

我正在尝试使用 gensim 主题模型回收 scikit-learn 矢量化器对象。原因很简单:首先,我已经有大量的矢量化数据;其次,我更喜欢 scikit-learn 矢量化器的界面和灵活性;第三,尽管使用 gensim 进行主题建模非常快,但Dictionary()根据我的经验,计算它的字典 ( ) 相对较慢。

之前已经提出过类似的问题,尤其是这里这里,桥接解决方案是 gensim 的Sparse2Corpus()函数,它将 Scipy 稀疏矩阵转换为 gensim 语料库对象。

但是,这种转换没有利用vocabulary_sklearn 向量化器的属性,它保存了单词和特征 id 之间的映射。这种映射对于打印每个主题的判别词是必要的(id2word在 gensim 主题模型中,描述为“从词 id(整数)到词(字符串)的映射”)。

我知道 gensim 的Dictionary对象比 scikit 的vect.vocabulary_(一个简单的 Python )更复杂(计算速度也更慢dict)......

在 gensim 模型中使用vect.vocabulary_的任何想法?id2word

一些示例代码:

0 投票
0 回答
166 浏览

python - 使用 RPy2 进行主题建模

我希望使用 RPy 在 Python 中使用 LDA。我已经使用gensim包尝试过这个,但我仍然想尝试RPy2一下。

使用 RI 时使用以下代码:

我想将上面的代码转换为 RPy2 的 python 代码。我已经尝试过了:

以下是调试日志:

我应该如何将 R 代码转换为 Python 的 RPy2 代码?请帮忙!

0 投票
0 回答
325 浏览

machine-learning - 关于文本分类的一般问题

我是主题模型、分类等方面的新手……现在我已经在做一个项目并阅读了很多研究论文。我的数据集由人工标记的短消息组成。到目前为止,这是我想出的:

  • 由于我的数据很短,我阅读了有关潜在狄利克雷分配(及其所有变体)的信息,这对于检测文档中的潜在单词很有用。
  • 基于此,我发现了 JGibbLDA http://jgibblda.sourceforge.net的 Java 实现,但是由于我的数据已标记,因此对此进行了改进,称为 JGibbLabeledLDA https://github.com/myleott/JGibbLabeledLDA
  • 在大多数研究论文中,我阅读了关于 Weka 的好评,所以我在我的数据集上搞砸了
  • 然而,我的数据集再次被标记,因此我发现了一个名为 Meka http://sourceforge.net/projects/meka/的 Weka 扩展,它具有多标记数据的实现
  • 阅读多标签数据,我知道最常用的方法,例如一对多和链分类器......

现在我在这里的原因是因为我希望对以下问题有答案:

  1. LDA 是解决我的问题的好方法吗?
  2. LDA 是否应该与分类器(NB、SVM、二元相关性、逻辑回归……)一起使用,或者 LDA 是否“足以”用作新的、看不见的数据的分类器/估计器?
  3. 我需要如何解释来自 JGibbLDA / JGibbLabeledLDA 的输出。我如何从这些文件中获取告诉我哪些单词/标签分配给整个消息(不仅仅是每个单词)的东西
  4. 我如何使用 Weka/Meka 来达到我在上一个问题中想要的(如果 LDA 不是我想要的)

我希望有人,或者不止一个人,可以帮助我弄清楚我需要如何做到这一点。所有的大意都不是这里的问题,我只是不知道如何从文学走向实践。大多数论文都没有对他们如何进行实验给出足够的描述,或者对于我关于这些主题的背景来说过于技术化。

谢谢!

0 投票
1 回答
239 浏览

data-mining - 风暴和停止词

我是storm框架的新手(https://storm.incubator.apache.org/about/integrates.html),我用我的代码在本地测试,我认为如果我删除停用词,它会表现良好,但我搜索行,我看不到任何在风暴中删除停用词的例子。

0 投票
3 回答
3671 浏览

python - 是否有任何用于动态主题模型的高效 python 库,最好是扩展 Gensim?

我正在尝试使用主题模型对 Twitter 流数据进行建模。Gensim 是一个易于使用的解决方案,其简单性令人印象深刻。它对 LSI 有真正的在线实现,但对 LDA 没有。对于 twitter 等不断变化的内容流,动态主题模型是理想的选择。有没有什么办法,甚至是一种破解——一种实现甚至一种策略,我可以使用 Gensim 来达到这个目的?

是否有任何其他 python 实现(最好)从 Gensim 派生或独立?我更喜欢python,因为我想尽快开始,但是如果有一些工作的最佳解决方案,请提及。

谢谢。

0 投票
2 回答
1083 浏览

python - 将 Python 字符串传递给 Mallet 以进行主题建模

我正在使用 BeautifulSoup 构建一个文本语料库,该语料库与一些来自 HTML 的元数据一起收集。如果我可以从 Python 中调用 Mallet,并让它从 Python 字符串而不是目录中的文本文件中建模主题,那将非常有帮助。这样我就可以将 Mallet 定位的 n 个关键字放入每个文件中。

当我运行时,我收到一条消息说 Mallet 已被识别:

但是我在接下来的步骤中没有任何运气,甚至不确定 Mallet 是否接受除了保存的文件之外的任何内容。

我无法找到任何我能真正理解的文档。有人看过可消化的文档吗?(NLTK 书没有进入 Mallet)。我也很乐意学习 Python 中的任何其他主题建模方法,我可以在没有真正深入的 Python 知识的情况下操作这些方法。

抱歉,这是我的第一次牛仔竞技表演。

0 投票
1 回答
738 浏览

lda - sLDA。响应变量可能有多少值?

我试图大致了解 sLDA 的工作原理。与 LDA 相比,它具有“与每个文档相关的响应变量”。每个文档是仅由训练集中的一个主题标记还是可能由多个主题标记?

如果它必须只使用一个主题作为一个文档的标签,是否还有另一个 LDA 模型将训练集中每个文档的多个标签作为输入?如果 sLDA 可能使用多个主题作为标签,是否有任何实现(在 Python、R、C/C++、Matlab 中)用于具有多标签的 sLDA?