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.6 | 2016年12月23日 | 2021年12月 |
3.7 | 2018年6月27日 | 2023年6月 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年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の動作確認の説明でした。