【DS検定対策】自然言語処理の基本!テキストをn個ずつ区切る「n-gram」の仕組み
テキストデータをAIやプログラムで処理する際、文章をそのまま扱うことはできません。文章を「連続する n 個の文字や単語の単位」に細かく区切って分析する手法が「n-gram(エヌグラム)」です。その仕組みと種類を整理しましょう!
1. 【 問題 】
自然言語処理(NLP)において、与えられた文字列や文章に対して、隣り合う連続した n 個の文字(または単語)のまとまりに分割して抽出する手法を何と呼ぶでしょうか?
① n-gram(エヌグラム)
② TF-IDF(ティーエフ・アイディーエフ)
③ Word2Vec(ワード・ツー・ベック)
④ 形態素解析(Morphological Analysis)
2. 【 解答 】
3. 整理:nの値による呼び方と具体的例
「データ分析」というテキストを文字単位(文字n-gram)で分割する場合の具体例を見てみましょう。
| 呼び方 | nの値 | 「データ分析」を文字単位で区切った結果 |
|---|---|---|
| Unigram (ユニグラム) |
n = 1 | 「デ」「ー」「タ」「分」「析」 (1文字ずつバラバラに分割) |
| Bigram (バイグラム) |
n = 2 | 「デー」「ータ」「タ分」「分析」 (連続する2文字ずつスライドして抽出) |
| Trigram (トライグラム) |
n = 3 | 「データ」「ータ分」「タ分析」 (連続する3文字ずつスライドして抽出) |
4. 単語n-gramと文字n-gramの違い
n-gramには「文字単位」だけでなく「単語単位」で区切るパターンもあります。
・文字Bigram(n=2):
「AI」「I 」「 の」「の 」「 活」「活用」 (スペースも含めて2文字ずつ区切る)
・単語Bigram(n=2):
「AI の」「の 活用」 (形態素解析などで分かち書きされた2単語ずつ区切る)
5. DS検定形式:実戦4択クイズ
問:テキストデータの前処理や特徴量抽出に関する記述として、最も適切なものはどれか。
① n-gramとは、文章中の単語の出現頻度と逆文書頻度を掛け合わせて、単語の重要度を数値化する手法である。
② 文字列を連続するn個の要素(文字または単語)のリストに分割して抽出する手法をn-gramと呼び、n=2の場合をBigramと呼ぶ。
③ n-gramを用いると、テキスト中の単語同士の文脈的・意味的な類似度を多次元ベクトル空間上の距離として自動的に表現できる。
④ 形態素解析を行わずにn-gram(単語単位)を作成することは、日本語のような分かち書きをしない言語において常に容易である。
【 正解: ② 】
解説: n-gramの基本性質を問う標準問題です。
②が正解です。連続するn個の単位に区切る手法であり、2個ずつの場合はBigramと呼びます。
①単語の出現頻度と逆文書頻度を掛け合わせる手法は「TF-IDF」の説明です。
③単語の意味や類似度を多次元ベクトル空間で表現するのは「Word2Vec」などの分散表現(単語埋め込み)の説明です。
④日本語のように単語間にスペースがない言語で「単語n-gram」を作るには、事前の形態素解析(分かち書き)が必要となります。一方、「文字n-gram」であれば辞書なしで容易に作成できるのがメリットです。
6. まとめ
DS検定や資格試験で「連続するn個の文字・単語」「1個=Unigram」「2個=Bigram」「3個=Trigram」といったキーワードが出たら、正解は「n-gram」です! 形態素解析(辞書が必要)を使わずにテキストの検索や分類を行える利点も含めて、しっかり理解しておきましょう!