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

时间:2012-01-05 22:53:27

标签: nlp dataform lda

我正在进行一些研究的Latent Dirichlet分析并继续遇到问题。大多数lda软件要求文档采用doclines格式,即CSV或其他分隔文件,其中每行代表文档的整体。但是,Blei's lda-c和动态主题模型软件要求数据采用以下格式:[M] [term_1]:[count] [term_2]:[count] ... [term_N]:[count]其中[M]是文档中唯一字词的数量,以及与每个字词相关联的[count]是该术语出现的次数 在文件中。请注意,[term_1]是一个对其进行索引的整数 术语;它不是一个字符串。

是否有人知道可以让我快速转换为此格式的实用程序?谢谢。

4 个答案:

答案 0 :(得分:4)

如果您使用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进行主题建模。

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

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

您可以将槌只使用普通文本文件作为输入源。

答案 3 :(得分:0)

对于Python,有一个可用的功能(可能在问题时不可用)。

lda.utils.dtm2ldac

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