yasuokaの日記: GiNZAが出力したUniversal DependenciesをSVGで可視化する
リクルートMegagon LabsがGiNZA日本語UDモデル(Ver.1.0.1令和版)をリリースしたので、私(安岡孝一)の「SVGによるUniversal Dependencies可視化ツール」に繋いでみることにした。GiNZA日本語UDモデルは、spaCy上での日本語自然言語オープンソースライブラリで、pip3とpython3があれば
% pip3 install 'https://github.com/megagonlabs/ginza/releases/download/v1.0.1/ja_ginza_nopn-1.0.1.tgz'
だけでインストールできて、係り受け解析の結果をUniversal Dependenciesで出力可能である。たとえば「心を労する者は人を治める」という文に対する係り受け解析は
% python3
>>> import spacy,urllib.parse,webbrowser
>>> from spacy.lang.ja_ginza.cli import token_line
>>> h="http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/kyodokenkyu/ud-kanbun/conllusvg/viewer.svg"
>>> ja=spacy.load("ja_ginza_nopn")
>>> d=ja("心を労する者は人を治める")
>>> u=""
>>> for s in d.sents:
... for t in s:
... u=u+token_line(t,{})+"\n"
... u=u+"\n"
...
>>> print(u)
>>> q=urllib.parse.quote(u)
>>> webbrowser.open(h+"#"+q)
とやれば、python3からブラウザが起動してきて、こんな感じのSVGが表示されるはずである。「心←iobj─労する」がiobjなのかobjなのかについては、多少議論があるとは思うのだが、まあ、そこそこいい結果が出ているように思う。ただ、GiNZAは日本語専用で、漢文(古典中国語)には応用できそうにないのが、ちょっと残念。
GiNZAが出力したUniversal DependenciesをSVGで可視化する More ログイン