自然言語ライブラリGiNZAの最速レビュー


# はじめに

リクルートや国立研究所が作ったという自然言語処理ライブラリ「GiNZA」を使ってみた。

>
リクルートのAI研究機関、国立国語研究所との共同研究成果を用いた日本語の自然言語処理ライブラリ「GiNZA」を公開
2019年04月02日
株式会社リクルート

出典：https://www.recruit.co.jp/newsroom/2019/0402_18331.html

いや、ほんとにこういうの待ってたんですよ。ガラパゴス諸島の日本語話者としては。MeCabは有名ですが、makeからはじまる環境ってのもね・・・。かと言ってMeCabラッパーつかうのも何かなーと。

# Let's try!

まずはvenvでPython3の仮想環境を構築。仮想環境を使えばもとの環境は汚さずにすむ。

```bash
$ python3 -m venv venv
```

次に仮想環境をアクティベートする。これで仮想環境に入れる。 コンソールの頭に`(venv)`が出てきたら成功。

```bash
$ source venv/bin/activate
(venv) $
```

次に[GiNZAのGetting Start](https://megagonlabs.github.io/ginza/)を参考にGiNZAをインストールする。

```bash
(venv) $ pip install "https://github.com/megagonlabs/ginza/releases/download/v1.0.1/ja_ginza_nopn-1.0.1.tgz"
```

次に[GiNZAのGetting Start](https://megagonlabs.github.io/ginza/)を参考にコマンドラインツールを実行する。

```bash
(venv) $ python -m spacy.lang.ja_ginza.cli
Loading model 'ja_ginza_nopn'
mode is C
disabling sentence separator
```

入力待ちになるので日本語の文章`次の元号は令和ですね。`と入力してEnterを押す。

```bash
次の元号は令和ですね。
# text = 次の元号は令和ですね。
1       次      次      NOUN    名詞-普通名詞-一般      _       3       nmod    _       SpaceAfter=No|NP_B
2       の      の      ADP     助詞-格助詞     _       1       case    _       SpaceAfter=No
3       元号    元号    NOUN    名詞-普通名詞-一般      _       5       nsubj   _       SpaceAfter=No|NP_B
4       は      は      ADP     助詞-係助詞     _       3       case    _       SpaceAfter=No
5       令和    令和    PROPN   名詞-固有名詞-一般      _       5       root    _       SpaceAfter=No|NP_B
6       です    です    AUX     助動詞  _       5       cop     _       SpaceAfter=No
7       ね      ね      PART    助詞-終助詞     _       5       aux     _       SpaceAfter=No
8       。      。      PUNCT   補助記号-句点   _       5       punct   _       SpaceAfter=No
```

うまく解析できた。

もうちょっと実務的な文章を解析してみる。

```bash
元号が令和に変更されたあとで元号変換モジュールを改修したら、爆死した。
# text = 元号が令和に変更されたあとで元号変換モジュールを改修したら、爆死した。
1       元号    元号    NOUN    名詞-普通名詞-一般      _       5       nsubj   _       SpaceAfter=No|NP_B
2       が      が      ADP     助詞-格助詞     _       1       case    _       SpaceAfter=No
3       令和    令和    PROPN   名詞-固有名詞-一般      _       5       obl     _       SpaceAfter=No|NP_B
4       に      に      ADP     助詞-格助詞     _       3       case    _       SpaceAfter=No
5       変更    変更    VERB    名詞-普通名詞-サ変可能  _       9       acl     _       SpaceAfter=No
6       さ      為る    AUX     動詞-非自立可能 _       5       aux     _       SpaceAfter=No
7       れ      れる    AUX     助動詞  _       5       aux     _       SpaceAfter=No
8       た      た      AUX     助動詞  _       5       aux     _       SpaceAfter=No
9       あと    後      NOUN    名詞-普通名詞-副詞可能  _       15      nmod    _       SpaceAfter=No|NP_B
10      で      で      ADP     助詞-格助詞     _       9       case    _       SpaceAfter=No
11      元号    元号    NOUN    名詞-普通名詞-一般      _       13      compound        _       SpaceAfter=No|NP_B
12      変換    変換    NOUN    名詞-普通名詞-サ変可能  _       13      compound        _       SpaceAfter=No|NP_I
13      モジュール      モジュール      NOUN    名詞-普通名詞-一般      _       15      obj     _       SpaceAfter=No|NP_I
14      を      を      ADP     助詞-格助詞     _       13      case    _       SpaceAfter=No
15      改修    改修    VERB    名詞-普通名詞-サ変可能  _       19      dep     _       SpaceAfter=No
16      し      為る    AUX     動詞-非自立可能 _       15      aux     _       SpaceAfter=No
17      たら    た      AUX     助動詞  _       15      aux     _       SpaceAfter=No
18      、      、      PUNCT   補助記号-読点   _       15      punct   _       SpaceAfter=No
19      爆死    爆死    VERB    名詞-普通名詞-サ変可能  _       19      root    _       SpaceAfter=No
20      し      為る    AUX     動詞-非自立可能 _       19      aux     _       SpaceAfter=No
21      た      た      AUX     助動詞  _       19      aux     _       SpaceAfter=No
22      。      。      PUNCT   補助記号-句点   _       19      punct   _       SpaceAfter=No
```

うまく解析できた。