3.3 階層的クラスタリング

「3.3.2 フィード中の単語を数える」は省略。
tmパッケージあたりを使えば良さそうですが。
Rを使ったテキストマイニングについていえば、近々本も出版されるみたいです。

Rによるテキストマイニング入門

Rによるテキストマイニング入門

JIN'S PAGEの2008年3月以降をまとめた物でしょうか。

それと個人的には「階層*型*クラスタリング」の方がなじみのある訳語なので、ここではそう書きます。

まずはブログのデータを抽出したデータセットをダウンロードしてきます。
http://kiwitobes.com/clusters/blogdata.txt
このblogdata.txtをRのワーキングディレクトリに入れます。
このデータセットはタブ区切りなのでread.delim関数でそのまま読めます。

blogdata <- read.delim("blogdata.txt")
ncol(blogdata)
# [1] 707
nrow(blogdata)
# [1] 99

このデータセットのサイズは99行(ブログの数)×707列(単語の数)ということです。

続けて、ピアソンの積率相関係数に基づいてブログ間の距離(非類似度)行列を算出します。
1列目にはブログ名が入っているのでこれは除きます。

# データセットを転置する
blogdata2 <- (t(blogdata[,-1]))
colnames(blogdata2) <- blogdata[,1]
# 距離行列を算出する
blog.dist <- as.dist(1-cor(blogdata2))

そして、クラスタリングします。本文を読む限り、群平均法を採用しているようです。

blog.hc <- hclust(blog.dist, "average")