【问题标题】:how to convert a matrix to BoW format?如何将矩阵转换为 BoW 格式?
【发布时间】:2022-12-16 21:29:40
【问题描述】:

我正在尝试将矩阵转换为 gensim 可以接收的类型。 AuthorTopic 模型,这意味着我应该将矩阵转换为稀疏向量。我已经在 gensim 中尝试过几个函数,比如 gensim.matutils.full2sparse 和 gensim.matutils.any2sparse。但是有一点不对劲:

我的代码:

matrix=numpy.array([[1,0 ,1],[0,1,1]])
mycorpus=any2sparse(matrix)
print(matrix)
print(mycorpus)

输出:

[[1 0 1]
 [0 1 1]]

[(0, 1.0), (0, 1.0), (1, 0.0), (1, 0.0)] #mycorpus

根据教程,语料库应该是这样的:

[[(0,1),(2,1)]
 [(1,1),(2,1)]]

我不知道出了什么问题。如果有人能给我一些建议,我真的很感激。

【问题讨论】:

    标签: gensim corpus sparse-vector


    【解决方案1】:

    Gensim AuthorTopicModel docs 将其所需的语料库格式描述为可迭代的(int,float)列表.

    这些 int 值将是单词 ID,理想情况下伴随着 id2word 字典,它标识哪个 int 表示哪个单词。

    你的矩阵的来源是什么,你知道它是代表单词的行还是列,并且有索引到单词的映射?这将推动转换。

    此外,正如文档所述,“该模型与LdaModel密切相关。AuthorTopicModel类继承LdaModel,因此其用法相似。

    您是否查看了 Gensim LDA 使用指南以了解他们如何准备语料库,例如多个Usage Examples,看看是否有助于建议步骤和必要的格式?

    或者,您的语料库是否仍然可以作为文本使用,因此您可以直接使用那里的示例作为模型将文本转换为 BoW 格式(而不是您已经处理过的矩阵)?

    如果你仍然有问题,你应该用更多的细节来扩展你的问题文本,尤其是你所拥有的真正的语料库矩阵是如何创建的,以及你遇到了哪些错误(以及你是如何触发它们的)让你相信事情不是这样的'工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多