2016-09-12 5 views
1

Ich habe viele Tweets als Text.zählen die Häufigkeit der Wörter nach einem bestimmten Wort

Ich möchte die Häufigkeit der Wörter nach einem bestimmten Wort wissen. Zum Beispiel habe ich diese Tweets und ich möchte die Frequenz nach "Liebe" wissen:

My love is... 
My love is... 
the love was... 
the love were... 

dieses Ergebnis zu erhalten:

word next word frequency 

Love is   2 
Love was  1 
Love were  1 

oder zu allen Wörtern

word next word frequency 

My  Love  2 
the  love  2 
Love is   2 
Love was  1 
Love were  1 

Antwort

2

gibt Ihnen kommt Wie Sie mit mehreren Wortkombinationen handelt (erste X zweite), Ich sehe keine Möglichkeit, eine Schleife zu vermeiden. Die folgende Funktion sollte tun, was Sie wollen:

phrase <- c("My love is... ","My love is...","A love was...","the dogs were...") 
SPLIT <- matrix(unlist(strsplit(phrase," ")),nrow=length(phrase),byrow=T) 
vect <- as.data.frame(cbind(unique(expand.grid(SPLIT[,1],SPLIT[,2])),freq=NA)) 
to.find <- paste(vect[,1],vect[,2],sep=" ") 
for (i in 1:length(to.find)) { 
vect[i,3] <- length(grep(to.find[i],phrase))} 
vect <- subset(vect,freq>0) 
vect 

vect 
    Var1 Var2 freq 
1 My love 2 
3  A love 1 
16 the dogs 1 
2

Das folgende Verfahren könnte helfen.

Schritt 1 (optional): Erstellen einige Beispieldaten

example <- c("my love is","my love is","banana","apple","the love was","the love were") 

Dieser Vektor sieht aus wie

"my love is" "my love is" "banana"  "apple"   "the love was" "the love were" 

Schritt 2: Betrachtet man alle Einträge des Vektors, die das Wort "Liebe"

ex2 <- example[grep("love",example)] 
umfassen

was gibt Ihnen

"my love is" "my love is" "the love was" "the love were" 

Schritt 3: einen Tisch des Wortes Constructing, die nach dem Wort „Liebe“

ex3 <- table(gsub(".*love","",ex2)) 

die

is was were 
    2  1  1 
+0

Wie bekomme ich die zweite Tabelle? –

+0

Ich habe Ihren Kommentar gesehen. Ich versuche es einfach. Wie bekomme ich die zweite Tabelle? – Ferdi

Verwandte Themen