Traffine I/O

日本語

2023-01-21

N-grams

N-gramとは

自然言語処理(NLP)の世界は豊富で多様であり、テキストを理解し分析するための技術や手法が数多く存在しています。その中で、n-gramは言語パターンの研究や言語シーケンスの予測に欠かせない基本的なツールとして登場しました。n-gramは、与えられたテキストまたは音声のサンプルから、n個の項目から構成される連続したシーケンスであり、nは正の整数です。通常、問題となる項目は文字または単語です。

本質的に、n-gramは言語の構成要素であり、文字、単語、またはフレーズの様々な組み合わせを表します。これらのパターンを研究することで、言語の構造や性質についての洞察を得ることができます。n-gramは、テキスト生成、言語識別、感情分析、盗作検出など、さまざまな自然言語処理アプリケーションで広く使用されています。

NLPにおけるN-gramモデル

N-gramは、言語パターンの研究や自然言語処理モデルの開発において必要不可欠なツールとなっています。この記事では、異なる種類のN-gramモデルとそのNLPにおける特定の応用例を探索し、使用例を示します。

文字N-gram

文字n-gramは、与えられたテキストからn個の連続した文字からなるシーケンスです。これらのモデルは、形態論的構造の分析や、文字レベルでの言語特有のパターンの識別に特に役立ちます。文字n-gramは、言語識別、著者の特定、およびテキストの圧縮などのタスクに適用されています。

例えば、「language processing」というテキストが与えられた場合、3文字のn-gram(またはtrigram)は以下のとおりです。

  • lan
  • ang
  • ngu
  • gua
  • uag
  • age
  • ge_
  • e_p
  • _pr
  • pro
  • roc
  • oce
  • ces
  • ess
  • ssi
  • sin
  • ing

_はスペース文字を表します。

単語N-gram

単語n-gramはテキスト内のn個の連続した単語から構成され、文内の隣接する単語の依存関係を捉えるのに適しています。単語n-gramは、文脈から単語の確率を推定するために使用できる統計的言語モデルの開発に中心的な役割を果たしています。これらのモデルは、テキスト生成、機械翻訳、音声認識などのさまざまなNLPタスクで広く使用されています。

例えば、「The quick brown fox jumps over the lazy dog」という文が与えられた場合、3単語のn-gram(またはtrigram)は以下のとおりです。

  • The quick brown
  • quick brown fox
  • brown fox jumps
  • fox jumps over
  • jumps over the
  • over the lazy
  • the lazy dog

構文N-gram

構文n-gramは、文の中の単語間の構文関係を考慮した単語n-gramの概念を拡張したものです。これらのモデルは、依存構造または構文木構造などのテキストの構文構造に基づいて構築されます。構文を取り入れることで、構文n-gramはより微妙な言語理解を提供し、感情分析や情報抽出など、文の構造をより深く分析が必要なタスクに特に役立ちます。

例えば、「The cat chased the mouse」という文が与えられた場合、依存構文木に基づく構文n-gramは以下のようになります。

  • chased_det(cat, The)
  • chased_nsubj(chased, cat)
  • chased_det(mouse, the)
  • chased_dobj(chased, mouse)

構文n-gramは、単語間の関係や構文役割(det: 限定詞、nsubj: 主語、dobj: 目的語など)などの言語的特徴を捉えます。

N-gramの用語

以下の表は、長さが異なるn-gramを説明するために使用される用語の概要です。

N N-gramの名前 説明
1 Unigram dog 単一の文字または単語
2 Bigram lazy dog 2つの文字/単語のシーケンス
3 Trigram the lazy dog 3つの文字/単語のシーケンス
4 4-gram over the lazy dog 4つの文字/単語のシーケンス
5 5-gram ... 5つの文字/単語のシーケンス
... ... ... ...
N N-gram ... N個の文字/単語のシーケンス

参考

https://towardsdatascience.com/understanding-word-n-grams-and-n-gram-probability-in-natural-language-processing-9d9eef0fa058
https://www.analyticsvidhya.com/blog/2021/09/what-are-n-grams-and-how-to-implement-them-in-python/

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!