【えぬぐらむ】

n-gram とは?

💡 言葉を決まった窓幅でスライスする
📌 このページのポイント
n-gram:テキストをn個ずつスライドして切り出す 入力テキスト 1-gram (ユニグラム) → 5個 2-gram (バイグラム) あい いう うえ えお → 4個 3-gram (トライグラム) あいう いうえ うえお → 3個 n↑ → 数↓ 文脈↑
文字n-gramの切り出しイメージ
ひよこ ひよこ

n-gramってなに?nは何の数字?

ペンギン先生 ペンギン先生

nは切り出す要素の個数だよ。テキストの上を窓をスライドさせながらn個ずつ取り出す手法なんだ。「あいうえお」を2-gram(バイグラム)にすると「あい」「いう」「うえ」「えお」の4つになるよ

ひよこ ひよこ

単語単位でもできるの?

ペンギン先生 ペンギン先生

もちろんできるよ。文字n-gramと単語n-gramの2種類があるんだ。「I love cats」を単語バイグラムにすると「I love」「love cats」になる。文字単位か単語単位かは目的に応じて使い分けるよ

ひよこ ひよこ

何に使うの?

ペンギン先生 ペンギン先生

代表的なのは検索エンジンだね。日本語は形態素解析で単語に分割するのが一般的だけど、n-gramなら辞書がなくても機械的に分割できる。未知語や新語にも対応しやすいのがメリットだよ。あとはスペルチェックや文書の類似度計算にも使われているんだ

ひよこ ひよこ

nはいくつが一番いいの?

ペンギン先生 ペンギン先生

用途によるけど、文字n-gramならn=2か3、単語n-gramならn=1〜3がよく使われるよ。nが大きいほど文脈情報が増えるけど、組み合わせが爆発的に増えてメモリを食う。昔の言語モデルはn-gramの出現頻度で次の単語を予測していたんだけど、今のLLMはTransformerに置き換わった。それでもn-gramは計算が軽くて解釈しやすいから、検索やログ分析の現場では今でも現役だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
n-gramって出てきたら「テキストをn個ずつスライドしながら切り出したもの」と思えればだいたいOK!
📖 おまけ:英語の意味
「n-gram」 = n個の連続要素
💬 gramはギリシャ語のgramma(文字・書かれたもの)が由来で、n個の文字や単語の並びをひとまとめにしたものという意味だよ
← 用語集にもどる