top of page
  • 執筆者の写真靖宏 河畑

石垣島の5ちゃんでクラスタリング~失敗した~ 前編

以前石垣島の5ちゃんの書き込みを使って感情分析してみました。せっかく前処理したデータがあるので、これを使ってクラスタリングができないか、やってみました。

まず、各書き込みについて、抽出した単語(各書き込み毎に5~20)の1つ1つを単語分散表現でベクトル化します。今回はWord2Vecを使って1つの単語を200次元のベクトルにしました。

でもこのままではKMeansは動きません。この時点では、縦がデータ(書き込み)の数、横(特徴量)が単語の数、奥行きが各単語のベクトル200の多次元配列になっています(エクセルのシートが200枚重なっているイメージ)。それから、書き込みによって単語の数が異なるため、特徴量つまり横の長さがまちまち。

これを、以下のようにして処理しました。

各単語がベクトルになっているので、足し算が可能です。

ネガティブな単語+ネガティブな単語=ネガティブな何か

ポジティブ+ポジティブ=ポジティブな何か

ネガティブ+ポジティブ=ニュートラルな(あるいはそれに近い)何か

になると考えられます。

そこで、各書き込みについて、単語ベクトルを全部足しました。このままでは奥行きが200と深い特徴量が1個できるだけなので、これを転置し、縦が書き込みの数、横が200個の特徴量の1枚のエクセルのシートみたいな形に整えました。

これを標準化して準備完了。クラスタリング(KMeans)した結果は、

cluster

0 207

1 46

2 608

となり、osetiで感情分析した時のポジティブ、ネガティブ、ニュートラルの数とだいぶ異なっています。


osetiのグラフをみるとネガティブと判定したものは-1.00あたりが200をちょい割る程度。これに0未満のものを足すと200を少し超える程度で、今回のcluster0がネガティブと仮定するとほぼ合致します。

次回に続く...

閲覧数:1回0件のコメント

最新記事

すべて表示

Comments


bottom of page