Upload
jubatusofficial
View
1.805
Download
0
Embed Size (px)
Citation preview
Jubatus Hackathon 2016.11.12発言小町からのプロファイリング
分析目的 発言小町を発言者カットで見てみて発言者のペルソナを分析してみたい 可能であれば発言者のペルソナの時間軸上での変遷を見てみたい
入力データ 発言小町
User ID User Name Date Title Url Topic Id Group Message Votes
Responses Face n_response n_favorite
発言小町からとってきたデータ とりあえず、約 10,500件
k-Meansによるクラスターの頻度分布6 48.781542 22.201863 13.489330 7.7097267 3.4936381 2.7927545 1.520384 0.010783
クラスターの解釈クラスター番号 6 2 3 4の 1.19 4.78 2.77 4.72こと 0.71 1.22 1.45 5.66私 0.66 1.27 5.31 2.79よう 0.58 1.19 1.09 1.99方 0.53 0.80 0.65 0.85ない 0.46 0.97 1.00 1.37人 0.38 0.80 1.17 1.48何 0.30 0.55 0.67 0.76ん 0.29 0.45 0.68 0.60
分析設計 発言小町のデータのMessageから Bag of wordsを作成 Bag of wordsを元にクラスタリング User IDごとに各発言の分類されたクラスタ IDを集計 クラスタごとの合計を総発言数で除してスコアを作成 これをそのユーザのペルソナとする
データ加工 文章をMeCabで形態素解析して単語を抽出
単語は品詞として名詞、形容詞、副詞を分析対象とする MeCabで特殊扱いされている *を表層とするものは解析対象から外す 同様にが、の、に、をのような単語も分析対象としない
形態素解析後 30000変数ぐらい
変数数を削減 出現頻度のあまりにも少なすぎる変数や外れ値と考えられる記号などが単独で抽出された変数を削除するなどクレンジングを実施 削減後 7000位に
クラスタリング Jubatusでクラスタリングを実施する クラスタリング手法としては
DBSCAN(Density-Based Spatial Clustering Applications with Noise)を使用する
本データの場合、クラスタ数が不明、加えてクラスタとして超球面を仮定するのは妥当ではないため、k-Means法の使用は妥当ではない
Jubatusに入れてみるテスト jubaclustering --configpath
/opt/jubatus/share/jubatus/example/config/clustering/dbscan.json ハイパーパラメータは Exampleそのもので df = jubaClient.push(batch) res = jubaClient.get_core_members()
Error! msgpackrpc.error.RPCError: b'clustering is not performed yet‘
What?
Use the source, Luke! Jubatus coreのソース読む get_clusters綾しい If (clusters.empty()) {
throw JUBATUS_EXCEPTION(not_performed());
} なぜに空っぽ!ガンガンガン ! ドキュメントがあるわけでもな
く謎
ハイパーパラメータを洗ってみる eps : 2.0, min_core_point : 3 Density-Based Spatial Clustering
Applications with Noise EpsとMinPtsの二つのハイパーパラメータ とりあえず怪しくなさそう困った