1. 定義と概要
単語N-gram(単語Nグラム)とは、テキストを単語単位に分割したうえで、連続するn個の単語のまとまり、つまり部分列を機械的に切り出す手法です。英語は単語と単語の間にスペースの区切りがありますが、日本語にはこの区切りがありません。そのため、単語Nグラムを作るにはあらかじめ形態素解析(文章を意味を持つ最小単位である単語に分割し、品詞を判定する処理)によって分かち書き(単語と単語の間に区切りを入れること)をしておくことが前提になります。
たとえば「私は音声認識に興味がある」を分かち書きすると「私/は/音声/認識/に/興味/が/ある」となり、この単語列から連続するn語を切り出したものが単語Nグラムです。なお、どこまでをひとつの単語とみなすかは使う辞書によって変わり、「音声認識」のような複合語をひとまとまりとして扱う設定もあります。
テキストの特徴を数値化する手法としては、各単語の出現回数だけを数えるBag-of-Words(文章中の単語の出現頻度だけを扱い、語順を無視する表現手法)が広く使われてきました。しかし、語順の情報が失われるため、「猫が犬を追いかけた」と「犬が猫を追いかけた」のような語順の異なる文を区別できない課題がありました。
単語Nグラムは連続するn語をひとまとまりの単位として扱うことで、直前の単語列が持つ文脈情報の一部を保持できます。この考え方(Bag-of-Words)をn語単位に拡張し、n語のまとまりごとに出現回数を数える手法がBag-of-N-grams(n語のまとまり単位で出現回数を数えるベクトル化手法)です。nを大きくするほど保持できる文脈情報は増える一方、単語の組み合わせ、つまり語彙や次元が急激に増え、データがスパース(大部分が0で埋まった、まばらな状態)になりやすい傾向があります。
2. 試験対策ポイント
単語Nグラムを理解するうえでまず整理したいのは、「単語単位に区切ってから連続するn語を取り出す」という前提そのものです。この前提こそが、文字を単位として区切る文字Nグラムとの最大の違いになります。意味のまとまりである単語を単位として扱えるため、文脈の情報を比較的つかみやすい性質があります。
日本語は英語のように単語間にスペースの区切りがないため、単語Nグラムの作成には形態素解析による分かち書きが欠かせません。あらかじめ単語ごとに区切られている英語などとは、この前提条件が異なる点も取り違えやすいところです。
なお、nの値によって呼び方が変わり、n=1のときはユニグラム、n=2のときはバイグラム、n=3のときはトライグラムと呼ばれますが、それぞれの具体例や得失は個別のテーマとして扱われます。
もう一つ押さえておきたいのが、Bag-of-N-grams(n語のまとまり単位で出現回数を数えるベクトル化手法)です。加えて、辞書に存在しない未知語(あらかじめ用意された辞書に登録されていない単語で、人名・専門用語・新語・略語などが当てはまります)への対応や、nを大きくしたときにデータがスパースになりやすいという制約も、あわせて整理しておきたい論点です。
3. 関連概念との比較・相違点
文字Nグラム(文字N-gram)との最大の違いは、分かち書きの要否と未知語への強さ弱さです。単語Nグラムは形態素解析による分かち書き、つまり辞書をもとにした単語分割が前提になるため、辞書に存在しない未知語をうまく分割できないことがあります。一方、文字Nグラムは辞書に依存せず文字数で機械的に区切るため、未知語を含む文章でも確実に処理できるという強みがあります。
もう一つの違いは、語彙、つまり扱う要素の種類の規模とデータのスパース性です。単語Nグラムは単語の組み合わせ数が非常に大きくなりやすく、nを増やすほどデータがまばらなスパースの状態になりやすい傾向があります。これに対して文字Nグラムは、扱う文字の種類が単語の種類よりずっと少ないため、語彙の規模を相対的に抑えやすい点が特徴です。
ここまでの違いを観点ごとに並べると、次のように対応します。
| 観点 | 単語Nグラム | 文字Nグラム |
|---|---|---|
| 区切りの方法 | 形態素解析による分かち書きが前提 | 辞書に依存せず文字数で機械的に区切る |
| 未知語への対応 | 辞書にない語をうまく分割できないことがある | 未知語を含む文章でも確実に処理できる |
| 語彙の規模 | 単語の組み合わせ数が大きく、スパースになりやすい | 文字の種類が少なく、語彙の規模を抑えやすい |
どちらを選ぶかは、未知語への強さと語彙の規模のどちらを優先するかで決まります。
4. ビジネス・実務での活用シナリオ
検索エンジンの分野では、入力補助となるサジェスト機能に単語Nグラムが使われています。過去に入力されたクエリ(検索窓に打ち込まれた語句)に含まれる単語の並びのパターンをとらえることで、単語単体だけでは見えない意味のまとまりを保った関連語句の提案につながります。
スマートフォンの予測変換やチャットボット(人と対話するプログラム)の応答候補生成でも、単語Nグラムは土台の一つになっています。直前に入力された単語の並び、つまりn-1語から次に来やすい単語を統計的に推定する言語モデルの仕組みに組み込まれており、入力の手間を減らす体験を支えています。
メール本文をバイグラムやトライグラムに分解し、スパム検知や文書分類の特徴量(機械学習モデルに入力する、データを数値で表した特徴の集合)にする活用もあります。単語1語だけでは捉えにくい単語同士の並び、つまり前後の文脈を考慮できるため、単語の出現回数だけを見る手法と比べて分類の精度を高めやすくなります。
5. 要点まとめ
- 単語Nグラムは、文章を単語単位に区切ったうえで連続するn個の単語のまとまりを取り出す手法で、日本語では形態素解析による分かち書きが前提になります。
- 文字Nグラムと比べて単語のまとまりとして文脈をとらえやすい反面、辞書にない未知語への対応に弱く、語彙(次元)の規模も大きくなりやすいという特徴があります。
- nの値でユニグラム・バイグラム・トライグラムと呼び方が変わり、Bag-of-N-grams(n語のまとまり単位で出現回数を数えるベクトル化手法)などとあわせて、検索・入力補完・分類といった実務活用と結びついています。
6. 確認問題
問1単語Nグラムを作成するには、対象となる文章をあらかじめ単語単位に分割しておく必要がある。
解答・解説をみる
○ 正しい
単語Nグラムは単語の並びを扱う手法のため、日本語では形態素解析による分かち書きが前提になります。
問2単語Nグラムは文字Nグラムと比べて、辞書に存在しない未知語(人名・専門用語・新語など)への対応に弱いという制約がある。
解答・解説をみる
○ 正しい
単語Nグラムは形態素解析という辞書ベースの分かち書きに依存するため、辞書にない語を正しく分割できないことがあります。文字Nグラムは文字数で機械的に区切るため、辞書に依存せず未知語にも対応できます。
問3単語Nグラムは文字Nグラムと比べて扱う語彙(次元)の規模が小さく抑えられるため、データがスパースになりにくい。
解答・解説をみる
× 誤り
正しくは逆で、単語Nグラムは単語の組み合わせ数が非常に大きくなりやすく、nを増やすほどデータがスパースになりやすくなります。文字Nグラムは文字の種類が単語より少ないため、語彙の規模を抑えやすいという関係にあります。

