0

我有一个名为 train_dtm 的 DocumentTermMatrix,我想标准化所有文档中术语频率的频率计数。我面临的问题是生成的矩阵也应该是 DocumentTermMatrix 类型,因为我想将标准化矩阵传递给 R 中 TopicModels 包的另一个方法 LDA。

以下是我正在使用的方法:

docs_dtm <- DocumentTermMatrix(docs)

现在,我希望对上述 documenttermmatrix 的行进行规范化。我什至尝试通过添加控制参数

docs_dtm <- DocumentTermMatrix(docs, control=list(weighting = function(x) weightTf(x, normalize=TRUE)))

但是上面的调用会抛出一个错误说

Error in weightTf(x, normalize=TRUE): unused argument (normalize = TRUE)

我已经编写了使用 apply() 方法规范化 train_dtm 值的方法,但它不返回 DocumentTermMatrix 类型的矩阵。

还有其他方法可以完成上述任务吗?

4

2 回答 2

0

您能否尝试直接传递 weighting 参数,例如:

docs_dtm <- DocumentTermMatrix(docs, control = list(weighting = weightTf, normalize = TRUE))
于 2015-06-12T13:41:32.337 回答
0

创建 dtm 后标准化:

docs_dtm_norm <- t(apply(docs_dtm, 1, function(x) x/sqrt(sum(x^2))))
于 2018-12-04T15:09:49.443 回答