青のプロットを、星の数が少ないレビューとして、オレンジの部分がレビューの数が多いとすると、以下のような分離面が構築できます。図示しやすいように2次元ですが、実際には60000次元と、かなり高次元でスパースなデータになっています。規約でスクレイピング等を得に禁じていないサイトなどで、信用できるレビューをパースします。この時、信用できると判断する条件は、ある程度文章量があること、レビュー表示アルゴリズムで、上位に来ていること、レビューに参考になったなどの付加情報を利用します。レビューを形態素解析して、if-idfでベクトル化する。classificationで分離し、ある程度の精度が出るか確認します機械学習で分離した結果を利用して、その重みを分離に用いた重要な因子としてみなすことができます。データデータの配布は禁止されているので、配布することができません。20161205までに集めた13万件のレビューをもとに、分類を行いました。レビュー内容}のように保存することで、データを管理しています。3は足し合わせても、星5の総数には及びません。そこで、星5と星1,2,3の分離問題として捉えて、分離するようにしました。星の分布@N11000程度の場合XGBoostによる分類XGBoostはランダムフォレスト等と系譜を同じくするディシジョンツリーの機械学習アルゴリズムです。非常に高い精度で分離できるため、2015年からKaggle等で用いられるようになっているようです。errorが4.86%であり、十分、実用に耐えられるレベルで分離できているように見える。liblinear(ロジスティック回帰)による分類-最もシンプルな分類であると思われます。収束も早く、このロジスティック回帰に対してどの程度の性能が出るかで性能を確認したりすることもあります。(14118/15000)94.12%とXGBoostには及ばないけれど、十分に性能が発揮されているように思われます。学習の結果、素性の重要度の解釈が容易なので、ロジスティック回帰の結果のウェイトを確認します。単語一つにつき、一次元というパワープレイをしているので、単語数がたくさんないと正しく学習できないのですが、900,000件もあれば、多分大丈夫です。(注)libsvmとliblinearは、0番目のインデックスは読み込むことができないので、スルーしていますが、本来はこのようなアドホックなことはすべきではありません。ポジティブ、ネガティブの素性モデルの定性的評価ロジスティック回帰は非常に単純な式で表現できるため、特徴量の重要度が分かれば自分で計算することができます。アルファ、ベータに特徴量の重要度が入りますプログラムにしてもわずか数行です。自分で作ったデータセットに対して、予想したとおりの性能を発揮するか確認します。"風邪を引いて頭がとても痛いので家で寝ていたいめう。"冬のボーナスが出たので新年は新しい家族をむかえてハワイに旅行に行く。55大丈夫っぽいですね。日本語の意味しているところを正しく分類しようとすると、次元数が多すぎて分類するの大変で性能がでないのではないかと危惧していた時代もありましたが、意外とかんたんにできるので、応用の範囲は広そうだと感じました。単語のtfidfしか見ていないので、文章構造は無視しているので、これを取ろうとすると、また違った仕組みが必要になります。個人的にはRNNなどで分類するのがちかいと思います。LSTMなどの仕組みが長文を正しく認識できるのか、いまいち自信がないのですが...これをセンチメント分析の分類器として使えないかどうか調べているのですが、微妙にレビューと使っている単語の分布が異なっており、専用のデータ・セットの必要性を感じています。~Excelデータ分析を超えていけ~月別アーカイブ参加グループデザインはてなブログをはじめよう!catindogさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。