yasuokaの日記: UniDic2UDによる単語間の係り受けと二文節間の係り受け
昨日の日記に続いて、UniDic2UDにも縦書きツリーを実装してみた。これで、日本語における単語間の係り受け解析と、二文節間の係り受け解析が、どう異なっているか、少しはわかりやすくなると思う。まずは、最新版のUniDic2UDをインストール。UDPipeの言語モデルjapanese-gsdと、旧仮名口語UniDicも、ダウンロードしておこう。
% pip3 install 'unidic2ud>=1.4.4'
% udcabocha --download=japanese-gsd
% udcabocha --download=qkana
インストールがうまくいったら、「未だ義にして其君を後にする者は有らざるなり」の単語間係り受けを、旧仮名口語UniDicとjapanese-gsdで解析してみよう。
% python3
>>> import unidic2ud
>>> qkana=unidic2ud.load("qkana")
>>> s=qkana("未だ義にして其君を後にする者は有らざるなり")
>>> print(s.to_tree())
未だ <──┐ advmod
義 ─┐<┤ iobj
に <┘ │ case
し ─┬─┘<──┐ advcl
て <┘ │ mark
其 <┐ │ det
君 ─┤<┐ │ obj
を <┘ │ │ case
後 ─┐<┤ │ iobj
に <┘ │ │ case
する ───┘<┐ │ acl
者 ─┬───┘<┤ nsubj
は <┘ │ case
有ら ─┬─────┘ root
ざる <┤ aux
なり <┘ aux
もし、表示が乱れる場合は、to_tree(2)を試してみてほしい。ざっと見た限りだと、「未だ義にして」全体が「有ら」にぶら下がっている点が、ちょっと解析ミスっぽい。本来なら「義にして」は「する」と並置(conj)されるべきなのだが、それは日本語としては正直なところ不自然で、まあ仕方ないところだろう。ただ、単語係り受け解析をミスってる結果、UniDic2UDを内部流用しているudcabochaは、文節間の係り受けを一部ミスってしまう。
% echo 未だ義にして其君を後にする者は有らざるなり | udcabocha -U qkana -f 0
未だ---D
義に-D
して-----------D
其-D |
君を---D |
後に-D |
する-D |
者は-D
有らざるなり
EOS
なかなかうまくいかないものだ。ちなみに、本日15:00から18日(月)12:00まで、UniDicサーバーはメンテナンスが予定されている。メンテナンスの間、qkanaのダウンロードも出来なければ、Web茶まめAPIも停止する。その間UniDic2UDやudcabochaも、UniDic辞書なしでは一部の機能が動かなくなるので、ダウンロードはお早目に。
UniDic2UDによる単語間の係り受けと二文節間の係り受け More ログイン