N-gramとは
テキストや音声などの連続したデータから、N個の要素を順番に抽出する事をN-gramと言う。この要素は、文字、単語だけでなく、文章や、指定した範囲の要素でも良い。
このNが1、2、3の時は、以下のように呼ばれる。
- N=1
- ユニグラム(uni-gram)
- N=2
- バイグラム(bi-gram)
- N=3
- トライグラム(tri-gram)
N-gramの例
「今日は良い天気ですね」という文章を例に、N-gramによってデータを切りわけてみる。
ユニグラムの場合
- 文字の場合
- 「今」「日」「は」「良」「い」「天」「気」「で」「す」「ね」
- 単語の場合
- 「今日」「は」「良い」「天気」「です」「ね」
バイグラムの場合
- 文字の場合
- 「今日」「日は」「は良」「良い」「い天」「天気」「気で」「です」「すね」
- 単語の場合
- 「今日は」「は良い」「良い天気」「天気です」「ですね」
トライグラムの場合
- 文字の場合
- 「今日は」「日は良」「は良い」「良い天」「い天気」「天気で」「気です」「ですね」
- 単語の場合
- 「今日」「は」「良い」「天気」「です」「ね」
N-gramが何の役に立つのか
引用元1
これはどういう事なのか考えてみる。「今日」という単語があった時、それに続く単語は「は」が登場する事が多そうだ。逆に「猿」なんて単語が続く可能性は低そうだ。これは何となく直感で理解できる。
N-gramはこの要素(上記の例では単語)の繋がりを定量化する方法なのだと理解した。それらを定量化する事で、それぞれの語の繋がりが濃いのか薄いのかという事を比較できる。
上記で参考にした解説には「欠点も多く存在する」とあり、その欠点についても一段掘り下げて説明されている。それについては、また別の機会に勉強してみたい。