1

编辑:这是工作区中的对象发生冲突并导致意外行为的问题。

我正在尝试使用以下代码从文档创建 DocumentTermMatrix。该文档包含许多 1 和 2 字符标记。但是,即使将最小字长设置为 1 个字符,生成的矩阵也包含 699 个文档和 0 个术语。

library(tm)
data <- read.csv("http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data",header=FALSE)
data <- data[-1]

training_data <- as.vector(apply(as.matrix(data, mode="character"),1,paste,collapse=" "))
corpus <- Corpus(VectorSource(training_data))

matrix <- DocumentTermMatrix(corpus,control=list(wordLengths=c(1,Inf)))

尽管数据中有许多 1 和 2 字符标记,但任何人都可以解释为什么没有创建标记?这是一个示例数据条目:

" 4  8  8  5  4 5 10  4  1 4"
4

1 回答 1

4

我在 Windows 7 机器上运行了您在最新版本的 R 和 tm 中提供给我的内容,并产生了您正在寻找的结果(见下文)。我会尝试清除您的工作区,退出 R 和/或重新启动。

> library(tm)
> data <- read.csv("http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data",header=FALSE)
> data <- data[-1]
> 
> training_data <- as.vector(apply(as.matrix(data, mode="character"),1,paste,collapse=" "))
> corpus <- Corpus(VectorSource(training_data))
> 
> matrix <- DocumentTermMatrix(corpus,control=list(wordLengths=c(1,Inf)))
> matrix
A document-term matrix (699 documents, 11 terms)

Non-/sparse entries: 2899/4790
Sparsity           : 62%
Maximal term length: 2 
Weighting          : term frequency (tf)
于 2012-02-09T06:53:57.187 回答