# 学会記事
## GiNZA - Universal Dependenciesによる実用的日本語解析

\author{
松田寛 $\dagger$
}

## 1 はじめに

Universal Dependencies (UD) の日本語解析系として GiNZA ${ }^{1}$ 利用が広がりを見せ，2020 年 1 月から 5 ケ月間のダウンロード数が 2 万回を超えた。また, 2020 年 5 月に公開された UD_Japanese-GSD（日本語 GSD）v2.6 は，日本語 Webテキスト 8,070 文（うち訓練用 7,026 文） に対して国語研基準で正解が与えられた商用利用も可能な本格的なオープン Treebank となった $^{2}$. さらに日本語 GSD 全体に固有表現の正解ラベル $3{ }^{3}$ 追加した v2.6-NE が Megagon Labs から公開された ${ }^{4}$. この最新の日本語 GSD を訓練データに用いることにより様々な UD 対応 NLP フレームワークで日本語が扱えるようになり，利用者は GiNZA 以外の選択肢も手軽に得られるようになった，本稿では，GiNZAの使い方など概要を説明した上で，UD 対応 NLP フレームワークでの日本語の統語解析が実用レベルにあるかについて文節主辞認定を題材に評価する.

## 2 GiNZA

GiNZA は産業利用を想定して高速・軽量化された NLP フレームワークである $\mathrm{spaCy}^{5}$ と形態素解析器 SudachiPy6を用いて実装されている。Python 3.6 以上を導入済みの環境であれば,

\$ pip install ginza

のコマンド一行でインストールが完結し，spaCyの CNN マルチタスク学習器を用いて UD_ Japanese-BCCWJ (Omura and Asahara 2018) から新聞記事を除外した 41,072 文（うち訓練用 27,314文）に GSK2014-A (橋本，乾，村上 2008)の拡張固有表現を加えて学習した解析モデルを即座に利用できる。この導入の容易さも利用者の支持を得た一つの要因となっている. GiNZA をインストールすると ginza コマンドが実行パスに登録される. ginzaコマンドは標準入力から
^{4}$ https://github.com/megagonlabs/UD_Japanese-GSD/releases

5 https://spacy.io

 }^{6}$ https://github.com/WorksApplications/SudachiPy

読み込んだテキストの解析結果をタブ区切りの CoNLL-U 形式7で次のように出力する.

Python ライブラリ：GiNZA の機能を Python プログラムで使用するサンプルを付録に示す. 2020 年 6 月中旬に Twitter Search API で東京都の選挙に関連するツイートを取得し, サンプルコードで得た高頻度の依存関係から特徴的なものを選別した結果を表 1 に示す 8.

トークン化とパイプライン：GiNZA がトークン化で使用する SudachiPy のコア辞書の登録語は UniDic 短単位基準で構成されているが, 長単位の複合語を分割情報付きで出力することもできる (坂本, 川原, 久本, 高岡, 内田 2018). GiNZA では最も長い単位のモード Cを用いてパイプラインの学習を行うことで依存構造解析精度を高めている。解析結果を短単位（モード

A）で取り出す場合には図 1 右側のように CompoundSplitter をパイプラインに配備する.

また, UD 品詞 (UPOS) の推定において, UniDic 短単位品詞に含まれる名詞-普通名詞-サ変可能などの可能性品詞は, 用法に基づいて NOUN や VERB などに解決する必要がある. GiNZA v4ではトークン化処理で品詞 bi-gram 規則で UPOS を決定している.

表 1 ツイート分析結果から選別した特徴的な依存関係

 \cdot \mathrm{CaboCha} \cdot \mathrm{spaCy}$ の各形式も指定できる.)

8 query=“選挙東京 OR 都 exclude:retweets” で得られた 19,826 ツイート・37,629 文を使用. Sudachi 同義語辞書を用いた正規化や用言の否定判定の GiNZA への機能追加は今後の課題である.
}

## $3 \mathrm{UD$ 対応 NLP フレームワーク}

