芥川竜之介・太宰治・夏目漱石・宮沢賢治の作品からtf-idfを求めて著者名をラベルとして学習させてみた

青空文庫から取得した芥川竜之介太宰治夏目漱石宮沢賢治の作品をtf-idfにし、著者名をラベルにロジスティック回帰でモデルを作り、テストを行いどのぐらいの精度で著者を当てられるのかを検証してみた。

ソースコード

github.com

青空文庫からの収集

公開中 作家リスト:全てのページの上部にある、青空文庫に所蔵されているすべての作品がインデックッスされているCSVをダウンロードして、目的の作者の作品のURL(XHTML/HTMLファイルURLの列)を求め、作品をダウンロードした。

なお、インデックスの中には青空文庫以外も含まれていたので、ルビなどのパースの関係上、無視をした。

f:id:matatsuna:20190817141331p:plain
青空文庫から収集してパースした作品とその作者ID

Mecab

日本語をtf-idfにするためには単語の単位で分ける、分かち書きをしないといけないため、Mecabを利用した。

データ

著者4人*100作品 = 400 作品を収集し、訓練データには、300作品、テストデータには、100作品を用いた。100作品ずつというのに、根拠はなく、とりあえず100作品ずつ用いた。

結果

87.7%の精度で当てられた

元ネタ

matatsuna.hatenablog.com

2年前にprocessingのSVMで行ったものをpythonで追実装した形です。

お詫び

Python Machine Learningサンプルソースコードを元に改変しました。

機械学習やり始めなので、パラメータやアルゴリズムをもっとよく出来ると思います。

参考