KEMBAR78
clustering of user | PDF
第6回 さくさくテキストマイニング勉強会


  ツイートから
  ユーザーを
 クラスタリング
   できる?
自己紹介
  早川 敦士
 電気通信大学
システム工学科三年
ブログ
http://d.hatena.ne.jp/gepuro/
      自己紹介
        Twitter
        @gepuro
2011年度 S-PLUS学
  生研究奨励賞の
  (^O^)
     特別賞を
    頂きました!
ある日の事・・・・
本を読んでいて、
   これを
やってみたいなあ
 っと感じた。
これ?
それが
 ユーザーの
クラスタリング
  です。
既に、書き手が
分かっているものを、
   注意
判別していきます。
フォローしている
 ユーザから、
  ツイートを
 適当に取得
ゴミ取り
●@ユーザー名

●RT以降

●ハッシュタグ
クラスター分析で
  書き手を
 分けてみる。
対象のデータ集合を
   分割して,
クラスター分析
 いくつかの集合に
    分ける
?
分割して、分ける?
クラス分類とは、
  違うの?
クラスタリングとクラス分類って違うらしい
http://d.hatena.ne.jp/Kshi_Kshi/20110110/1294687656




クラスタリング:教師なし
クラス分類 :教師あり
クラスタリングは、
 大きく2種類
  あります。
●階層的クラスタリング
●非階層的クラスタリング
●階層的クラスタリング
●非階層的クラスタリング
ユーザーのツイートを
2分割しておいて・・・
文字の
バイグラムを
 使って・・・
文字のバイグラム
●   今日は、さくテキだ!    2文字のセットを
                  作って、
    今-日
                  その出現頻度を
●


●   日-は
                  利用しました。
●   は- 、
●   、 -さ
●   ・・・・・・・
library(RMeCab)
twit <- docNgram("./sep",type=0)
plot( hclust(dist(t(twit)),"ward"))
書き手の判別には、
 2万字以上必要と
言われているけど・・・
多いのは、約3万字
少ないのは、約4500文字

    だった。
感じたこと
 書き手によって、
文章の長さが異なる。
     ⇓
  差が出やすい
相対度数で
見てみるかな
library(RMeCab)
twit <- docNgram("./sep",type=0)
soutai <- t(twit) / rowSums(t(twit))
plot(hclust(dist(soutai),"ward"))
一つ目が合わさる部分で
   見たいけど、
高さの部分で区切るから、
  クラスタリングが
 希望通りにできない。
●階層的クラスタリング
●非階層的クラスタリング
kmeans
今日から使える! みんなのクラスタリング超入門


    kmeans
http://www.slideshare.net/toilet_lunch/ss-7684979

         に分かりやすく書かれています。
出展:今日から使える! みんなのクラスタリング超入門
階層的クラスタリングと
 kmeans
同じコーパスを用いて
上手くできてるかな
kmeans(soutai,centers=13)
answer = c()
for ( i in 1:26){
answer[i] = strsplit(names(rlt),split="_")[[i]][1]
}

ctbl <- table(answer,rlt)
ctbl
クラスタリングを使うと、
書き手の特徴を掴み、
   それぞれを
 分けることができた。
参考
•   Rによるテキストマイニング入門 著:石田 基広
    出版社:森北出版株式会社

•   RとLinuxと・・・ http://rmecab.jp/wiki/index.php?RMeCab

•   今日から使える! みんなのクラスタリング超入門
    http://www.slideshare.net/toilet_lunch/ss-7684979


•
    クラスタリングとクラス分類って違うらしい
    http://d.hatena.ne.jp/Kshi_Kshi/20110110/1294687656
ご清聴
ありがとうございました

clustering of user