在 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 是一个矩阵,但它需要在这里进行转换。
我一直在尝试复制这个例子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 是一个矩阵,但它需要在这里进行转换。