Rでテキストマイニングを試してみる(7)共起ネットワーク
こんにちは。まだまだテキストマイニングを続けることにします。そして、まだまだ梶井基次郎作「檸檬」を題材にします。
共起ネットワークを描いてみる
前回は、共起語を調べてみました。
その結果が表として表示されましたが、もう少し直感的に捉えられたらよいと思いました。
な・な・なんと、共起ネットワークを図示できるではないですか!
ということで描いてみることにします。
その前に、パッケージのインストールが必要になります。
install.packages("igraph",dependencies = TRUE)
それでは、共起ネットワークを描いてみることにします。表示する品詞は、名詞・動詞・形容詞に絞っています。
library(RMeCab)
library(igraph)
result<-NgramDF(file.choose(),type = 1,N = 2,pos = c("名詞","動詞","形容詞"))
g<-graph.data.frame(result,directed = FALSE)
plot(g,vertex.label=V(g)$name,vertex.color="yellow")
実行結果です。
すべての出現語について、つながりを表示してしまったので、大変なことになっています。
共起している頻度が2以上に絞ってみましょう。
library(RMeCab)
library(igraph)
result<-NgramDF(file.choose(),type = 1,N = 2,pos = c("名詞","動詞","形容詞"))
result2<-subset(result,Freq>1)
g<-graph.data.frame(result2,directed = FALSE)
plot(g,vertex.label=V(g)$name,vertex.color="yellow")
どうなったでしょうか。
かなりすっきりしました。
共起ネットワークから不要な語を取り除いてみる
そうすると、よくわからない「す」であるとか、あまり意味をもっていないと思われる「もの」「こと」のような語であるとかが気になりました。
これらの語を除去してみます。
library(RMeCab)
library(igraph)
result<-NgramDF(file.choose(),type = 1,N = 2,pos = c("名詞","動詞","形容詞"))
stopword<-c("の","こと","す","よう","する","さ","もの","れる")
result3<-subset(result,!(Ngram1 %in% stopword) & !(Ngram2 %in% stopword))
result4<-subset(result3,Freq>1)
g<-graph.data.frame(result4,directed = FALSE)
plot(g,vertex.label=V(g)$name,vertex.color="yellow")
実行結果です。
今回は短いのですが、これでおしまいにします。それではまた。
ディスカッション
コメント一覧
まだ、コメントがありません