[掲示板へもどる]
一括表示

  [No.1160] 共起ネットワーク 投稿者:袋井  投稿日:2012/10/20(Sat) 17:39:59

樋口先生さま

お世話になります、袋井と申します。
いつも、分かりやすくご教示いただき、ありがとうございます。

共起ネットワークについてお聞きしたいことが出てきました。
よろしくお願いします。


−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Q1:

共起ネットワークを作成する場合に、私は、以下の手順で行います。

・先ず、抽出語全体から頻出語を選んで全体俯瞰
・次に、着目する抽出語について部分詳細


後者の場合には、以下の二通りの方法が考えられると思います。

(1)【抽出語】−【関連語検索】−【共起ネットワーク】

(2)【部分テキストの取り出し】で、着目する抽出語ごとのファイルを個別作成し、
  これを用いて、プロジェクトの新規作成、
  【抽出語】−【共起ネットワーク】


私は(2)を使います。

(1)の計算手順を理解していますが、
(1)と(2)との使い分けについて、ご助言があればいただきたいと思います。


−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Q2:

[No.901] Re: 共起ネットワークにおける中心性の値とサブグラフ検出結果
において、ネットワーク指標のファイル出力のコードを教えていただきました。

大変に重宝しております。

新バージョンでRandam walks をサポートしていただきましたので、
これも取り込んだ形で上記ファイル出力をしたいと思い、自分でコードを作成しましたが、
うまくいきません。

お手数ですが、コードを教えていただけないでしょうか。

よろしくお願いいたします。


−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−


  [No.1163] Re: 特定の語に注目して、関連語のネットワークを描く方法 投稿者:HIGUCHI Koichi  投稿日:2012/10/24(Wed) 00:42:15

こんにちは、樋口です。書き込みありがとうございます。

お返事遅れておりますが、順次対応いたしますので、しばしお待ち下さい。

まずは、特定の語に注目して、関連語のネットワークを描く方法についてです
ね。

> (1)【抽出語】−【関連語検索】−【共起ネットワーク】
>
> (2)【部分テキストの取り出し】で、着目する抽出語ごとのファイルを個別作成し、
>   これを用いて、プロジェクトの新規作成、
>   【抽出語】−【共起ネットワーク】

共起の計算については、いずれの場合も、注目語が出現している文書だけが使
用されます。

異なるのはネットワーク描画に用いる語の選択です。(2)の場合、注目語が出
現している文書群に、単に多く出現している語が選択されます。それに対して
(1)の場合、データ全体と比較して、注目語が出現している文書群に特に多く
出現している抽出語が選択されます。(1)の場合、デフォルトでは、語の選択
にはJaccard係数が用いられます。

そうしたことですので、注目語の特徴を見る際に、「データ全体と比較しての
特徴」を見たい場合には(1)が適しているでしょう。それに対して(2)では、
「データ全体との比較」は脇に置いて、注目語の周辺を見ることになります。
使い分けに際しては、この点でお選びいただくことになりましょう。

※なお(1)の手順でも、【関連語探索】画面で「ソート:」を「Jaccard」から
「共起」に変更すると、おおむね(2)と同じ結果になろうかと思います。


  [No.1164] Re: 中心性・コミュニティ検出結果を出力するRコード 投稿者:HIGUCHI Koichi  投稿日:2012/10/24(Wed) 01:02:59

こんにちは、樋口です。それぞれの語の中心性やコミュニティ検出結果をまと
めるRのコードは以下のようになります。共起ネットワークを「R Source」形
式で保存し、Rで実行してから、以下のRコードを実行して下さい。

#---------------------------------------------------------------------
# コミュニティ検出(betweenness)
com_b <- edge.betweenness.community(n2, directed=F)
com_b <- community.to.membership(
n2, com$merges, merge_step(n2,com_b$merges)
)

# コミュニティ検出(modularity)
com_m <- fastgreedy.community(n2, merges=TRUE, modularity=TRUE)
com_m <- community.to.membership(
n2, com_m$merges, merge_step(n2,com_m$merges)
)

# コミュニティ検出(random walks)
com_r <- walktrap.community(

n2,

weights=get.edge.attribute(n2, "weight")
)

# 1つのデータフレームにまとめる
cnt <- data.frame(
words = colnames(d)[
as.numeric( get.vertex.attribute(n2,"name") )
],
degree = degree(n2),
betweenness = betweenness(n2),
evcent = evcent(n2)$vector,
community_betweenness = as.character(com_b$membership),
community_modularity = as.character(com_m$membership),
community_randomwalks = as.character(com_r$membership)
)

print(cnt)
#---------------------------------------------------------------------


  [No.1166] Re: 中心性・コミュニティ検出結果を出力するRコード 投稿者:袋井  投稿日:2012/10/25(Thu) 20:33:58

樋口先生さま

お世話になります、袋井と申します。

特定の語に注目して関連語のネットワークを描く方法については、
2種類の特徴と使い方を、分かりやすくご説明をいただきまして、誠にありがとうございます。

おかげさまでスッキリしました。

また、中心性・コミュニティ検出結果を出力するRコードについても教えていただき、大変に助かりました。


心より御礼を申しあげます。