こんにちは、樋口です。書き込みありがとうございます。
今回は、頻出語を用いて文書のクラスター分析を行い、デンドログラムを描画
する方法ですね。
「ツール」→「抽出語」→「対応分析」コマンドで、「集計単位」としてクラ
スター分析を行いたい単位を選択します。また「差異が顕著な語を分析に使用」
のチェックは外しておいた方が良いでしょう。あとは「OK」をクリックして対
応分析を実行します。
次に、下記スライドの5枚目の手順まで進め、R上で対応分析を実行します。
http://www.slideshare.net/khcoder/r1kh-coder
そして、以下のコマンドをRで実行してください。
# 今回は同じ対応分析でも、「ツール」→「抽出語」→「対応分析」コマンド
# を使用しています。前回は「コーディング」メニューでしたが今回は「抽出
# 語」メニューの対応分析なので、コマンド内容が異なっており、Rに入力す
# べきコマンドも以下のように変わります。
#---------------------------------------------------------------------
# クラスター分析
library(amap)
std <- d
for (i in 1:nrow(std)){
std[i,] <- std[i,] / doc_length_mtr[i,2] * 1000
}
cluster <- hcluster( std, method="euclid", link="ward")
# プロット
par( mai=c(0,0,0,0), mar=c(1,2,1,0), omi=c(0,0,0,0), oma=c(0,0,0,0) )
plot(cluster,ann=0,hang=-1)
#---------------------------------------------------------------------
今回は「1000語あたり」の出現回数(調整頻度)を計算しています。「std」
と入力して「エンター」キーを押すと、この調整頻度を確認できます。
なお上記のコマンドでは、出現数の多い語ほど、クラスター化の結果に大きな
影響を及ぼす形になっています。例えば、語Aがある文書に(1000語あたり)5
00回、別の文書に(1000語あたり)300回出現している場合、その差200が計算
に組み込まれます。それに対して語Bがある文書には(1000語あたり)5回、別
の文書には1回出現している場合、その差4が計算に用いられます。この結果と
して、語Aの影響の方が格段に大きくなります。
これを修正して、どの語の影響も等しくするためには「culster <- 」で始ま
る行を以下のように修正してください。「std」に含まれる調整頻度を、「sca
le」コマンドで語ごとに標準化しています。
#---------------------------------------------------------------------
cluster <- hcluster( scale(std), method="euclid", link="ward")
#---------------------------------------------------------------------
前回はこのことに触れなかったのですが、前回の分析に関しても、この修正を
同様に適用できます。なお、この修正を行うかどうかは、分析の考え方次第か
と存じます。多く出てきた語が強い影響を及ぼすのは当然と見るか、(低頻度
の語にこそ特徴が出るから?)低頻度語の変化も同等に考慮したいと考えるか、
です。
どうぞよろしくお願いいたします。