NLTK トークナイズ: 単語と文のトークナイザーと例

⚡ スマートサマリー

NLTK Tokenizeは、大きなテキストをトークンと呼ばれる小さな単位に分割します。これは自然言語処理における基本的なステップです。このツールキットには、文を単語に分割するword_tokenizeと、テキストを個々の文に分割するsent_tokenizeが用意されています。

  • ✂️ トークン化: 分析のために、大きなテキストをトークンと呼ばれる小さな単位に分割します。
  • 🧠 NLP Foundation: 語幹抽出、語形変化、およびテキストから数値への変換の基本ステップとして機能します。
  • 🔤 word_tokenize(): 文を句読点ごと個々の単語に分割します。
  • 📝 sent_tokenize(): 文章を複数の文に分割します。
  • 📊 使用事例: 両方を組み合わせることで、機械学習における文あたりの平均単語数などの特徴量を計算できます。

NLTKトークン化

トークン化とは何ですか?

トークン化 大量のテキストをトークンと呼ばれる小さな部分に分割するプロセスです。 これらのトークンはパターンを見つけるのに非常に役立ち、ステミングと見出し語化の基本ステップとして考慮されます。 トークン化は、機密データ要素を非機密データ要素に置き換えるのにも役立ちます。

自然言語処理は、テキスト分類、 インテリジェントなチャットボット、感情分析、言語翻訳など。上記の目的を達成するには、テキスト内のパターンを理解することが重要になります。

今のところ、ステミングとレマタイズについては気にせず、NLP(自然言語処理)を使用したテキストデータのクリーニングのステップとして扱ってください。ステミングとレマタイズについては、チュートリアルの後半で説明します。 テキスト分類またはスパムフィルタリング Keras や Keras などの深層学習ライブラリとともに NLP を利用します。 テンソルフロー.

自然言語ツールキットには非常に重要なモジュール NLTK があります トークン化する さらにサブモジュールで構成される文

  1. 単語のトークン化
  2. 文のトークン化

単語のトークン化

私たちはこの方法を使用します word_tokenize() 文を単語に分割すること。 単語のトークン化の出力は、機械学習アプリケーションでのテキストの理解を向上させるためにデータ フレームに変換できます。 また、句読点の削除、数字の削除、ステミングなどのさらなるテキスト クリーニング ステップの入力として提供することもできます。 機械学習モデルには、トレーニングと予測を行うための数値データが必要です。 Word のトークン化は、テキスト (文字列) から数値データへの変換の重要な部分になります。 についてお読みください Bag of Word または CountVectorizer。 理論をよりよく理解するには、以下の単語トークン化 NLTK の例を参照してください。

from nltk.tokenize import word_tokenize
text = "God is Great! I won a lottery."
print(word_tokenize(text))

Output: ['God', 'is', 'Great', '!', 'I', 'won', 'a', 'lottery', '.']

単語のトークン化

Code 説明

  1. word_tokenize モジュールは NLTK ライブラリからインポートされます。
  2. 変数「text」は XNUMX つの文で初期化されます。
  3. テキスト変数は word_tokenize モジュールに渡され、結果が出力されます。 このモジュールは、出力で確認できるように、各単語を句読点で区切ります。

文のトークン化

上記に使用できるサブモジュールは send_tokenize です。 あなたの頭の中で次のような疑問が浮かぶでしょう。 単語のトークン化のオプションがあるのに、なぜ文のトークン化が必要なのか。 文ごとの平均単語を数える必要があると想像してください。どのように計算しますか? このようなタスクを実行するには、比率を計算するために NLTK 文トークナイザーと NLTK 単語トークナイザーの両方が必要です。 このような出力は、答えが数値になるため、機械トレーニングの重要な機能として機能します。

以下の NLTK トークナイザーの例を確認して、文のトークン化が単語のトークン化とどのように異なるかを確認してください。

from nltk.tokenize import sent_tokenize
text = "God is Great! I won a lottery."
print(sent_tokenize(text))

Output: ['God is Great!', 'I won a lottery ']

私たちは 12 言葉と XNUMX文 同じ入力に対して。

文のトークン化

プログラムの説明

  1. 前のプログラムと同様の行で、sent_tokenize モジュールをインポートしました。
  2. 私たちも同じ文を取り上げました。 NLTK モジュールのさらに文トークナイザーがその文を解析し、出力を表示します。 この関数が各文を分割していることは明らかです。

単語トークナイザーの上 Python これらの例は、単語と文のトークン化の仕組みを理解するための良い設定資料となります。

よくあるご質問

単語トークン化は、word_tokenize() 関数を使用してテキストを個々の単語と句読点に分割し、文トークン化は、sent_tokenize() 関数を使用してテキストを個々の文に分割します。これらは、1文あたりの単語数などの特徴を抽出するために、しばしば組み合わせて使用​​されます。

トークン化は、生のテキストを扱いやすい単位に変換する最初のステップであり、パターン検出、語幹抽出、語形変化、および機械学習モデルが分類や翻訳などのタスクに必要な数値特徴への変換を可能にします。

はい。NLTKは、適切なPunktモデルを読み込むことで複数の言語をサポートしています。例えば、`sent_tokenize(text, language='french')`のように使用できます。サポート状況は言語によって異なり、一部のスクリプトでは専用のトークナイザーが必要になる場合があります。

大規模な言語モデルは、処理前にテキストをトークン(多くの場合、単語の一部)に変換します。モデルは前のトークンに基づいて次のトークンを予測するため、トークン化はコンテキストの長さ、コスト、および出力品質に直接影響します。

はい。最新のAIトークナイザーは、バイトペアエンコーディングやワードピースなどのサブワード方式を使用し、まれな単語をより小さな断片に分割します。これにより、語彙をコンパクトに保ちながら、馴染みのない単語や複合語を適切に表現することができます。