AIによる文章生成や検索エンジン、機械翻訳、変換候補の予測など、自然言語処理(NLP)の多くの技術には「文章の流れ」を理解する仕組みが必要です。
その基礎技術として長年利用されてきたのが「N-gram(エヌグラム)」です。
現在では大規模言語モデル(LLM)が注目を集めていますが、N-gramは言語処理の基本概念として今でも重要な位置を占めています。
本記事では、N-gramの仕組みや種類、具体例、メリット・課題までわかりやすく解説します。
N-gramとは
N-gramとは、文章中の連続するN個の要素をひとまとまりとして扱う手法です。
ここでいう「要素」とは、主に次の2種類があります。
- 単語
- 文字
Nの値によって呼び方が変わります。
| Nの数 | 名称 |
|---|---|
| 1 | 1-gram(ユニグラム) |
| 2 | 2-gram(バイグラム) |
| 3 | 3-gram(トライグラム) |
| 4 | 4-gram |
| 5以上 | N-gram |
例えば、「私はAIを学ぶ」という文章を単語単位で考えると、それぞれ連続した組み合わせを作ることで文脈のパターンを捉えます。
単語同士の並び方や出現傾向を統計的に分析することが目的です。
N-gramの具体例
実際にどのように分割されるか見てみましょう。
文章:
「私はAIを学ぶ」単語単位で分割すると:
- 私
- は
- AI
- を
- 学ぶ
これをN-gram化すると次のようになります。
1-gram(ユニグラム)
1単語ずつ扱います。
- 私
- は
- AI
- を
- 学ぶ
単語の出現頻度を分析できます。
2-gram(バイグラム)
隣り合う2つの単語を組み合わせます。
- 私 は
- は AI
- AI を
- を 学ぶ
単語同士の関係性が少し見えてきます。
3-gram(トライグラム)
3つずつ連続して扱います。
- 私 は AI
- は AI を
- AI を 学ぶ
文脈をより広く考慮できます。
文字単位のN-gramとは
N-gramは単語だけでなく、文字単位でも利用できます。
例えば:
「機械学習」を文字単位の2-gramにすると、
- 機械
- 械学
- 学習
という形になります。
窓(ウィンドウ)を1文字ずつずらしながら抽出していくイメージです。
この方法は言語に依存しにくい特徴があります。
N-gramが文章の予測に使われる理由
N-gramは文章中の出現パターンを統計的に記録できます。
例えば、過去の大量データから次のような傾向を学習します。
「おはよう」の次には→「ございます」が高頻度で続く。
「人工知能」の後には→「技術」「開発」「研究」が多い。
つまり、「直前に現れた単語から次の単語を予測する」という仕組みです。
これは古典的な言語モデルの基本になっています。
N-gram言語モデルの考え方
言語モデルでは、次の単語が出現する確率を推定します。
例えば次の文章を考えます。
「今日は天気が」次に来る単語候補:
- 良い
- 悪い
- 晴れ
- 雨
過去の大量文章から出現頻度を調べ、「今日は天気が良い」が多く存在すれば、次の単語として「良い」の確率を高くします。
スマートフォンの文字入力予測も、この考え方が利用されてきました。
Nを大きくすると何が起きるか
Nの数を増やすと、より長い文脈を考慮できます。
例えば:
2-gram
「AI 技術」
3-gram
「AI 技術 の」
5-gram
「AI 技術 の 発展 により」
文脈理解は向上しますが、課題も発生します。
Nが大きいメリット
- より自然な文脈を扱える
- 単語の関係性を深く理解できる
- 次単語予測の精度向上
Nが大きいデメリット
一方で問題もあります。
データ不足が起きやすい
長い組み合わせは出現頻度が低くなります。
例えば:
「AI 技術 の 急速 な 発展」という並びは大量データ中でも少ないかもしれません。
その結果、統計情報が不足します。
メモリ消費が増える
組み合わせが爆発的に増えるため、大量の保存領域が必要になります。
これを「次元の呪い」と呼ぶこともあります。
日本語では形態素解析が重要
英語は単語の間にスペースがあります。
例:
“I study AI”
↓
- I
- study
- AI
しかし日本語は単語が連続して書かれます。
例:
「私はAIを勉強します」
このままでは単語境界が分かりません。
そこで利用されるのが「形態素解析」です。
形態素解析とは
形態素解析とは、文章を意味のある最小単位へ分割する処理です。
例えば:
「私はAIを勉強します」
↓
- 私
- は
- AI
- を
- 勉強
- します
この処理の後にN-gramを適用します。
文字N-gramのメリット
日本語や中国語では、形態素解析が難しい場合もあります。
そのため文字単位N-gramには利点があります。
特徴
- 辞書が不要
- 言語依存性が少ない
- 未知語に強い
- 処理が単純
検索システムや文字列照合などで現在も利用されています。
現代AIではN-gramはどう使われている?
現在の生成AIでは、Transformerや大規模言語モデルが主流です。
これらはN-gramより遥かに広い文脈を理解できます。
例えばChatGPTでは数千〜数万単語規模の文脈を考慮できます。
ただしN-gramの考え方自体は現在も重要です。
なぜなら、
- 文脈理解
- 次単語予測
- 統計的言語モデル
といった基本概念の出発点になっているからです。
自然言語処理を学ぶ際の基礎知識として、今でも広く扱われています。
まとめ
N-gramは、文章の連続したN個の要素をひとまとまりとして扱う自然言語処理の基本技術です。
ポイントを整理すると次の通りです。
- 連続した単語や文字を分析する手法
- 1-gram、2-gram、3-gramなどがある
- 次の単語予測や言語モデルで利用される
- Nを大きくすると文脈理解が向上する
- 日本語では形態素解析が重要
- 現代AIの基礎理論として重要
最新の生成AIは高度な技術を利用していますが、その土台にはN-gramのような古典的手法の考え方が存在しています。
AIや自然言語処理を理解する上で、まず押さえておきたい基本概念の一つといえるでしょう。
こちらもご覧ください:トークナイザ(Tokenizer)とは?生成AIを支える「言葉の分解技術」をわかりやすく解説

