将每行一个文档转换为 Blei的 lda-c/dtm 格式以进行主题建模?



我正在进行潜在狄利克雷分析以进行一些研究,并不断遇到问题。大多数lda软件要求文档采用doclines格式,即CSV或其他分隔文件,其中每一行代表文档的整体。然而,Blei的lda-c和动态主题模型软件要求数据的格式为:[M] [term_1]:[count] [term_2]:[count] ... [term_N]:[count],其中[M]是文档中唯一术语的数量,与每个术语相关的[计数]是该术语出现的次数在文档中。注意,[term_1]是对学期它不是一根绳子。

有人知道一个实用程序可以让我快速转换为这种格式吗?非常感谢。

如果使用Rlda包包含一个函数lexicalize,该函数将原始文本转换为lda包所需的lda-c格式。

example <- c("I am the very model of a modern major general",
             "I have a major headache")
corpus <- lexicalize(example, lower=TRUE) 

类似地,topicmodels包有一个函数dtm2ldaformat,它将把文档术语矩阵转换为lda格式。您可以使用tm软件包将纯文本文档转换为文档术语矩阵,也可以在R中使用。

因此,有了这些现有的功能,在将文本输入R进行主题建模方面有很大的灵活性。

马萨诸塞大学阿默斯特分校的Mallet软件包是另一种选择。

  • http://mallet.cs.umass.edu/
  • http://mallet.cs.umass.edu/topics.php

这里有一个关于如何使用Mallet的优秀分步演示:

  • http://programminghistorian.org/lessons/topic-modeling-and-mallet

您可以将mallet与普通文本文件一起用作输入源。

Gensim提供了Blei语料库格式的实现。请参见此处。您可以在Python中基于CSV文件编写一个快速语料库,然后使用gensim将其保存在lda-c中。这不应该太难。

对于Python,有一个可用的函数(在提出问题时可能不可用)。

lda.utils.dtm2ldac

该文件是https://pythonhosted.org/lda/api.html#module-lda.utils

相关内容

  • 没有找到相关文章

最新更新