【Python】Stanza(旧StanfordNLP)のインストール

【Python】Stanza(旧StanfordNLP)のインストール データ分析

Pythonには、自然言語処理において複数の選択肢が存在しています。
その中でも、新興勢力とでも言うべきモノにStanzaがあります。

この記事では、そのStanzaについて説明していきます。

本記事の内容

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

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

Stanzaとは?

Stanza公式
https://stanfordnlp.github.io/stanza/

Stanzaは、自然言語処理を行うためのPythonライブラリです。
70以上の言語に対応しています。
もちろん、その中に日本語も入っています。

そして、特徴的なのはニューラルネットワークで訓練と評価が可能なことです。
その際には、PyTorchが利用されています。
つまり、Stanzaは機械学習をベースに機能するということです。

また、StanzaはもともとStanfordNLPという名前で開発されていました。
名前からもわかるように、スタンフォード大学が中心となっての開発でした。

Stanzaにプロジェクトが移行した後でも、スタンフォード大学主導には変わりないようです。

以上、Stanzaについての説明でした。
次は、Stanzaのシステム要件を確認します。

Stanzaのシステム要件

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

Stanzaのシステム要件は、次の3つの点で確認が注意が必要です。

  • OS
  • Python
  • PyTorch

それぞれを下記で説明します。

OS

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

  • Windows
  • macOS
  • Linux

Pythonが動けば、基本的には何でもOKということでしょう。

Python

サポート対象となるのは、以下のバージョンです。

  • Python 3.6
  • Python 3.7
  • Python 3.8

ただし、Python 3.9も問題ありません。
setup.pyには、以下の記述があります。

# List required Python versions
python_requires='>=3.6',

Python 3.6以降であれば、インストール可能です。
実際、Python 3.8がOKで、Python 3.9がNGなんて存在しないでしょう。

なお、私は以下のPythonで検証しています。

>python -V
Python 3.9.6

PyTorch

Stanzanのシステム要件では、PyTorchが最もポイントになります。
PyTorchがインストール済みであることが前提です。

PyTorchのインストールに関しては、次の記事で解説しています。
記事通りにやれば、簡単にPyTorchをインストールできます。

GPUに対応したマシンであれば、GPU版PyTorchのインストールをおススメします。
それをインストールしておけば、Stanzanもその分だけ高速に処理が可能となります。

また、StanzanではPyTorch 1.3.0以降が必須です。
現時点(2021年7月末)の最新版PyTorchのバージョンは、1.9.0となります。

まとめ

Stanzaには、PyTorchがインストール済みであることが必要です。
そして、Pythonはなるべく新しいモノを使いましょう。

最低でもPython 3.6以降です。
Pythonのアップグレードを行う場合は、次の記事が参考になります。

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

Stanzaのインストール

まずは、現状のインストール済みパッケージを確認しておきます。
もちろん、PyTorchはインストール済みです。

>pip list
Package           Version
----------------- ------------
numpy             1.21.1
Pillow            8.3.1
pip               21.1.3
setuptools        57.4.0
torch             1.9.0+cu111
torchaudio        0.9.0
torchvision       0.10.0+cu111
typing-extensions 3.10.0.0

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

python -m pip install --upgrade pip setuptools

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

pip install stanza

インストールは、意外と早く終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package            Version
------------------ ------------
certifi            2021.5.30
charset-normalizer 2.0.3
colorama           0.4.4
idna               3.2
numpy              1.21.1
Pillow             8.3.1
pip                21.1.3
protobuf           3.17.3
requests           2.26.0
setuptools         57.4.0
six                1.16.0
stanza             1.2.2
torch              1.9.0+cu111
torchaudio         0.9.0
torchvision        0.10.0+cu111
tqdm               4.61.2
typing-extensions  3.10.0.0
urllib3            1.26.6

PyTorchと被るモノもありますが、そこそこ多くのパッケージがインストールされました。
このこともからも、仮想環境にStanzaをインストールした方がよいでしょうね。

Pythonで仮想環境を利用するのは簡単です。
次の記事では、仮想環境の利用方法を解説しています。

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

Stanzaの動作確認

簡単な機能でStanzaの動作確認を行います。
公式にあるサンプルを日本語用に変更しています。

import stanza

stanza.download('ja')  # ニューラル・パイプライン用の日本語モデルをダウンロードします
nlp = stanza.Pipeline('ja')  # 日本語でのデフォルトのニューラル・パイプラインが設定されます
doc = nlp("バラク・オバマはハワイで生まれた。 2008年に大統領に就任。")
doc.sentences[0].print_dependencies()  # 係り受け解析

上記を実行すれば、以下のような結果が表示されます。



=======================
| Processor | Package |
-----------------------
| tokenize  | gsd     |
| pos       | gsd     |
| lemma     | gsd     |
| depparse  | gsd     |
=======================

2021-07-22 09:21:28 INFO: Use device: gpu
2021-07-22 09:21:28 INFO: Loading: tokenize
2021-07-22 09:21:29 INFO: Loading: pos
2021-07-22 09:21:29 INFO: Loading: lemma
2021-07-22 09:21:29 INFO: Loading: depparse
2021-07-22 09:21:29 INFO: Done loading processors!
('バラク', 3, 'compound')
('・', 3, 'compound')
('オバマ', 7, 'nsubj')
('は', 3, 'case')
('ハワイ', 7, 'obl')
('で', 5, 'case')
('生まれ', 0, 'root')
('た', 7, 'aux')
('。', 7, 'punct')

上記コードを最初に実行した場合、結構時間がかかります。
それは、日本語モデル(約410MB)をダウンロードしているからです。
一度ダウンロードしたら、それ以降はダウンロード済みのモデルを利用します。

ここまで確認できれば、Stanzaの動作確認としては十分でしょう。

以上、Stanzaの動作確認を説明しました。

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