文書の類似度判定(1)

nanoha_keyword知り合いとの会話にword2vecが話題にあがったので、例によってリリカルなのは的なネタに絡めた記事を作成する事にしました。

やることは、

  1. 文書を形態素解析
  2. データベースに保存
  3. doc2vec(word2vec)向けのデータを生成

といったものです。

文書の形態素解析

文書を取り扱う為に、まずやるべきことは形態素解析です。

形態素解析を行うライブラリには様々な物がありますが、今回はjanomeを使用しました。janomeはIPA辞書を内蔵していますが、目的に特化した単語を判定するには専用の辞書を使用する必要があります。

カスタム辞書の追加方法

janomeのカスタム辞書は以下の方法で生成する事が出来ます。janomeのカスタム辞書はMeCabと同じ形式のものを使用する事が出来ますが、単語だけの簡単な構造の形式を使用する事も出来ます。

アイナ・トライトン,名詞,アイナ・トライトン
アインハルト・ストラトス,名詞,アインハルト・ストラトス
アインハルト,名詞,アインハルト

サンプルとして以下のファイルを用意してみました。

nanoha_keyword.csv

# -*- coding: utf-8 -*-
import sys

import janome.dic
import sysdic


def main():
    o_dic = janome.dic.UserDictionary(
        "nanoha_keyword.csv",
        "utf8",
        "simpledic",
        sysdic.connections
    )
    o_dic.save("nanoha_keyword.dic")


if __name__ == "__main__":
    main()



# [EOF]

.