yasuokaの日記: 古典中国語(漢文)係り受け解析エンジンとしてのUDPipe 2
UDPipe 2がやっとリリース(仮)された、との連絡をいただいた。ただし、現時点でのリリースはLINDATのREST APIだけで、UDPipe 2のプログラム本体や各言語モデルは、まだ公開されていない。それでも、とりあえず「不入虎穴不得虎子」を係り受け解析してみよう。
$ python3
>>> def nlp(t):
... import urllib.request,urllib.parse,json
... with urllib.request.urlopen("https://lindat.mff.cuni.cz/services/udpipe/api/process?model=lzh&tokenizer&tagger&parser&data="+urllib.parse.quote(t)) as r:
... return json.loads(r.read())["result"]
...
>>> doc=nlp("不入虎穴不得虎子")
>>> print(doc)
# generator = UDPipe 2, https://lindat.mff.cuni.cz/services/udpipe
# udpipe_model = classical_chinese-kyoto-ud-2.6-200830
# udpipe_model_licence = CC BY-NC-SA
# newdoc
# newpar
# sent_id = 1
# text = 不入
1 不 不 ADV v,副詞,否定,無界 Polarity=Neg 2 advmod _ SpaceAfter=No
2 入 入 VERB v,動詞,行為,移動 _ 0 root _ SpaceAfter=No
# sent_id = 2
# text = 虎穴
1 虎 虎 NOUN n,名詞,主体,動物 _ 0 root _ SpaceAfter=No
2 穴 穴 NOUN n,名詞,固定物,地形 Case=Loc 1 flat _ SpaceAfter=No
# sent_id = 3
# text = 不得虎子
1 不 不 ADV v,副詞,否定,無界 Polarity=Neg 2 advmod _ SpaceAfter=No
2 得 得 VERB v,動詞,行為,得失 _ 0 root _ SpaceAfter=No
3 虎 虎 NOUN n,名詞,主体,動物 _ 4 nmod _ SpaceAfter=No
4 子 子 NOUN n,名詞,人,関係 _ 2 obj _ SpaceAfter=No
うーん、「不入」と「虎穴」を別の文だと判定してしまっていて、少し残念だ。文切り機能をOFFにしてみよう。
>>> def nlp(t):
... import urllib.request,urllib.parse,json
... with urllib.request.urlopen("https://lindat.mff.cuni.cz/services/udpipe/api/process?model=lzh&tokenizer=presegmented&tagger&parser&data="+urllib.parse.quote(t)) as r:
... return json.loads(r.read())["result"]
...
>>> doc=nlp("不入虎穴不得虎子")
>>> print(doc)
# generator = UDPipe 2, https://lindat.mff.cuni.cz/services/udpipe
# udpipe_model = classical_chinese-kyoto-ud-2.6-200830
# udpipe_model_licence = CC BY-NC-SA
# newdoc
# newpar
# sent_id = 1
# text = 不入虎穴不得虎子
1 不 不 ADV v,副詞,否定,無界 Polarity=Neg 2 advmod _ SpaceAfter=No
2 入 入 VERB v,動詞,行為,移動 _ 0 root _ SpaceAfter=No
3 虎 虎 NOUN n,名詞,主体,動物 _ 4 nmod _ SpaceAfter=No
4 穴 穴 NOUN n,名詞,固定物,地形 Case=Loc 2 obj _ SpaceAfter=No
5 不 不 ADV v,副詞,否定,無界 Polarity=Neg 6 advmod _ SpaceAfter=No
6 得 得 VERB v,動詞,行為,得失 _ 2 parataxis _ SpaceAfter=No
7 虎 虎 NOUN n,名詞,主体,動物 _ 8 nmod _ SpaceAfter=No
8 子 子 NOUN n,名詞,人,関係 _ 6 obj _ SpaceAfter=No
SVGで可視化すると、こんな感じ。「入」=parataxis⇒「得」も含め、係り受け解析は完璧だ。文切り機能を除けば、UDPipe 2の古典中国語(漢文)係り受け解析は、かなり性能が高いようだ。早く、プログラム本体や各言語モデルが、リリースされるといいな。
古典中国語(漢文)係り受け解析エンジンとしてのUDPipe 2 More ログイン