2017-10-09 10 views
0

Je crée une matrice de terme de document avec le paquet tm dans R, mais certains des mots de mon corpus se perdent quelque part dans le processus.DocumentTermMatrix dans le paquet tm ne retourne pas tous les mots

Je vais expliquer avec un exemple. Disons que j'ai ce petit corpus

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

Lorsque j'utilise DocumentTermMatrix() du tm-paquet, il retournera ces résultats:

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 

Cependant, ce que je veux (et attendu) est:

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

Pourquoi DocumentTermMatrix() ignore les mots "mon", "aller" et "à"? Existe-t-il un moyen de contrôler et de réparer cette fonction?

+0

Je suppose que vous utilisez le paquet 'tm'? Quel genre d'objet est 'crps'? Comment avez-vous obtenu 'crps'? Avez-vous utilisé quelque chose comme 'crps <- Corpus (VectorSource (some_text_string))'? –

+0

Oui j'ai utilisé 'crps <-VCorpus (VectorSource (My_text))' –

Répondre

2

DocumentTermMatrix() supprime automatiquement les mots de moins de trois caractères. Par conséquent, les mots to, my et go ne sont pas pris en compte lors de la construction de la matrice de terme de document. À partir de la page d'aide ?DocumentTermMatrix, vous pouvez voir qu'il existe un argument optionnel appelé control. Cet argument optionnel a un certain nombre de valeurs par défaut pour de nombreuses choses (voir la page d'aide ?termFreq pour plus de détails). L'une de ces valeurs par défaut est une longueur de mot d'au moins trois caractères, c'est-à-dire wordLengths = c(3, Inf). Vous pouvez modifier ceci pour tenir compte de tous les mots, indépendamment de la longueur des mots:

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