yasuokaの日記: UniDic2UD + COMBO-pytorchの日本語係り受け解析結果をspaCyで扱うためのpythonモジュールUniDic-COMBOを仮リリース
昨日の日記で作ったCOMBO-pytorchの日本語係り受け解析モデルを改良した上で、UniDic2UDとspaCyに繋いでみた。アイデアとしては、私(安岡孝一)の『形態素解析部の付け替えによる近代日本語(旧字旧仮名)の係り受け解析』を応用したもので、UniDic-COMBOという名前で仮リリースすることにする。インストールは、Linuxならば
$ pip3 install git+https://github.com/KoichiYasuoka/UniDic-COMBO
一発で行けると思うが、元のCOMBO-pytorchがPyTorchだのAllenNLPだのTransformersだのJsonnetだのをインストールしまくるため、Linux以外の環境でのインストールは困難を極める。運よくインストールできたら、「產まれん子は君に似て黑き瞳子をや得ん」を近代文語UniDicで形態素解析して、さらにCOMBO-pytorchで係り受け解析してみよう。
$ python3
>>> import unidic_combo
>>> nlp=unidic_combo.load("kindai")
>>> doc=nlp("產まれん子は君に似て黑き瞳子をや得ん")
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
產ま VERB ═╗═╗<╗ acl(連体修飾節)
れ AUX <╝ ║ ║ aux(動詞補助成分)
ん AUX <══╝ ║ aux(動詞補助成分)
子 NOUN ═╗═══╝<════╗ nsubj(主語)
は ADP <╝ ║ case(格表示)
君 PRON ═╗<╗ ║ obl(斜格補語)
に ADP <╝ ║ ║ case(格表示)
似 VERB ═══╝═╗<══╗ ║ advcl(連用修飾節)
て SCONJ <════╝ ║ ║ mark(標識)
黑き ADJ <════╗ ║ ║ acl(連体修飾節)
瞳子 NOUN ═╗═╗═╝<╗ ║ ║ obj(目的語)
を PART <╝ ║ ║ ║ ║ case(格表示)
や ADP <══╝ ║ ║ ║ case(格表示)
得 VERB ═╗═════╝═╝═╝ ROOT(親)
ん AUX <╝ aux(動詞補助成分)
最初の起動では、言語モデルや辞書をダウンロードしてくるので、かなり時間がかかる。でも、一度ちゃんと動けば、近代文語や旧字旧仮名の係り受け解析が、高い精度で可能になるはずだ。spaCy-SynChaともども、ぜひ試してみてほしい。
UniDic2UD + COMBO-pytorchの日本語係り受け解析結果をspaCyで扱うためのpythonモジュールUniDic-COMBOを仮リリース More ログイン