首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RWeka删除稀疏项

RWeka删除稀疏项
EN

Stack Overflow用户
提问于 2015-07-19 23:43:15
回答 1查看 316关注 0票数 0

我正在使用RWeka创建一个三元模型和四元模型。我注意到三元组有一个奇怪的行为

代码语言:javascript
复制
TrigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 3, max = 3))
tdm <- TermDocumentMatrix(docs, control = list(tokenize = TrigramTokenizer))

> dim(tdm)
[1] 1540099       3

> tdm
<<TermDocumentMatrix (terms: 1540099, documents: 3)>>
 Non-/sparse entries: 1548629/3071668
 Sparsity           : 66%
 Maximal term length: 180
Weighting          : term frequency (tf)

当我删除稀疏项时,它会将上面的大约100万行缩减为8307行

代码语言:javascript
复制
 > b <- removeSparseTerms(tdm, 0.66) 
 > dim(b)
 [1] 8307    3

因为移除四元组完全不会影响它

代码语言:javascript
复制
 quadgramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 4, max = 4))
  tdm <- TermDocumentMatrix(docs, control = list(tokenize = QuadgramTokenizer))

 <<TermDocumentMatrix (terms: 1427403, documents: 3)>>
 Non-/sparse entries: 1427936/2854273
 Sparsity           : 67%
 Maximal term length: 185
 Weighting          : term frequency (tf)
> dim(tdm)
[1] 1427403       3
> tdm <- removeSparseTerms(tdm, 0.67)
> dim(tdm)
[1] 1427403       3

在删除稀疏术语后有100万个项目。

这看起来不太对劲。

如果我做错了什么,请让我知道

关于Ganesh

EN

回答 1

Stack Overflow用户

发布于 2015-08-11 22:00:32

这很奇怪。一种合乎逻辑的行为是,删除稀疏术语将在这两种情况下删除大量内容,因为三文法和四文法是不太常见的单文法。您的会话中是否有其他QuadgramTokenizer对象?您的原始函数是用一个小的"q“quadgramTokenize调用的。但是我想知道为什么它没有显示一个错误,它可能认为它是空的?我想一定是这么简单的事情。检查一下,如果没有,我将用一个数据样本运行它,看看这里可能出了什么问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31502962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档