芥川竜之介・太宰治・夏目漱石・宮沢賢治の作品からtf-idfを求めて著者名をラベルとして学習させてみた
青空文庫から取得した芥川竜之介、太宰治、夏目漱石、宮沢賢治の作品をtf-idfにし、著者名をラベルにロジスティック回帰でモデルを作り、テストを行いどのぐらいの精度で著者を当てられるのかを検証してみた。
ソースコード
青空文庫からの収集
公開中 作家リスト:全てのページの上部にある、青空文庫に所蔵されているすべての作品がインデックッスされているCSVをダウンロードして、目的の作者の作品のURL(XHTML/HTMLファイルURL
の列)を求め、作品をダウンロードした。
なお、インデックスの中には青空文庫以外も含まれていたので、ルビなどのパースの関係上、無視をした。
Mecab
日本語をtf-idfにするためには単語の単位で分ける、分かち書きをしないといけないため、Mecabを利用した。
データ
著者4人*100作品 = 400 作品を収集し、訓練データには、300作品、テストデータには、100作品を用いた。100作品ずつというのに、根拠はなく、とりあえず100作品ずつ用いた。
結果
87.7%の精度で当てられた
元ネタ
2年前にprocessingのSVMで行ったものをpythonで追実装した形です。
お詫び
Python Machine Learningのサンプルソースコードを元に改変しました。
機械学習やり始めなので、パラメータやアルゴリズムをもっとよく出来ると思います。