とある三流プログラマーの覚書

機械学習、自然言語処理を中心にIT系の話題を書いていく予定です

ライトノベルの感想をDoc2Vecで解析 可視化編

はじめに

ライトノベルの感想をDoc2Vecで解析では、ラノベの感想をgensimのDoc2Vecを使って、200次元のベクトルデータとして表現しました。

ベクトルデータなので、類似度の計算ができましたが、200次元といわれても、われわれにはイメージできません。

そこで、今回は、200次元のベクトルを主成分分析を使って2次元に変換して、関係性を可視化しました。

方法

今回は、『このライトノベルがすごい!2016』に載っていた、2015年度BEST60のタイトルを使います。

ライトノベルの感想をDoc2Vecで解析」で求めた、200次元ベクトルのデータを、主成分分析で2次元ベクトルデータに変換します。

主成分分析には、機械学習ライブラリscikit-learnのPCAクラスを使いました。

60タイトルの2次元ベクトルデータをmatplotlibを使って2次元のマップとして描画しました。

結果

f:id:pgsaku:20160515004909p:plain

左の真ん中あたりは、日常系ラブコメ?が集まっているっぽいですね。

下よりの中央は、ファンタジー+バトル要素でしょうか。

なんとなく、感想が近いもので、マップ化されているような気はします。

まとめ

感想をもとに、ラノベをマップ上に表現することには成功したっぽいです。

でも、教師なし学習なので、どんな基準でマップ化されたのかはよくわからないです。

シリアス⇔コメディとか、リアル⇔ファンタジーみたいな人間にわかりやすい軸でマップ化できたら面白いんですけどね。