PythonでNLTKを使用してテキストをトークン化する
テキストのトークン化は基本的な自然言語処理 (NLP) 技術であり、そのような技術の 1 つが次のとおりです。 トークン化。 これは、テキストをより小さなコンポーネントまたはトークンに分割するプロセスです。これらは次のとおりです。
- 言葉: NLP が大好きです → [「私」「大好き」「NLP」]
- 文: 私は NLP が大好きです。パイソンは素晴らしいです。 → [「NLP が大好きです。」 「Python は素晴らしいです。」
Python の人気ライブラリを使用 NLTK (自然言語ツールキット)テキストを意味のある単位に分割することは、簡単かつ非常に効果的になります。
基本的な実装
Python で NLTK を使用したトークン化の実装を見てみましょう
ステップ 1: インストールとセットアップ
をインストールします ポイント 文と単語のトークン化に必要なトークナイザー モデル。
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
ステップ 2: 文をトークン化する
send_tokenize() は、文字列を句読点と略語を処理する文のリストに分割します。
Python from nltk.tokenize import sent_tokenize text = 'NLTK is a great NLP toolkit. It makes processing text easy!' sentences = sent_tokenize ( text ) print ( sentences )
出力:
[「NLTK は優れた NLP ツールキットです。」 「テキストの処理が簡単になります!」]
ステップ 3: 単語をトークン化する
- word_tokenize() は、文を単語と句読点に個別のトークンとして分割します。
- 短縮形の句読点番号などを処理します。
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
出力:
[「トークン化」は「NLTK」「s」「word_tokenize」を使用すると「簡単」「.」]
さらにいくつかの例を見てみましょう
1.WordPunctTokenizer
それ テキストをアルファベット文字とアルファベット以外の文字に分割します
- 一連の単語文字と句読点をすべてトークンに分割します。
- 特に分割収縮(Don'tがDon'tになる)。
- 電子メールを電子メールに分割します。
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
出力:
[「ドン」「」「ト」「裂ける」「収縮」「。」 「E」「-」「メール」「:」「こんにちは」「@」「例」「.」 「com」「!」]
2. TreebankWordTokenizer
句読点や短縮語を扱う言語分析に適しています。
- NLP 言語分析に一般的に使用される Penn Treebank スタイルのトークン化を模倣します。
- 特定の英語の文法構造をよりインテリジェントに処理します。
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
出力:
['NLTK' 's' 'トークナイザー' 'を'持っている' '見て' '.']
3.正規表現トークナイザー
パターンベースの分割をカスタマイズします。
- 正規表現パターンに基づいてトークン化します。
- w+ は、句読点を完全に省略した単語と数字に一致します。
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
出力:
[「カスタム」「ルール」「維持」「のみ」「単語」「数字」「ドロップ」「句読点」]
NLTK は、Python でテキストをトークン化するための便利でユーザーフレンドリーなツールキットを提供し、基本的な単語や文の分割から高度なカスタム パターンまで、幅広いトークン化ニーズをサポートします。
クイズの作成