R:将文档术语计数的数据框转换为文档术语矩阵(dtm)

R: Cast data frame of document term counts into a document term matrix (dtm)

我已经有一个文档术语计数级别的数据框,注意到文档和术语只是由整数索引,分数是加权连续数字,如果相关的话,例如:

doc  term  count
1    2     2
1    5     3.1
2    2     0.4
3    5     5.9

但它目前是一个数据框,我想将其转换为 dtm 格式,以便使用一些 dtm-ready 函数(即 RNewsflow 的 "documents.compare" 函数)。

我一直在尝试通过以下方式使用 "cast_dtm":

dtm <- as.matrix(df) %>% cast_dtm(document, term, count)

其中 "df" 是上面示例的数据框,但我收到以下错误:

Error in UseMethod("ungroup") : no applicable method for 'ungroup' applied to an object of class "c('matrix', 'double', 'numeric')"

你快到了。而不是 "document" 你需要 "doc" 作为输入,因为你的列名是 doc 而不是 document。请参阅下面的示例。

library(tidytext)
library(dplyr)
dtm <- df %>% cast_dtm(document = doc, term = term, value = count)

数据:

df <- structure(
  list(
    doc = c(1L, 1L, 2L, 3L),
    term = c(2L, 5L, 2L,5L),
    count = c(2, 3.1, 0.4, 5.9)),
  .Names = c("doc", "term", "count"),
  class = "data.frame",
  row.names = c(NA,-4L)
)