Bag of Words

Bag of Words (BoW)

Bag of Wordsとは

Bag of Words(BoW:バッグ・オブ・ワーズ)とは、テキストを単語の出現回数の集合として表現する手法です。文の語順や文法構造を無視し、どの単語が何回出現するかだけでテキストを数値ベクトルに変換します。自然言語処理における最も基本的なテキスト表現手法です。

Bag of Wordsの仕組み

まず全文書に出現する語彙を収集し、語彙リスト(辞書)を作成します。次に各文書を語彙サイズの次元を持つベクトルに変換し、各次元にその単語の出現回数を記録します。例えば語彙が{犬, 猫, 好き}の場合、「犬が好き」は[1, 0, 1]となります。

利点と限界

BoWはシンプルで実装が容易、計算コストが低いという利点があります。しかし、語順情報の喪失、高次元スパースベクトルの問題、単語の意味的類似性を捉えられないという限界があります。「犬が猫を追いかける」と「猫が犬を追いかける」が同じ表現になってしまいます。

発展的な手法

BoWの限界を補うため、N-gramで語順の一部を考慮する手法、TF-IDFで単語の重要度に重み付けする手法、さらにWord2VecやBERTなどの分散表現へと発展してきました。