トークン化とは、自然言語処理(NLP)や機械学習(ML)における基本的なステップで、テキストをトークンという小さな単位に分解することです。これらのトークンは、タスクと使用されるモデルの特定の要件に応じて、単語、サブワード、文字、または記号になります。生のテキストを機械学習モデルが理解できる数値フォーマットに変換することで、トークン化はさまざまなAIアプリケーションにとって極めて重要です。
定義
トークン化とは、テキストの文字列を個々のトークンに分割するプロセスである。文章を断片に切り分けるようなものだ。これらの断片(トークン)は、コンピュータが処理できる基本単位となる。例えば、"Ultralytics YOLO is fast." という文章は、["Ultralytics", "YOLO", "is", "fast", "."] というようにトークン化することができる。テキストをトークン化する方法は、モデルの言語理解と処理に大きく影響します。さまざまなトークン化戦略が存在し、それぞれに長所と短所があります。一般的な方法には次のようなものがあります:
- 単語のトークン化:これは最も簡単な方法で、テキストをスペースと句読点に基づいて個々の単語に分割する。例えば、「AIを学ぼう!」は、["Let", "'s", "learn", "AI", "!"] となる。
- 文字のトークン化:ここでは、各文字がトークンとみなされる。同じ文「AIを学ぼう!」は、["L", "e", "t", "'", "s", " ", "l", "e", "a", "r", "n", " ", "A", "I", "!"] にトークン化される。この方法は、単語がスペースで明確に区切られていない言語や、語彙のない単語を扱う場合に有効である。
- サブワード・トークナイゼーション:この方法は単語トークン化と文字トークン化のバランスをとる。頻出する文字列に基づいて、単語をより小さな単位(サブワード)に分割する。たとえば、"unbreakable "は["un", "break", "able"]にトークン化される。このテクニックは、希少な単語を扱い、語彙サイズを小さくするのに有効であり、BERT(Bidirectional Encoder Representations from Transformers)やGPT(Generative Pre-trained Transformer)(GPT-4や GPT-3を含む)ファミリーのようなモデルでは特に有益である。
関連性と応用
トークン化はほとんどすべての自然言語処理タスクの前提条件であり、機械が人間の言語を処理し理解できるようにする。その用途は広大で、さまざまなドメインにまたがっている:
- センチメント分析: センチメント分析では、トークン化によってカスタマーレビューやソーシャルメディアへの投稿を個々の単語やフレーズに分解し、それを分析して全体的なセンチメント(肯定的、否定的、中立的)を判断します。たとえば、「ThisUltralytics HUB is incredibly user-friendly!」という文章を分析する場合、トークン化することで、センチメント分析モデルは「elibly(信じられないほど)」や「user-friendly(ユーザーフレンドリー)」といった個々の単語に焦点を当て、肯定的なセンチメントを測定することができます。
- 機械翻訳: 機械翻訳にはトークン化が欠かせない。文章をある言語から別の言語に翻訳する前に、まず文章をトークン化します。これにより、翻訳モデルはテキストを単語単位、またはサブワード単位で処理できるようになり、正確で文脈を考慮した翻訳が可能になる。例えば、"How to trainUltralytics YOLO models "を翻訳する場合、トークン化された文章を単語やサブワードに変換してから、別の言語に翻訳します。
- テキスト生成: 大規模言語モデル(LLM)のようなテキスト生成に使われるモデルは、トークン化に大きく依存している。テキストを生成する際、これらのモデルはシーケンス内の次のトークンを予測する。トークン化により、単語やサブワードなど意味のある単位から出力が構成され、首尾一貫した文法的に正しいテキストが生成されます。
- 検索エンジンと情報検索:検索エンジンは、トークン化を利用してウェブページのインデックスを作成し、検索クエリを処理します。Ultralytics YOLO "で物体検出」と検索すると、検索エンジンはクエリをキーワードにトークン化し、これらのトークンをインデックスされたコンテンツと照合して関連する結果を検索します。セマンティック検索は、トークンの意味とその文脈を理解することで、このプロセスをさらに洗練させます。
トークン化の種類
トークン化の基本コンセプトは単純だが、言語やNLPタスクによってさまざまなテクニックがある:
- 空白文字のトークン化:この単純な方法は、空白文字(スペース、タブ、改行)に基づいてテキストを分割する。実装は簡単ですが、句読点を効果的に扱えない可能性があり、単語の区切りにスペースを使わない言語では苦労します。
- ルールベースのトークン化:このアプローチでは、句読点、短縮形、その他の言語特有のニュアンスを扱うために、あらかじめ定義されたルールを使用します。たとえば、句読点を個別のトークンとして区切ったり、「can't」のような短縮形を2つのトークンとして扱ったりするルールを設定できます:「ca "と "n't "です。
- 統計的トークン化:より高度な手法では、大規模なテキストコーパスで学習した統計モデルを使用してトークン境界を決定します。Byte Pair Encoding (BPE) や WordPiece などのサブワード トークン化アルゴリズムを含むこれらの手法は、複雑な言語や語彙の少ない単語を扱うのに特に効果的です。
トークン化のメリット
トークン化は、AIとMLの文脈でいくつかの重要な利点を提供する:
- テキストデータの簡素化:トークン化は、テキストを管理しやすい小さな単位に分解することで、複雑な非構造化テキストデータをアルゴリズムが効率的に処理できる形式に変換します。
- 数値表現が可能:トークンは、機械学習モデルの標準的な入力であるベクトルなどの数値表現に簡単に変換できる。この変換は、モデルがテキストデータのパターンと関係を学習するために不可欠である。単語の埋め込みなどの技術は、意味的な意味を捉えることによって、この表現をさらに強化する。
- モデル・パフォーマンスの向上:効果的なトークン化は NLP モデルのパフォーマンスを大幅に向上させます。特定のタスクと言語に適したトークン化戦略を選択することで、分類、翻訳、生成などのタスクの精度と効率が向上します。
- 語彙サイズの管理:特にサブワード トークン化は、語彙サイズの管理に役立ちます。単語をサブワード単位に分解することで、モデルが学習する必要のある一意のトークンの数を減らし、モデルをより効率的にし、珍しい単語や見たことのない単語を含む、より幅広いテキストを処理できるようにします。
要約すると、トークン化はNLPとMLにおける重要な前処理ステップであり、コンピュータがテキストデータを理解し処理できるようにする。トークン化の有効性は、選択されたテクニックと、特定のタスクと言語に対する適合性に依存します。トークン化を理解することは、センチメント分析からUltralytics YOLO -World のような複雑な言語モデルまで、テキストベースのAIアプリケーションを扱うすべての人にとって基本的なことです。