r - 包tm。 kmeans 的问题

标签 r statistics cluster-analysis k-means text-mining

我有一个关于 R 中 k-means 聚类的问题。实际上我正在按照这个 article 做所有事情。 。一切都基于 tm 包中的示例,因此不需要导入数据。 acq 包含 50 个文档和原始 20 个文档。

library(tm)
data("acq")
data("crude")
ws <- c(acq, crude)
wsTDM <- Data(TermDocumentMatrix(ws)) #First problem here
wsKMeans <- kmeans(wsTDM, 2)
wsReutersCluster <- c(rep("acq", 50), rep("crude", 20))
cl_agreement(wsKMeans, as.cl_partition(wsReutersCluster), "diag")

Error in lapply(X, FUN, ...) : 
(list) object cannot be coerced to type 'integer'

我实际上想创建交叉协议(protocol)矩阵。但这篇文章是 2008 年写的,自那以后发生了很多变化。数据功能仅在 RSurvey 包中可用,但我有点怀疑它是否相同。我认为主要问题是 TermDocumentMatrix 是 S4 类,现在是 S3 类。我知道只用文字就可以做到这一点。但我想这样做,因为在 TDM 中可以删除停用词、标点符号等以获得更好的结果。因此,如果有人有任何解决方案,那就太好了。

最佳答案

TDM 存储为稀疏矩阵,如 ?TermDocumentMatrix 中所述。这也可以通过检查诸如 str(wsTDM) 之类的对象来看出。旧的 Data() 函数只是一种以常规矩阵形式访问内容的方法。不再需要它了。只需执行 kmeans(wsTDM, 2),您就会看到输出符合预期,并为 70 个特征(文档)的 2775 个观察值(术语)识别出聚类。祝你好运!

关于r - 包tm。 kmeans 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8073106/

相关文章:

r - 更改 RFE 过程中 ROC 计算 (pROC) 的默认参数(插入符号)- R

r - 如何使用数据后面的abline()绘制网格线?

matlab - 特征相似度的成对距离计算(多维矩阵)

R:如何将包提供的方法导出到 PSOCK 集群?

R Shiny Dashboard - 相当于navbarPage?

c - 具有重复答案和错误答案的正态分布计算

python - 如何使用逆 CDF 在 Python 中随机抽样对数正态数据并指定目标百分位数?

r - 方差分析模型中 "+"与 "*"有什么区别?

python - k-means 聚类中 holdout 集的目的是什么?

algorithm - 哪种数据聚类算法适合检测时间序列事件中未知数量的聚类?