かんちゃんの備忘録

プログラミングや言語処理、ガジェットなど個人の備忘録です。(メモ書き+α)

NaiveBayse、SVMによる文書分類を試す

NaiveBayesによる文書分類、SVMによる文書分類を試しました。




NaiveBayse, SVMによる文書分類

文書分類とは与えられた文書をあるカテゴリに分類することです。
例えば、ニュース記事がスポーツか政治社会かということを分類します。
ここではフリーで入手可能なコーパスを用いて、文書分類の代表的な手法であるNaiveBayseとSVMを使います。
文書分類に用いる素性は、文書中の名詞のTF・IDF値としました。
TF・IDFは単純に説明すると、様々な文書で使われる語の重みは小さく、一部の文書でのみ使う語の重みを大きくするような、語に対する重みです。
もう少し踏み込むと、TF(語の頻度)とIDF(出現する文書数の逆数)の積となります。
以上の素性を用いて、NaiveBayseおよびSVMで分類を行います。
NaiveBayseの理解のためにgihyo.jpの記事を写経して作ったものがここにあります。(今回利用した訳ではありません。)
SVMはパターン識別器を与えられた正解データから作成する機械学習器です。
詳細は割愛します(というよりも詳しくはっきりは理解できていません。)

ソースコード

一部、独自の単語分割器が使用されています。
MeCabを用いる際は、名詞の表層形を取り出します。
xmlの読み込みは適当にパースします。

結果

ナイーブベイズよりSVMのほうが4ポイントほど良い結果を示しました。

感想

Scikit-learnを用いると意図も簡単に文書分類を試すことができました。
手軽に実験するために、Scikit-learnを使いこなさねばと思いました。