« 2005年09月07日 | メイン | 2005年09月09日 »
2005年09月08日
Text Classification with CEEK.JP NEWS

総合演習(情報特別演習)では、自然言語処理を勉強しています。自然言語処理に興味はあったけど、何から手をつけてよいかわからなかったので、今年は、イロハを知ることを目的に勉強中。
とりあえずの成果として Text Classification with CEEK.JP NEWS を作ったので公開します。成果というよりは、途中経過ですな。
CEEK.JP NEWS の 2005年8月 の記事データを基に、テキストの分類を行います。対応しているカテゴリーは、社会、政治、国際、経済、電脳、スポーツ、エンターテイメントの7つです。
ニュース記事を基にしているので、ニュースの方が分類が上手くいくと思います。また、特定の新聞社に絞らずに、ニュース検索 CEEK.JP NEWS のカテゴリーデータで学習しているので、少々精度が悪いような気もしますが。
分類が困難なニュース記事を分類するために開発しています。
ナイーブベイズ(Naive Bayes)分類法を用いており、2005年7月の記事でテストしたところ 81.5% の精度を示しました(統計的期待値は 14.3% / 求める精度は 90%)。スポーツ(96.5%)、エンターテイメント(90.2%)、は高い精度を示しましたが、政治(62.8%)、社会(70.4%)の精度はよろしくありません。
ナイーブベイズを用いています。計算方法も、教科書的な手法だと思います。各分野の精度について、コンフュージョン・マトリックスも作成しました。政治の分野の記事をの分類を試みたとき、正しく分類される記事は 62.8% で、間違えて 国際 に分類してしまう記事は 17.1% 存在するということがわかります。
人間がどれだけの精度で分類できるかも試した方が良いかもしれません。ニュース記事は、編集者(専門家)が分類しているので、一般人(凡人)が分類するとどうなるのかと。被験者を募集しようかな。
ということで、ぜひお試しあれ。
Perl + MySQL + SpeedyCGI で実装しています。トークン(単語)抽出は、形態素解析器を使わずに、単純に 同一種の文字の連続 をトークンとして扱うことにしました。そうすることによって、未知語への対応も容易になっていますが、ひらがなを無視することになります。ちなみに、トークンの抽出方法を変更しても 3% ほどしか精度に影響はありませんでした。
Naive Bayes のサンプルソースがあまり見つからなかったので、ソースコードは公開予定です。モジュール(オブジェクト)化してから公開します。 Perl と MySQL が入っていれば、簡単に使えるようなのを。ナイーブベイズで色々やりたい方の役に立てればな。と。
次は、スパムフィルタ(メール or ブログ)にチャレンジしつつ、クラスタリング(学習無し)の勉強を行います。
【関連記事】
・総合演習 (2005年07月05日)
【関連情報】
・Text Classification with CEEK.JP NEWS
http://labs.ceek.jp/classify/
・CEEK.JP NEWS
http://news.ceek.jp/
23:38 | コメント (11) | トラックバック | Development
学食は毎日がサービスデー
台風がどっかに行った。ということで、昨日(7日)の食事内容です。
朝は、やはりパンを食べる。パンの生活に飽きてきたので、コーンフレークでも買ってくるかな。
昼は、三学の学食でラーメンを食べた。なにやら、毎日がサービスデーということで、水曜日は、麺類にシュウマイが付いてくるみたいだ。得した。いつもどおり、漬物も頂いておく。
夜は、松屋にこっそりと。風が強い。
あー。毎日同じものを食べてるのに、毎回違う文章を考えるのは大変orz
自宅 (朝)
レーズンバターロール
三学食堂 (昼)
みそラーメン
松屋 (夜)
豚焼肉定食