spaCy： 日本語 GSD v2.6-NE (松田, 若狭, 山下, 大村, 浅原 2020)のリリースからほどなくして，その学習済みモデル ${ }^{9}$ が spaCy v2.3.0 と同時に公式リリースされた. 図 2 のライブラリ構成 10 において, 日本語モデルは Tokenizer に SudachiPy 及びコア辞書を使用する点で他の言語と設計が異なっている. spaCy 日本語モデルのパイプラインは SudacihPy モードA（短単位）で学習されており, UPOS 推定は GiNZA と同じ品詞 bi-gram 規則が用いられている。なお

図 1 GiNZA v4 Pipeline Architecture

図 2 spaCy Library Architecture

図 3 Stanza Pipeline


spaCy 公式オンラインコース ${ }^{11}$ が有志により日本語化されている.

Stanza $^{12}$ ：代表的な end-to-end（辞書等を使用せずトークン化を含めてパイプライン全段を訓練コーパスのみで学習する ${ }^{13}$ ) アーキテクチャの NLP フレームワーク (Qi, Zhang, Zhang, Bolton, and Manning 2020). 日本語モデルは前身の Standord NLP の時代から公開されてきた.日本語 GSD v2.5 までの学習済みモデルはトークン化の精度がボトルネックであったが，著者が v2.6-NE を用いて独自に訓練したモデルを評価したところ大幅な精度向上が確認された。

## 4 UD と文節

日本語 UD (浅原, 金山, 宮尾, 田中, 大村, 村脇, 松本 2019) に基づいて解析された依存木から文節主辞間の関係を示す依存関係を判別できれば，その依存元トークンを根とする部分木を文節と見なすことができる。しかしUDは言語固有の統語構造を考慮した設計ではない。本章では UDの解析木から文節主辞を判定するために GiNZA v4 が導入した方式を解説する 14 .

