【问题标题】:Convert one-document-per-line to Blei's lda-c/dtm format for topic modeling?将每行一个文档转换为 Blei 的 lda-c/dtm 格式以进行主题建模?
【发布时间】:2012-02-03 18:47:50
【问题描述】:

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

有没有人知道可以让我快速转换为这种格式的实用程序?谢谢。

【问题讨论】:

  • 我也遇到过类似的问题,请问您找到解决方法了吗?谢谢。
  • 我还没有实现它,但this Python utility 已发布到主题模型邮件列表中,并且应该获取文本文件并将它们转换为正确的格式。
  • 非常感谢,非常有帮助。

标签: nlp dataform lda


【解决方案1】:

如果您使用的是R,则lda 包包含一个函数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 以进行主题建模具有很大的灵活性。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        lda.utils.dtm2ldac
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-07-15
          • 1970-01-01
          • 1970-01-01
          • 2016-09-24
          • 2016-07-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多