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

廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

R による検索キーワードのネットワーク分析

(追記 10/31)この記事はあまりおもしろくないのでよろしければ
マーケットバスケット分析による検索キーワードのグルーピングと視覚化 - 廿TT
をご覧ください。



前回と同じデータを使ってネットワーク分析。

訪問回数が 2 以上の語句だけを使った。

f:id:abrahamcow:20130707195126p:plain

検索キーワードとして同時に現れる語句(ノード)同士が線(リンク)でつながる。
矢印の向きは検索キーワードの語順。

これを見て、たとえば "r" はいろんな語句とつながっていることがわかる。
"r"、"order" は矢印が両側についてるから、"r order" で検索されることもあるし、"order r" で検索されることもあるんだ、とわかる。
"emアルゴリズム" は "emアルゴリズム" → "(末尾)" や、"emアルゴリズム" → "実装" っていうつながりから、"emアルゴリズム" 単体や "emアルゴリズム 実装" で検索されていたことがわかる。

あまりきれいなやり方じゃないし、訪問回数の情報も使えてないし、結果もだからなんだという感じではあるけど下記が R のコード。

kw <- read.csv(
  "Analytics すべてのウェブサイトのデータ オーガニック検索トラフィック 20130526-20130626.csv"
  ,stringsAsFactors = FALSE
)
#head(kw)
#半角スペースで区切る
kw_l <-strsplit(kw[,1]," ")
m <- max(sapply(kw_l, length))
df1 <- sapply(kw_l, function(x){x[1:m]})
df1 <- t(df1)
#NAを "(末尾)" に置き換えてる
df2 <-replace(df1,is.na(df1), "(末尾)")
#訪問数が 2 以上の語句だけ
df3 <-df2[kw[,2]>1,]
library(igraph)
wng<-graph.data.frame(
  rbind(df3[ ,1:2],df3[ ,2:3], df3[,3:4])
  )
#nihongo()
tkplot(wng)

参考:
統計的テキスト解析(6)~語のネットワーク分析~