文節主辞間の依存関係の分布：日本語 GSD v2.6-NE には国語研が付与した文節情報 (BunsetuBILabel）が含まれており，これを利用して文節主辞から外部への依存関係に付与された依存関係の出現数の分布と，全トークンに付与された依存関係の出現数の分布とを比較したところ, 文節主辞間の関の割合が高いものは少なく, UD で定義される依存関係から直接的に文節主辞を同定することは困難なことがわかった.

文節主辞を判別するための依存関係ラベル拡張：依存構造解析モデルの訓練時に文節主辞トークンの依存関係のラベルを $\{$ relation $\}$ _bunsetu の形に拡張することで，依存関係から文節主辞を識別可能な形に変更して学習・評価を行った。結果を表 2 に示す.

表 2 依存関係ラベル拡張による文節主辞認定精度


解析結果で依存関係が正解だったトークンについては拡張されたラベルから文節主辞を同定できている。これは，文節べースのコーパスから UDへの変換規則 (Omura and Asahara 2018)を再現することが容易であることを示している。一方，依存関係の解析自体が失敗しているコンテキストでの文節主辞判定の再現率は 0.126 と低いが適合率は 0.9 程度を確保できている。GiNZA $\mathrm{v} 4$ はこの依存関係ラベル拡張による文節主辞認定を採用し，さらに文節主辞が未検出となった区間でルールベースの主辞認定を行うことで文節主辞判定のカバレッジを確保している.

## 5 複合語の短単位への書き換え

GiNZA v4では CompoundSplitter を用いることで複合語を依存関係つきで短単位語に分解できる。分解後の短単位語の依存先は, 元の複合語とその依存先との間に付与された依存関係が compound, nummod, punctのいずれかの場合は，更に長い単位の複合語を形成するために短単位語の依存先を元の複合語の依存先と同一とし, それ以外の場合は複合語末尾に位置する短単位語を依存先としている。短単位語に付与する依存関係は，元の複合語の UPOSを手がかりに \{ADJ: amod, ADP: case, NUM: nummod, PART: mark, PUNCT: punct, (default): compound\} のように決定するルールを用いた ${ }^{15}$.これらの書き換え規則をモード Cの出力に適用した結果， $\mathrm{UAS}$ LAS・MLAS ${ }^{16}$ の各値はモードA と比べて約 $1 \%$ 改善した ${ }^{17}$.

## 6 性能評価

日本語 GSD v2.6-NE を用いて日本語 UD 解析系の性能を評価した ${ }^{18} . \mathrm{spaCy}$ は公式モデルの ja_core_news_mdを，GiNZAとStanzaは訓練セットで学習したモデルを用いた。速度評価ではテストセットの全ての文を結合したテキストを入力することでパイプラインの処理効率を最大化した。表 3 において spaCyや GiNZA が精度・速度の多くの指標で Stanzaを上回っている

表 3 日本語 GSD v2.6-NE を用いた日本語 UD 解析系のベンチマーク



が，Stanza は Tokenizer に形態素解析器を組み达むことで性能が向上する余地がある.

## 謝 辞

著者が形態素解析器 ChaSen verion 2.0 のリリースに関わってから 20 年の間に統語解析技術は機械学習技術とともに目覚ましい進歩を遂げた。一方，それらの訓練に用いる Treebankコー パスのオープン化（特に商用目的での利用）では日本語は英語などに大きく遅れをとってきた. OSS NLP フレームワークが世界市場でシェアを広げる中，OSS に馴染まない言語固有のコー パス事情から日本語の解析技術が世界市場で相手にされなくなる懸念が生じていた。この問題について著者は国立国語研究所の浅原氏とディスカッションし, まずは商用利用可能な日本語依存構造解析器としてGiNZA を開発・公開する運びとなった。このGiNZA という名称は，日本文化を発信し時代の最先端で世界と影響を与え合ってきた街であり, Megagon Labs が属するリクルートグループの拠点である銀座の地から，全世界のビジネスで手軽に使える日本語 NLP を提供し，産業活性化に貢献したいという想いから名付けられた。

その後，浅原氏の尽力により UD_Japanese-GSD のライセンスから Non-commercial 条項を削除できたことで, このコーパスから学習した解析モデルを商用目的を含めて公開・利用できるようになった。 さらに UD Japanese グループによるUD_Japanese-GSD の再整備 (v2.6), Megagon Labs による固有表現情報の追加 (v2.6-NE) を経て, spaCy や Stanza などの NLP フレームワー クを用いて高精度な日本語解析モデルを容易に構築できるようになった。

$\mathrm{spaCy}$ 日本語モデルのリリースでは多くのエンジニアからコントリビュートを得た。 またワー クスアプリケーションズ徳島人工知能 NLP 研究所の皆様には SudachiPy の統合にご協力いたたいた。これらのOSS・オープンデータ活動に支援をいただいた全ての方々に感謝申し上げたい.

## 参考文献

浅原正幸, 金山博, 宮尾祐介, 田中貴秋, 大村舞, 村脇有吾, 松本裕治 (2019). Universal Dependencies 日本語コーパス. 自然言語処理, 26 (1), pp. 3-36.

橋本泰一, 乾孝司, 村上浩司 (2008). 拡張固有表現夕グ付きコーパスの構築. 情報処理学会研究

報告. 自然言語処理研究会報告, 188, pp. 113-120.

松田寞，若狭絢，山下華代，大村舞，浅原正幸 (2020). UD Japanese GSD の再整備と固有表現

情報付与. 言語処理学会第 26 回年次大会発表論文集.

Omura, M. and Asahara, M. (2018). "UD-Japanese BCCWJ: Universal Dependencies Annotation for the Balanced Corpus of Contemporary Written Japanese." In Proceedings of the 2nd Workshop on Universal Dependencies (UDW 2018), pp. 117-125, Brussels, Belgium.

Qi, P., Zhang, Y., Zhang, Y., Bolton, J., and Manning, C. D. (2020). "Stanza: A Python Natural Language Processing Toolkit for Many Human Languages." In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics: System Demonstrations, pp. 101-108.

坂本美保, 川原典子, 久本空海, 高岡一馬, 内田佳孝 (2018). 形態素解析器『Sudachi』のための大規模辞書開発. 言語資源活用ワークショップ発表論文集, 3, pp. 118-129.

## 付録

プログラム 1 GiNZA を用いた述語と格要素の共起頻度のカウント

## 略歴

松田寛：2000 年奈良先端科学技術大学院大学情報科学研究科博士前期課程

修了。修士 (工学)。2000 年に株式会社ジャストシステム入社, 2002 年より

NLP 技術部門をリード，2010 年より研究開発部長. 2012 年にベンチャーへ

転向。2018 年に Megagon Labs（株式会社リクルート）へジョイン。現在に

至る. 自然言語処理, 文分散表現, 感情分析の研究に従事.