自然言語処理を学ぼう #1 BoW 理論編
趣旨
- 自然言語処理についての知見を得たい
- 自然言語処理を使って何か作ってみたい
目標
- 文章の比較を行って類似文章を探す
- 最終的にサービスとしてローンチする
直近の課題
- 基礎編として BoW を使った文章比較をやってみる
処理の流れ
- 形態素解析ツールで文章を単語に分割する
- BoW を使ってベクトル化
- TF-IDF を使って重み付けする
- cos 類似度を計算して類似文章を探す
参考記事
Ruby で文章間の類似度を計算するモジュールを作ってみた(TF-IDF と Cos 類似度による推定) - Fire Engine
要素技術
形態素解析
文章を単語レベルに分割し、文法情報を付与するアルゴリズム 形態素解析の説明
Bag of Words (BoW)
文章中の単語の出現回数をベクトル化するアルゴリズム Bag of Words の説明
TF-IDF
「ある文書内でたくさん出てくる単語ほど重要」という指標を「いくつもの文章内で横断的に使われている単語は重要じゃない」という指標で割ったもの TF-IDF の説明
cos 類似度
ベクトル化された情報に対して、2 つのベクトルとベクトルがどれだけ近いかを数値(0’似ていない’〜1’似ている’)で表したもの
次回
実装