0

对于几个 dfms,我将它们转换为 stm/lda/topicmodels 格式没有问题。但是,如果我在转换之前使用 dfm_tfidf() 对 dfms 进行加权,则会收到以下错误:

convert.dfm(users_dfm, to = "stm") 中的错误:无法将非计数 dfm 转换为主题模型格式

知道为什么会这样吗?我已经为术语和文档频率尝试了不同的加权方案(尝试使加权 dfm 成为“计数”dfm),但我不断收到错误消息。

所以,这有效:

users_dfm <- dfm(users_tokens) 
users_stm <- convert(users_dfm, to = "stm")

但这不会:

users_dfm <- dfm(users_tokens)
weighted_dfm <- dfm_tfidf(users_dfm)
users_stm <- convert(weighted_dfm, to = "stm")

谢谢!

4

1 回答 1

0

这是因为主题模型需要计数作为输入,因为这是潜在狄利克雷分配模型的假设统计分布的性质。dfm 的 tf-idf 加权将矩阵转换为非整数值,这对于stm(或任何其他主题模型)来说不是有效的输入。

简而言之,在将 dfm 与主题模型一起使用之前,不要对它进行加权。

您还应该注意,并不严格要求将 dfm 转换为stmstm::stm()格式,因为可以直接将 dfm 对象作为输入。

于 2020-08-28T12:02:09.513 回答