読者です 読者をやめる 読者になる 読者になる

共起ネットワークを作る

 今回は、単語の頻度を用いた共起ネットワークを描きます。分析データは、RMeCabを使う (1) という記事で使ったAbe.txtとします。以下の例では、テクストに現れる名詞のみを対象とし、共起頻度が2以上のパターンのみを描画しています。*1

# パッケージの読み込み
library(RMeCab)
library(igraph)
# 分析データの読み込み
targetText <- "C:/PM/Abe.txt"
# 名詞のみを使用
result <- NgramDF(targetText, type = 1, N = 2, pos = "名詞")
# 共起頻度2以上のパターンのみを抽出
result.2 <- subset(result, Freq > 1)
# グラフ形式に変換
g <- graph.data.frame(result.2, directed = FALSE)
# 描画
plot(g, vertex.label = V(g)$name)

 上記のスクリプトを実行すると、以下のようなネットワーク図(無向グラフ)が作成されます。

f:id:langstat:20140907081203p:plain

 また、共起頻度が3以上のパターンのみを描画するには、以下のようにします。

# 共起頻度3以上のパターンのみを抽出
result.3 <- subset(result, Freq > 2)
# グラフ形式に変換
g.2 <- graph.data.frame(result.3, directed = FALSE)
# 描画
plot(g.2, vertex.label = V(g.2)$name)

 上記のスクリプトを実行すると、以下のようなネットワーク図が作成されます。

f:id:langstat:20140907081216p:plain

*1:Macでは、日本語をプロットするための設定を事前に行う必要があります。詳しくは、こちらの記事を参考にしてください。