2016-09-12 10 views
1

多くのつぶやきがテキストとしてあります。特定の単語の後の単語の頻度を数える

特定の単語の後の単語の頻度を知りたいと思います。 たとえば、私はこれらのつぶやきを持っていると私は "愛" 後の周波数を知りたい:この結果を得るために

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

word next word frequency 

Love is   2 
Love was  1 
Love were  1 

または全ての単語

word next word frequency 

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

答えて

2

を与える単語「愛」

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

後に来る単語のテーブルを構築(最初のX秒)、私はループを使用することを避けるためにどのような方法も表示されません。以下の関数は、あなたが望むようにする必要があります。

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

へ以下の手順が役立ちます。

ステップ1(オプション):言葉 "愛" を含む、ベクターのすべてのエントリを取る

ex2 <- example[grep("love",example)] 
:いくつかの例のデータ

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

を作成すると、このベクターは

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

ステップ2のようになります。

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

ステップ3:あなたは、いくつかの単語の組み合わせを扱っているとして、あなたに

is was were 
    2  1  1 
+0

2番目のテーブルを取得するにはどうすればよいですか? –

+0

あなたのコメントを見ました。私は試してみる。 2番目のテーブルを取得する方法。 – Ferdi

関連する問題