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

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

Doc2Vecでライトノベルの内容紹介を解析

はじめに

前回ラノベの内容紹介をトピックモデルで解析しました。

同じデータを今度はDoc2Vecにかけて遊んでみます。

Doc2Vecとは、文書(Document)のベクトル表現で、文書同士の類似度を算出したり、文書間で足し算や引き算ができるらしいです。

これで好みの小説を探せたりできたら面白いですね。

方法

gensimにDoc2Vecモジュールがあるので、これを使います。

コードはWord2Vecの進化形Doc2Vecで文章と文章の類似度を算出するを参考にさせてもらいました。

結果

とりあえず、メジャーどころの「ソードアート・オンライン」と類似度が高い小説を抽出しました。

ソードアート・オンライン〈1〉アインクラッド

  1. ニーベルングの指輪 2 神々の黄昏、そして―― : 0.34169912338256836

  2. アイドライジング! (4) : 0.31899577379226685

  3. レオ・アッティール伝 II 首なし公の肖像 : 0.3177222013473511

  4. 会長の切り札 忍者ガールで罠をはれ! : 0.31571415066719055

  5. 金星特急 (7) : 0.31085237860679626

あまり似ていない…

まとめ

期待していた結果にはなりませんでした。

チューニングの問題というよりは、内容紹介くらいの短い文書だと、わかりやすい類似度は出てこないような印象です。

もう少し長い文書で次回は試してみたいですね。