1. 定義と概要
Bag-of-n-grams(バッグオブNグラム)とは、BoW(Bag-of-Words)を拡張した文章のベクトル化手法です。BoW(Bag-of-Words)は、単語をひとつずつ数えて頻度ベクトルにする手法で、バッグオブNグラムはこれをもとに、単語や文字を連続してn個ひとまとめにした単位(n-gram)ごとに出現回数を数えます。
nが1のときはBoWと同じ処理になり、n=2(バイグラム)やn=3(トライグラム)のように単位を連続させることで、局所的な語順の情報を部分的に保持できるのが特徴です。
たとえば「猫が犬を追う」と「犬が猫を追う」は、BoWでは同じ頻度ベクトルになります。バッグオブNグラム(n=2)では「猫が」「が犬」「犬を」「を追う」と「犬が」「が猫」「猫を」「を追う」という異なる並びが得られ、両者を区別できます。
従来、文章を数値ベクトルに変換する代表的な手法はBoWでした。ただ、各単語を独立に数えるため、単語の並び順の情報が失われる点が制約です。主語と目的語が入れ替わっただけの文を区別できないなど語順が意味を左右する場面での限界が意識され、連続するn個の単位をまとめて数えるバッグオブNグラムが使われるようになりました。
nを大きくするほど「New York」のような複合語を1単位として捉えやすくなる一方、単位の組み合わせ数が急増し、ベクトルが疎(スカスカ)になるという性質も併せ持ちます。
2. 試験対策ポイント
BoWとの関係を整理すると、n=1のバッグオブNグラムは単語をひとつずつ数える処理と一致するため、BoWはバッグオブNグラムの特殊ケース(n=1の場合)にあたるという関係です。この包含関係は取り違えやすく、混同されることもあります。
n-gram単位の区切り方は、単語のまとまりで区切る単語n-gram(単語ひとまとまりを1単位とする区切り方)と、文字のまとまりで区切る文字n-gram(文字ひとまとまりを1単位とする区切り方)の2種類です。バッグオブNグラムはどちらの単位にも適用でき、n=1をユニグラム、n=2をバイグラム、n=3をトライグラムと呼びます。
メリットと制約は表裏一体です。nを大きくすると局所的な語順やフレーズを捉えやすくなる一方、単位の組み合わせ数が指数的に増え、特徴量の次元が急激に膨らみ、ベクトルの大部分が0で埋まる疎(スパース)になりやすくなります。疎(スパース)とは、値のほとんどが0で占められているスカスカな状態を指します。
関連手法の束もあわせて整理しておきたいところです。出現頻度に加えて文書全体での希少性も加味するTF-IDF(単語がどれだけ珍しいかも重み付けに使う手法)があります。もうひとつが、単語の意味的な近さを反映した密なベクトルに変換するWord2Vec(意味が近い単語ほど近い値になるベクトル表現)です。いずれもBoW系のテキスト表現から発展した手法群にあたります。
3. 関連概念との比較・相違点
BoW(Bag-of-Words)との最大の違いは、数える単位が単語ひとつか、連続するn個の単位かという点です。
n=1のときは両者は一致しますが、nを2以上にした瞬間から、BoWでは区別できなかった語順の違いを表現できるようになる点が本質的な差です。
TF-IDFとの関係は、軸そのものが異なる点にあります。バッグオブNグラムは「何を数える単位にするか(単語単位かn-gram単位か)」という単位の設計にあたり、TF-IDFは「数えた頻度をどう重み付けするか」という重み付けの手法です。
三者の関係は、役割の軸と語順の扱いで整理できます。
| 手法 | 役割の軸 | 語順の扱い |
|---|---|---|
| BoW | 単語ひとつを数える単位にする | 語順の情報を完全に失う |
| バッグオブNグラム | 連続するn個を数える単位にする | 局所的な語順を部分的に保持する |
| TF-IDF | 数えた頻度に希少性で重みを付ける | 単位の設計とは別の軸 |
両者は独立した軸であるため、n-gram単位で数えたうえでTF-IDF的な重み付けを組み合わせることもできます。
4. ビジネス・実務での活用シナリオ
スパムメールや迷惑コメントの検知では、「お金 儲かる」のような単語の連なり(フレーズ)をn-gram単位として捉えることで、単語単体では判定しにくい定型的な勧誘文言のパターンを検知できます。単語をばらばらに見ているだけでは埋もれる言い回しの癖を、連続した単位として捉えられる点が判定精度を底上げする理由です。
検索エンジンの入力補完や表記ゆれへの対応では、文字n-gram単位を使って部分一致に強い検索インデックスを構築します。複合語や送り仮名・表記のゆれがある語も文字単位で分割しておけば検索対象に含められるため、利用者は入力の途中でも意図した候補に届きます。
著者推定や文体分析の分野でも、n-gramパターンは有力な手がかりです。特定の書き手が好んで使う連続した言い回し(n-gramパターン)の出現頻度をもとに、文章の書き手を推定したり文体の特徴を分析したりします。単語ひとつでは個人差が出にくくても、連続する単位の組み合わせに書き手の癖が表れやすく、それが識別の手がかりになる理由です。
5. 要点まとめ
- バッグオブNグラムは、BoWを拡張してn個の連続する単語や文字のまとまり(n-gram)を単位に出現回数を数えるベクトル化手法で、n=1のときBoWと一致します。
- BoWが語順の情報を完全に失うのに対し、バッグオブNグラムは連続する単位の並びとして局所的な語順を部分的に保持できる点が特徴です。
- nを大きくするほど語順やフレーズを捉えやすくなる一方、特徴量の次元が急増し疎(スパース)になるというトレードオフがあります。
6. 確認問題
問1Bag-of-n-grams手法においてn=1としたとき、その表現はBag-of-Words(BoW)と一致する。
解答・解説をみる
○ 正しい
n=1のバッグオブNグラムは単語をひとつずつ数える点でBoWと同じ処理になります。BoWはバッグオブNグラムのn=1の特殊ケースとして位置づけられます。
問2「猫が犬を追う」と「犬が猫を追う」という2つの文は、Bag-of-Words(BoW)では同一の頻度ベクトルになるが、Bag-of-n-grams(n=2)では異なるベクトルとして区別できる。
解答・解説をみる
○ 正しい
BoWは単語を独立に数えるため主語と目的語の入れ替わりを区別できません。一方でバッグオブNグラム(n=2)は連続する単語対(バイグラム)の並びが異なるため区別できます。
問3Bag-of-n-grams手法はnを大きくするほど、特徴量の次元が小さくなり計算負荷が軽くなる。
解答・解説をみる
× 誤り
正しくは逆で、nを大きくするほど出現しうる連続単位の組み合わせが急増して特徴量の次元は大きくなります。ベクトルの大部分が0で埋まる疎な状態になりやすく、次元数と計算負荷が減るという記述は逆向きの誤りです。

