2017-05-04 2 views
0

Je suis juste aux prises avec le paquet tm R.association de mots - findAssocs et numérique (0)

probablement une question simple, mais en essayant d'utiliser la fonction findAssocs pour avoir une idée des associations de mots dans mon document insight enquêtes sur les clients et je ne peux pas sembler obtenir findAssocs pour fonctionner correctement.

Quand j'utilise les éléments suivants:

findAssocs(dtm, words, corlimit = 0.30) 
$population 
    numeric(0) 

$migration 
numeric(0) 

Qu'est-ce que cela signifie? Words est un vecteur de caractères de 667 mots - il doit sûrement y avoir des relations corrélatives?

+0

Il semble que «mots» ne contient que les mots «population» et «migration». Ou peut-être que votre 'dtm' contient seulement ces deux mots .. –

Répondre

1

Prenons l'exemple suivant:

library(tm) 
corp <- VCorpus(VectorSource(
      c("hello world", "hello another World ", "and hello yet another world"))) 
tdm <- TermDocumentMatrix(corp) 
inspect(tdm) 
#   Docs 
# Terms  1 2 3 
# and  0 0 1 
# another 0 1 1 
# hello 1 1 1 
# world 1 1 1 
# yet  0 0 1 

Considérons maintenant

findAssocs(x=tdm, terms=c("hello", "yet"), corlimit=.4) 
# $hello 
# numeric(0) 
# 
# $yet 
#  and another 
#  1.0  0.5 

D'après ce que je comprends, findAssocs regarde les corrélations de hello avec tout sauf hello et yet, ainsi que yet avec tout sauf hello et yet. yet et and ont un coefficient de corrélation de 1.0, ce qui est supérieur à la limite inférieure de 0.4. yet figure également dans 50% des documents contenant another - ce qui est aussi supérieur à notre limite de 0,4.

Voici un autre exemple mettant en vedette ceci:

findAssocs(x=tdm, terms=c("yet", "another"), corlimit=0) 
# $yet 
# and 
# 1 
# 
# $another 
# and 
# 0.5 

Notez que hello (et world) ne donnent pas de résultats parce qu'ils sont dans tous les documents. Cela signifie que le terme fréquence a une variance nulle et cor sous le capot donne NA (comme cor(rep(1,3), 1:3), ce qui donne NA plus un avertissement d'écart-type).