PythonとNLTKを使ったテキストのトークン化方法を徹底解説
トークン化(Tokenization)とは?
トークン化とは、与えられた文字列や文書単位を、トークンと呼ばれる小さな断片に分割する処理のことです。この際、句読点などの特定の文字を取り除く場合もあります。NLTKやPythonの文脈では、各トークンをリストに格納する処理を指します。これにより、テキストを1文字ずつ処理する代わりに、トークン単位で繰り返し処理を行えるようになります。
自然言語処理(NLP)において、トークン化はテキスト分析の最初のステップとして非常に重要な役割を果たします。文章を意味のある単位に分解することで、その後の前処理や解析が格段に容易になります。
トークン化の具体例
例えば、次のような入力文字列があったとします。
Hi man, how have you been?
これをトークン化すると、以下の出力が得られます。
['Hi', 'man', ',', 'how', 'have', 'you', 'been', '?']
ご覧の通り、単語だけでなくカンマやクエスチョンマークといった句読点も、それぞれ独立したトークンとして扱われます。NLTKのword_tokenizeメソッドは、こうした細かい区切りを自動的に判定してくれるため、非常に便利です。
NLTKのword_tokenizeメソッドを使った実装
NLTKのnltk.tokenizeモジュールからword_tokenizeメソッドをインポートすることで、簡単にテキストをトークン化できます。以下に具体的なコード例を示します。
サンプルコード
from nltk.corpus import stopwords from nltk.tokenize import word_tokenize my_sent = "Hi man, how have you been?" tokens = word_tokenize(my_sent) print(tokens)
実行結果
上記のコードを実行すると、以下の出力が得られます。
['Hi', 'man', ',', 'how', 'have', 'you', 'been', '?']
事前準備:NLTKのインストールと設定
NLTKを使用する前に、必要なパッケージとデータをインストールしておきましょう。
pip install nltk
初回利用時には、トークン化に必要なデータセットをダウンロードする必要があります。Pythonインタプリタで以下を実行してください。
import nltk
nltk.download('punkt')
nltk.download('punkt_tab')これらのデータには、文や単語の境界を検出するために使われる学習済みモデルが含まれています。ダウンロードが完了すれば、上記のコードが正常に動作するはずです。
まとめ
NLTKのword_tokenizeメソッドを使えば、英語テキストを単語や句読点の単位で正確に分割できます。トークン化されたリストは、ストップワードの除去、頻度分析、機械学習モデルへの入力など、さまざまなNLPタスクの基礎となります。ぜひ実際のプロジェクトでも活用してみてください。
-
Pythonを使ってLinuxターミナルでテキストを装飾表示する方法
Linuxターミナルにおけるテキスト装飾の基本 本記事では、Pythonを使ってLinuxターミナル上に整形(装飾)されたテキストを出力する方法を解説します。フォーマット機能を活用すれば、文字色やスタイルだけでなく、点滅といった特殊な視覚効果も自由に付与できます。 Linuxターミナルは、ANSIエスケープシーケンスと呼ばれる制御コードに対応しており、これによって文字装飾やカラー表示などが実現できます。仕組みとしては、テキストの中に特定のバイト列を埋め込み、ターミナルがそれを解釈するタイミングで指定した書式が反映されるというものです。 ANSIエスケープシーケンスの基本構文は次のとおりです。
-
PythonでのCX_Freezeの使い方:スクリプトを実行ファイル(EXE)に変換する方法
はじめに 何か面白いものを作りたいという欲求は人間の本能であり、完成したものは誰かに共有したくなるものです。Pythonでもその願いを叶えられます。ただし、作成したPythonスクリプトをそのまま共有するには、相手のマシンにも同じバージョンのPythonと、プログラムで使用しているすべてのモジュールがインストールされている必要があります。 そこで役立つのがCX_Freezeです。このツールを使えば、Pythonがインストールされていない環境でも動作するスタンドアロンの実行ファイル(.exe)を作成できます。 CX_Freezeのインストール まず、コマンドプロンプトで以下のコマンドを実行し、c