NLTKライブラリを使って自然言語をトークン化する方法

スポンサーリンク

NLTKライブラリを使って、Pythonでトークン化を実装する方法を学びましょう。

人間として、私たちは互いにコミュニケーションをとるために、言語に大きく依存しています。

人工知能もまた、コンピュータが私たちの言語を理解することを必要としています。

コンピュータに言語を理解させ、処理させることは、自然言語処理(NLP)に含まれます。

自然言語処理とは、広義には「音声やテキストなどの自然言語をソフトウェアで自動的に操作すること」と定義されます。

トークン化は、NLPの下で行われる一般的なタスクです。

トークン化とは、テキストをトークンと呼ばれる小さな単位に分解することです。

これらのトークンは、自然言語処理(NLP)の構成要素となります。

スポンサーリンク

なぜトークン化が必要なのか?

LSTM や RNN などの NLP のディープラーニングアーキテクチャは、テキストをトークンの形で処理します。

テキストのコーパスに対してトークン化を実行することで、語彙を形成することができます

これらのトークンは、対応する言語モデルに適した方法で表現される。

この表現は単語埋め込みと呼ばれる。

最も一般的に見られる単語埋め込みモデルは、Skipgram と One-Hot-Encoding です。

この記事では、テキストをトークン化する方法を学びます。

テキストの段落をトークン化するためのpythonコードを書いてみましょう。

PythonでNLTKを使ったトークン化の実装

NLTKモジュールを使って、テキストのトークン化を行います。

NLTKとは、Natural Language ToolKitの略です。

Pythonで書かれた、記号的・統計的な自然言語処理のためのライブラリです。

NLTKを使用すると、テキストデータを処理するのが非常に簡単になります。

まずはNLTKのインストールから始めましょう。

1. NLTKライブラリのインストール

コンソールでpipコマンドを実行し、NLTKをインストールします。

pip install nltk
import nltk
nltk.download()

NLTKのコンポーネントをインストールするには、以下のコマンドを使用します。

from nltk.tokenize import sent_tokenize, word_tokenize

この記事では、2 種類のトークン化について説明します。

  • 文のトークン化
  • 単語トークン化

2. Pythonでトークン化を設定する

まず、必要なモジュールをインポートします。

"Hello there! Welcome to this tutorial on tokenizing. After going through this tutorial you will be able to tokenize your text. Tokenizing is an important concept under NLP. Happy learning!"

senten_tokenizeは文のトークン化、word_tokenizeは単語のトークン化を担当します。

今回トークン化するテキストは

text = "Hello there! Welcome to this tutorial on tokenizing. After going through this tutorial you will be able to tokenize your text. Tokenizing is an important concept under NLP. Happy learning!"

このテキストを変数に格納します。

print(sent_tokenize(text))

3. Python で sentament_tokenize() を使って文をトークン化します。

文単位でトークン化する場合は

['Hello there!', 'Welcome to this tutorial on tokenizing.', 'After going through this tutorial you will be able to tokenize your text.', 'Tokenizing is an important concept under NLP.', 'Happy learning!']

出力は以下のようになる。

print(word_tokenize(text))

これは、リストの各要素がテキストの文であるリストを返します。

4. word_tokenize()を使ったPythonの単語トークン化

単語単位でトークン化するために、:

['Hello', 'there', '!', 'Welcome', 'to', 'this', 'tutorial', 'on', 'tokenizing', '.', 'After', 'going', 'through', 'this', 'tutorial', 'you', 'will', 'be', 'able', 'to', 'tokenize', 'your', 'text', '.', 'Tokenizing', 'is', 'an', 'important', 'conceot', 'under', 'NLP', '.', 'Happy', 'learning', '!']

得られる出力は以下の通りです。

from nltk.tokenize import sent_tokenize, word_tokenize
 
text = "Hello there! Welcome to this tutorial on tokenizing. After going through this tutorial you will be able to tokenize your text. Tokenizing is an important concept under NLP. Happy learning!"
 
print(sent_tokenize(text))
print(word_tokenize(text))

リストの各要素がテキストからの単語であるリストを返します。

これをトークンとして言語モデルの学習に用いることができる。

NLTKを用いたトークン化のための完全なPythonコード

完全なコードは以下の通りです。

Download Nltk

まとめ

この記事では、Pythonでテキストをトークン化することについて説明しました。

また、トークン化の必要性と、NLTK を使用した Python での実装についても取り上げました。

テキストをトークン化した後、Python でテキストのセンチメントを識別することもできます。

Python によるセンチメント分析のチュートリアルを参照してください。

タイトルとURLをコピーしました