N-gram
概要

様々な解析手法の中で用いられる基本的な操作の一つで、与えられた文章について、任意の自然数Nを用いて連続するN個の要素の並びを一つのかたまりとして扱う。解析手法によって具体的なNの値は様々で、1個なら「1-gram」(ユニグラム)、2個なら「2-gram」(バイグラム)、3個なら「3-gram」(トライグラム)と呼ばれる。
N-gramにおける要素は、単語である場合と文字である場合がある。単語を単位とする場合、1-gramは単語単体、2-gramは隣接する二語の組、3-gramは三語の連なりを指す。文字単位の場合も同様に、1-gramなら一文字、2-gramなら二文字、というように連続する文字列のまとまりとして定義される。
例えば、「機械学習モデル」という文字列を単語単位で2-gramに分割すると、「機械学習」「学習モデル」の2つの断片が得られる。「機械学習」を文字単位で2-gramに分割すると「機械」「械学」「学習」の3つの断片が得られる。連続する要素を窓をずらすようにして抽出することで、単語や文字がどのような順序で出現しやすいかという文脈情報を統計的に保持できる。
文章をN-gramに分割することで、文全体を局所的な要素の集合として表現でき、頻度や共起関係の分析が可能となる。例えば、言語モデルでは、ある単語が出現する確率を、その直前のいくつかの単語に基づいて推定することがある。これにより、文章の自然さの評価や、次に続く語の予測が行われる。Nの値を大きくすると文脈をより多く考慮できる一方で、出現頻度の低下やデータ不足の問題が生じやすくなる。
なお、アルファベットを用いる言語のように単語を空白(スペース)で区切って「分かち書き」する言語では文章をそのまま単語単位で解析することができるが、日本語や中国語、韓国語のように単語を繋げて記述する言語では、文章を単語単位に分割する「形態素解析」という前処理が必要になる。文字単位のN-gramは、こうした言語でも形態素解析を行うことなく機械的に文章を要素に分割して解析手法を適用できるという利点もある。