読み方 : ビーオーダブリュー
BoW【Bag-of-Words】

まず解析対象となるすべての文書から重複を除いた単語のリストを作成し、これをこの文書群の「語彙」(ボキャブラリー)と定義する。個別の文章を数値化する際は、語彙に含まれる各単語がその文章の中に何度出現するかをカウントし、その数を並べたベクトルとして表現する。
例えば、「私は猫が好きだ」と「私は犬が好きだ」という二つの文の集合を対象とする場合、「私」「猫」「犬」「好き」といった単語が語彙となり、これを次元とするベクトルが生成される。「私は猫が好きだ」という文は「私:1、猫:1、犬:0、好き:1」というベクトルに変換することができる。
BoWは単語の頻度情報を直接利用できるためプログラムとしての実装が容易で計算量も少ない。複雑な言語モデルを必要とせず、結果の解釈もしやすい。初期の自然言語研究で広く利用され、文書間の類似度計算や、ベイズ統計を用いた文書分類の基礎的な特徴量などとして用いられてきた。
一方、語順や文脈は無視するため、意味的な違いを十分に表現できないという制約がある。例えば、「猫が人を噛む」と「人が猫を噛む」というまったく意味の異なる文が同一のベクトルとして表現されてしまう。また、語彙数が増えるほどベクトルの次元数が膨大になり、ほとんどの要素がゼロになる「疎なベクトル」が生じるため、メモリの消費効率や計算精度の低下を招くことがある。