在 R 中使用 "TermDocumentMatrix" 和 "Dist" 函数时出错

Error using "TermDocumentMatrix" and "Dist" functions in R

我一直在尝试复制这个例子here:但是我在这个过程中遇到了一些问题。

在此之前一切正常:

docsTDM <- TermDocumentMatrix(docs8)

Error in UseMethod("meta", x) : no applicable method for 'meta' applied to an object of class "character"
In addition: Warning message:
In mclapply(unname(content(x)), termFreq, control) :
all scheduled cores encountered errors in user code

所以我能够通过更改以下内容来修复修改上一步的错误:

docs8 <- tm_map(docs7, tolower)

为此:

docs8 <- tm_map(docs7, content_transformer(tolower))

但后来我又遇到了麻烦:

docsdissim <- dissimilarity(docsTDM, method = "cosine")

Error: could not find function "dissimilarity"

然后得知"dissimilarity"函数被dist函数代替了,于是我做了:

docsdissim <- dist(docsTDM, method = "cosine")

Error in crossprod(x, y)/sqrt(crossprod(x) * crossprod(y)) : non-conformable arrays

这就是我卡住的地方。

顺便说一下,我的 R 版本是:

R version 3.2.2 (2015-08-14) running on CentOS 7

改变

docsdissim <- proxy::dist(docsTDM, method = "cosine")

docsdissim <- dist(as.matrix(docsTDM), method = "cosine")

dist 需要一个数字矩阵、数据框或 "dist" 对象和事件作为输入,虽然 termdocumentmatrix 是一个矩阵,但它需要在这里进行转换。