自然言語処理を学ぼう #4 word2vec 実装編
前回考えた処理の流れ
- word2vec でモデル(学習済みデータ)を用意する
- 形態素解析で映画のあらすじの文章を単語レベルに分割する
- 一つの文章ごとに、単語レベルでベクトル化
- 一つの文章内の全単語ベクトルの平均を算出し、文章ベクトルとする
- 文章ベクトル同士の cos 類似度を計算し、比較
- 最も類似度の高い文章を出力する
参考記事と使ったモデル
困ったこと
出来上がっている学習済みデータで今回の映画をやろうとすると、
word2vec not in vocabulary
が発生してしまう 例: ヒルディッチ、ディミトリアス
そのため、例外処理を行い単語が無い場合は、ベクトル生成から除外する。
実際のコード
ベクトルを平均してしまうことの問題点
- 文字数が増えてしまうと特徴がぼやけてしまう