読み方 : ビーオーダブリュー

BoW【Bag-of-Words】

概要

BoWとは、自然言語処理で文章をモデル化する手法の一つで、各単語の出現頻度に着目して数値化するもの。語順や文法構造は無視し、文章を「単語の袋」のように扱う。
BoWのイメージ画像

まず解析対象となるすべての文書から重複を除いた単語のリストを作成し、これをこの文書群の「語彙」(ボキャブラリー)と定義する。個別の文章を数値化する際は、語彙に含まれる各単語がその文章の中に何度出現するかをカウントし、その数を並べたベクトルとして表現する。

例えば、「私は猫が好きだ」と「私は犬が好きだ」という二つの文の集合を対象とする場合、「私」「猫」「犬」「好き」といった単語が語彙となり、これを次元とするベクトルが生成される。「私は猫が好きだ」という文は「私:1、猫:1、犬:0、好き:1」というベクトルに変換することができる。

BoWは単語の頻度情報を直接利用できるためプログラムとしての実装が容易で計算量も少ない。複雑な言語モデルを必要とせず、結果の解釈もしやすい。初期の自然言語研究で広く利用され、文書間の類似度計算や、ベイズ統計を用いた文書分類の基礎的な特徴量などとして用いられてきた。

一方、語順や文脈は無視するため、意味的な違いを十分に表現できないという制約がある。例えば、「猫が人を噛む」と「人が猫を噛む」というまったく意味の異なる文が同一のベクトルとして表現されてしまう。また、語彙数が増えるほどベクトルの次元数が膨大になり、ほとんどの要素がゼロになる「疎なベクトル」が生じるため、メモリの消費効率や計算精度の低下を招くことがある。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。