【第96回】AIは単語の並びをどう覚える?n-gramとは
言葉の意味は単語単体ではなく、並びによって決まります。
そのパターンを学ぶ方法がn-gramです。
この記事では、言語モデルの基礎となる考え方をやさしく解説します。
1. 読み方
エヌグラム (n-gram)
2. 意味(定義)
「テキストを、n 個の連続する要素(文字や単語)のまとまりとして捉える手法」のことです。
n: ひとまとめにする要素の数(1個ならunigram、2個ならbigram、3個ならtrigram...)。
gram: 「書かれたもの」「単位」という意味。
【言葉の『連なった鎖』を見つける虫眼鏡という例え】
想像してみてください。あなたは「長い鎖」を手に持っています。この鎖は、たくさんの小さな「輪(文字や単語)」が繋がってできています。 n-gram というのは、この鎖を「一度に何個ずつの輪で切り取って観察するか」というルールです。
1-gram (unigram): 輪を一つずつバラバラに見ていく。「私」「は」「リンゴ」「を」...
2-gram (bigram): 輪を「2個ずつのペア」で見ていく。「私は」「はリンゴ」「リンゴを」...
3-gram (trigram): 輪を「3個ずつのセット」で見ていく。「私はリンゴ」「はリンゴを」「リンゴを食べ」...
このように、窓(スライディングウィンドウ)をずらしながら、連続する n 個の要素を抽出して分析するのが n-gram です。
3. 歴史・背景
n-gram は、自然言語処理において非常に古くから使われている古典的かつ基礎的な手法です。 深層学習(ディープラーニング)が普及する前は、文章の「次に何が来るか」を予測するための主要な統計的手法でした。
「『お腹が』という言葉の次には、『空いた』が来る確率が高い」といった予測を、過去の膨大なテキストデータから n 個のまとまり(n-gram)の出現頻度を数えることで実現していました。
現在の巨大な LLM も、根本的な「次の単語を予測する」という仕組みにおいては、この n-gram の考え方(統計的なつながりの利用)を、極めて高度な形(Transformer による文脈考慮)で受け継いでいます。
4. 比較・対比(似た用語との違い)
ここが試験で狙われる「整理」ポイントです!
n-gram vs 形態素解析 (Morphological Analysis)
形態素解析: 「意味のある最小単位(単語)」に分割する。文法的な正しさを重視。
n-gram: 単なる「連続する n 個の要素」として切り取る。文法的に意味が通じなくても、文字数や単語数が n 個であれば抽出される。
unigram / bigram / trigram (n の値による違い)
unigram (n=1): 単一の要素。単語の出現頻度を測るのに適しているが、文脈(つながり)は無視される。
bigram (n=2): 2つの要素のペア。隣り合う関係性はわかるが、文脈は限定的。
trigram (n=3): 3つの要素のセット。より長い「フレーズ」としてのつながりを捉えられる。
5. 活用シーン(どんな問題に使うか)
シンプルで計算が速いため、特定の用途で今でも現役です。
スペルチェッカー (校正): 入力された単語が、既存の n-gram の中に存在するかをチェックし、似た n-gram を提案する。
言語識別: 「この文字列は、どの言語(日本語か英語か)の n-gram 特徴に似ているか」を判定する。
文章の類似度判定: 2つの文章に含まれる n-gram の重なり具合を見て、どれくらい似ているかを計算する。
自動補完 (予測入力): スマホのキーボードで、「おは」と打ったときに「おはよう」を候補に出す(bigram 的な仕組み)。
6. G検定での出題傾向
G検定では、以下のポイントが非常に高い頻度で狙われます!
n-gram の定義: 「連続する n 個の要素のまとまり」であること。
各名称の対応: n=1 (unigram), n=2 (bigram), n=3 (trigram) という呼び方。
文脈の捉え方の違い: n が大きくなるほど、より長い範囲の依存関係(つながり)を捉えられるが、計算量やデータ不足の問題も出てくること。
形態素解析との違い: 「意味的な区切り」ではなく「機械的な連続性」に基づいている点。
7. G検定の例題
【問題1:n-gram の定義】
テキスト処理における「n-gram」の説明として、最も適切なものはどれですか?
A. 文章を文法的に正しい最小単位(形態素)に分解し、品詞を特定する手法である。
B. 連続する n 個の要素(文字または単語)のまとまりを抽出して解析する手法である。
C. 文全体の意味をベクトル化し、多次元空間上の座標として表現する手法である。
D. 画像データからエッジやテクスチャなどの特徴的なパターンを見つけ出す手法である。
【問題2:n-gram の特性】
n-gram において、n の値を大きくした場合(例:bigram から trigram へ)の性質として、正しいものはどれですか?
A. 捉えられる文脈(要素間のつながり)の範囲が広くなり、より長いフレーズの依存関係を考慮できる。
B. 解析の計算量が減少し、処理速度が劇的に向上する。
C. 文法的な正しさを無視して、単一の要素のみに注目するようになる。
D. データの出現頻度が低くなるため、予測の精度が常に向上する。
8. 例題の回答と解説
【問題1 の回答】
正解:B
【解説】 n-gram は「連続する n 個」というルールに基づいた切り出し方です。A は形態素解析、C は Word2Vec(分散表現)、D はコンピュータビジョンの説明であり、誤りです。
【問題2 の回答】
正解:A
【解説】 n を大きくすることは、「一度に見る窓の幅を広げる」ことと同じなので、より長い範囲のつながりを捉えられます。しかし、B は「計算量は増える(複雑になる)」ため誤り、C は n=1 の時の説明であり誤り、D は「データが稀(レア)になりすぎて、学習が難しくなる(データ不足の問題)」が発生するため誤りです。
