3

我的术语文档矩阵采用 numpy 矩阵格式,并且我有一个字典来表示术语文档矩阵的。

有什么方法可以轻松地将这两个传递到 Gensim 的 LDA 模型中?

tdMatrix = np.load('tdmatrix.npy')
dictionary = cPickle.load(open('dictionary.p', 'r')) # stores term represented by each column

我可以以某种方式将其传递给 gensim.models.ldamodel.LDA 吗?

4

3 回答 3

2

要将 2D numpy(甚至scipy.sparse.csc)数组视为 gensim 语料库,请使用内置matutils.Scipy2Corpus函数。

于 2014-12-09T12:12:32.050 回答
1

我相信 Gensim 使用几乎相同的结构来表示一袋单词语料库,但我认为默认字典或 numpy 数组不兼容。Gensim 的 API 列出了一些可以适应各种格式的“语料库阅读器”,但这些似乎是为从其他工具包导入数据而构建的。因此,在您的情况下,最简单的解决方案可能是使用矩阵和字典作为分隔字符串的列表来重建文档。然后将您的列表转换为 Gensim 的词库,最后转换为 LDA,如教程中所示。

这种方法还有一个额外的好处,即您可以应用 Gensim 的预处理功能并过滤低频/高频词。

于 2014-12-03T00:25:31.677 回答
0

给定一个带有每行文档向量的 numpy,只需使用:

corpus = gensim.matutils.Dense2Corpus(array)
于 2021-11-13T10:37:50.240 回答