让我们进行一些文本挖掘
这里我有一个文档术语矩阵(来自tm
软件包)
dtm <- TermDocumentMatrix(
myCorpus,
control = list(
weight = weightTfIdf,
tolower=TRUE,
removeNumbers = TRUE,
minWordLength = 2,
removePunctuation = TRUE,
stopwords=stopwords("german")
))
当我执行一个
typeof(dtm)
我看到这是一个“列表”,结构看起来像这样:
。
Docs
Terms 1 2 ...
lorem 0 0 ...
ipsum 0 0 ...
... .......
所以我尝试了一个 <\p>
wordMatrix = as.data.frame( t(as.matrix( dtm )) )
这对于1000个文档是可行的。
但当我尝试使用40000个文档时,就不再行得通了。
我会收到如下错误:
Fehler in vector(typeof(x$v), nr * nc) : Vektorgröße kann nicht NA sein
Zusätzlich: Warnmeldung:
In nr * nc : NAs durch Ganzzahlüberlauf erzeugt
向量中出现错误...:向量不能是NA 附加信息: 在nr * nc中,由于整数溢出而创建了N个NA
所以我查看了as.matrix,发现该函数会将其转换为一个向量,然后再转换为矩阵。转换为向量可以正常工作,但是从向量到矩阵的转换却不行。
您有什么建议吗?
谢谢,船长
tm::removeSparseTerms
函数来删除稀疏项。 - BenDocumentTermMatrix(..., control(... bounds=list(global = c(N,Inf))))
,并将 N 设置为例如 2、3、4... 直到大小足够小。 - smci