N-gramとは
N-gram(エヌグラム)とは、テキストをN個の連続する要素(単語や文字)の組み合わせとして表現する手法です。N=1の場合をユニグラム(unigram)、N=2をバイグラム(bigram)、N=3をトライグラム(trigram)と呼びます。テキストの局所的なパターンを捉えるために広く使用されます。
N-gramの例
「今日は天気が良い」という文を単語バイグラムで分割すると、「今日-は」「は-天気」「天気-が」「が-良い」という4つのバイグラムが得られます。文字トライグラムでは「今日は」「日は天」「は天気」のように3文字ずつ切り出します。
N-gram言語モデル
N-gram言語モデルは、直前のN-1個の単語から次の単語の出現確率を推定する統計的言語モデルです。「私は___を食べた」の空欄に入る単語を、学習データ中のN-gramの頻度から予測します。ニューラル言語モデルの登場以前は、機械翻訳や音声認識などで広く使われていました。
N-gramの活用
テキスト分類の特徴量、スペルチェック、文書類似度計算、プログラミング言語のコード補完など、様々な場面で活用されています。Bag of Wordsに語順の情報を部分的に加えることができる手法として、依然として有用です。