去除矩阵中的稀疏性
Removing Sparsity in matrix
removeSparseTerms 中的稀疏度参数有什么作用?
这有效。
TrigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 3, max = 3))
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))
tdm <- DocumentTermMatrix(corpus, control = list(tokenize = TrigramTokenizer))
x <- as.matrix(removeSparseTerms(tdm, 0.99991))
但是,当我更改为
x <- as.matrix(removeSparseTerms(tdm, 0.10))
这不起作用。矩阵returns 一个稀疏矩阵。我理解不正确吗? 0.10参数决定了term必须出现在语料库中至少10%的文档中?
这是因为我的矩阵稀疏吗?
运行语料库returns这个结果
corpus
<<DocumentTermMatrix (documents: 42695, terms: 326740)>>
Non-/sparse entries: 393990/13949770310
Sparsity : 100%
Maximal term length: 97
Weighting : term frequency (tf)
稀疏参数可以帮助您删除那些至少具有一定比例的稀疏元素的项。 (非常)粗略地说,如果要保留 3% 的时间出现的项,请将参数设置为 0.97。如果您想要在 70% 的时间内出现的项,请将参数设置为 0.3。值必须大于 0 且小于 1。
在您的情况下,如果您希望该词出现在至少 10% 的时间内,您需要将稀疏度设置为 0.9。
参见代码示例。
libary(tm)
data("crude")
crude <- as.VCorpus(crude)
crude <- tm_map(crude, stripWhitespace)
crude <- tm_map(crude, removePunctuation)
crude <- tm_map(crude, content_transformer(tolower))
crude <- tm_map(crude, removeWords, stopwords("english"))
crude <- tm_map(crude, stemDocument)
dtm <- DocumentTermMatrix(crude)
sdtm <- removeSparseTerms(dtm, 0.3)
sdtm2 <- removeSparseTerms(dtm, 0.7)
sdtm$ncol
inspect(sdtm) # 4 words returned
sdtm2$ncol
inspect(sdtm2) # 24 words returned
removeSparseTerms 中的稀疏度参数有什么作用?
这有效。
TrigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 3, max = 3))
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 2, max = 2))
tdm <- DocumentTermMatrix(corpus, control = list(tokenize = TrigramTokenizer))
x <- as.matrix(removeSparseTerms(tdm, 0.99991))
但是,当我更改为
x <- as.matrix(removeSparseTerms(tdm, 0.10))
这不起作用。矩阵returns 一个稀疏矩阵。我理解不正确吗? 0.10参数决定了term必须出现在语料库中至少10%的文档中?
这是因为我的矩阵稀疏吗?
运行语料库returns这个结果
corpus
<<DocumentTermMatrix (documents: 42695, terms: 326740)>>
Non-/sparse entries: 393990/13949770310
Sparsity : 100%
Maximal term length: 97
Weighting : term frequency (tf)
稀疏参数可以帮助您删除那些至少具有一定比例的稀疏元素的项。 (非常)粗略地说,如果要保留 3% 的时间出现的项,请将参数设置为 0.97。如果您想要在 70% 的时间内出现的项,请将参数设置为 0.3。值必须大于 0 且小于 1。
在您的情况下,如果您希望该词出现在至少 10% 的时间内,您需要将稀疏度设置为 0.9。
参见代码示例。
libary(tm)
data("crude")
crude <- as.VCorpus(crude)
crude <- tm_map(crude, stripWhitespace)
crude <- tm_map(crude, removePunctuation)
crude <- tm_map(crude, content_transformer(tolower))
crude <- tm_map(crude, removeWords, stopwords("english"))
crude <- tm_map(crude, stemDocument)
dtm <- DocumentTermMatrix(crude)
sdtm <- removeSparseTerms(dtm, 0.3)
sdtm2 <- removeSparseTerms(dtm, 0.7)
sdtm$ncol
inspect(sdtm) # 4 words returned
sdtm2$ncol
inspect(sdtm2) # 24 words returned