【Python】自然言語処理ライブラリのNLTKをインストールする

【Python】自然言語処理ライブラリのNLTKをインストールする プログラミング

Pythonで自然言語処理と言えば、NLTKは選択肢の一つです。
NLTKは、Natural Language Toolkitの略称です。

本記事の内容

  • NLTKとは?
  • NLTKのシステム要件
  • NLTKのインストール
  • NLTKの動作確認

それでは、上記に沿って解説していきます。

NLTKとは?

公式サイト
https://www.nltk.org/

NLTKとは、Pythonで自然言語処理を行うためのライブラリです。
NLTKの主な機能は以下。

  • テキスト分類
  • トークン化
  • ステミング
  • 品詞(POS)タグ付け
  • テキスト構文解析
  • 意味論的推論

対象が英語であれば、形態素解析もNLTKだけで行対応できます。
対象が日本語ならば、Mecabなどで形態素解析を行う必要があります。

そもそも、NLTKは英文を言語処理すること目的で開発されました。

だからと言って、日本語で利用できないわけではありません。
日本語コーパスを用意すれば、NLTKは日本語でも言語処理が可能です。

以上、NLTKについて説明を行いました。
次は、NLTKのシステム要件を確認しましょう。

NLTKのシステム要件

現時点(2021年7月)でのNLTKの最新バージョンは、3.6.2となります。
この最新バージョンは、2021年4月20日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応となります。

  • Windows
  • macOS
  • Linux

基本的には、OSは問わないということです。
そして、サポート対象となるPythonのバージョンは以下。

  • Python 3.5
  • Python 3.6
  • Python 3.7
  • Python 3.8
  • Python 3.9

Pythonの公式開発サイクルとは、若干異なります。
Pythonの公式開発サイクルは、以下。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月
3.72018年6月27日2023年6月
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月

見比べると、NLTKが少し古いバージョンのPythonに対応し過ぎですかね。
なお、今回は以下のPythonを利用して検証しています。

>python -V
Python 3.9.6

以上、NLTKのシステム要件について説明しました。
次は、NLTKをインストールしていきます。

NLTKのインストール

まず、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        21.1.3
setuptools 57.4.0

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、NLTKのインストールです。
NLTKのインストールは、以下のコマンドとなります。

pip install nltk

インストールは、少しだけ時間がかかります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package    Version
---------- --------
click      8.0.1
colorama   0.4.4
joblib     1.0.1
nltk       3.6.2
pip        21.1.3
regex      2021.7.6
setuptools 57.4.0
tqdm       4.61.2

依存するパッケージは、5個ほどありますね。

以上、NLTKのインストールについての説明でした。
最後に、NLTKの動作確認を行います。

NLTKの動作確認

テキストをトークン化してタグ付けします。
それを行うのは、以下のコードです。

import nltk

sentence = """At eight o'clock on Thursday morning
Arthur didn't feel very good."""

tokens = nltk.word_tokenize(sentence)
tagged = nltk.pos_tag(tokens)
print(tagged[0:6])

上記を実行すると、以下の結果が表示されます。

[('At', 'IN'), ('eight', 'CD'), ("o'clock", 'NN'), ('on', 'IN'), ('Thursday', 'NNP'), ('morning', 'NN')]

上記の結果が表示となれば、NLTKの動作確認は問題ありません。

以上、NLTKの動作確認の説明でした。

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