2017-10-09 45 views
0

我正在用R中的tm-package创建文档项矩阵,但是我的语料库中的某些单词在某个过程中会丢失。tm包中的DocumentTermMatrix不会返回所有单词

我会用一个例子来解释。然而

dm <- DocumentTermMatrix(crps) 
dm_matrix <- as.matrix(dm) 
dm_matrix 
# Terms 
# Docs and bout class home hours more next night 
# 1 1 1  1 1  1 1 1  2 

,我想(和预期)是:比方说,我有这个小阴茎

library(tm) 
crps <- " more hours to my next class bout to go home and go night night" 
crps <- VCorpus(VectorSource(crps)) 

当我使用DocumentTermMatrix()从TM-包,它会返回这些结果

# Docs and bout class home hours more next night my go to 
# 1 1 1  1 1  1 1 1  2 1 2 1 

为什么DocumentTermMatrix()跳过“my”,“go”和“to”两个字?有没有办法控制和修复这个功能?

+0

我假设你使用'tm'包?什么样的对象是'crps'?你是怎么得到'crps'的?你用'crps < - 语料库(VectorSource(some_text_string))'这样的东西吗? –

+0

是的,我用'crps <-VCorpus(VectorSource(My_text))' –

回答

2

DocumentTermMatrix()自动丢弃小于三个字符的单词。因此,构建文档术语矩阵时不考虑文字to,mygo

在帮助页面?DocumentTermMatrix中,您可以看到有一个可选参数control。这个可选的参数有很多默认值(参见帮助页面?termFreq了解更多细节)。其中一个缺省值是至少三个字符的字长,即wordLengths = c(3, Inf)。你可以改变这个以容纳所有字,而不管字的长度如何:

dm <- DocumentTermMatrix(my_corpus, control = list(wordLengths=c(1, Inf)) 

inspect(dm) 
# <<DocumentTermMatrix (documents: 1, terms: 11)>> 
# Non-/sparse entries: 11/0 
# Sparsity   : 0% 
# Maximal term length: 5 
# Weighting   : term frequency (tf) 
# 
# Terms 
# Docs and bout class go home hours more my next night to 
# 1 1 1  1 2 1  1 1 1 1  2 2