パスワードを忘れた? アカウント作成
14148542 journal
Google

yasuokaの日記: spaCy上の古典中国語(漢文)解析ツールUD-Kanbun・spacy-stanza・spacy-udpipe比較

日記 by yasuoka

spaCy上での古典中国語(漢文)解析ツールが、UD-Kanbunspacy-stanzaspacy-udpipeの3つになったので、Google Colaboratory上でdeplacyを使って、ざっと比較してみることにした。まずはUD-Kanbunを、インストールから「不入虎穴不得虎子」の解析までおこなってみよう。

!pip install udkanbun deplacy
import udkanbun.spacy
lzh=udkanbun.spacy.load(Danku=True)
doc=lzh("不入虎穴不得虎子")
import deplacy
deplacy.render(doc)

私(安岡孝一)の手元では、以下の結果になった。

不 ADV  <╗   advmod
入 VERB ═╩═╗ ROOT
虎 NOUN <╗ ║ nmod
穴 NOUN ═╝<╝ obj
不 ADV  <╗   advmod
得 VERB ═╩═╗ ROOT
虎 NOUN <╗ ║ nmod
子 NOUN ═╝<╝ obj

「不入虎穴」と「不得虎子」の2句に切られていると同時に、係り受けも完璧だ。次に、spacy-stanzaを試してみよう。

!pip install spacy_stanza deplacy
import stanza
stanza.download("lzh")
from spacy_stanza import StanzaLanguage
lzh=StanzaLanguage(stanza.Pipeline("lzh"))
doc=lzh("不入虎穴不得虎子")
import deplacy
deplacy.render(doc)

私の手元では以下の結果になった。

不 ADV  <╗   advmod
入 VERB ═╩═╗ root
虎 NOUN ═╗<╝ obj
穴 NOUN <╝   conj
不 ADV  <╗   advmod
得 VERB ═╩═╗ root
虎 NOUN ═╗<╝ obj
子 NOUN <╝   conj

「虎=conj⇒穴」と「虎=conj⇒子」の部分が解析をミスっていて惜しいが、それ以外はまずまずの出来だ。最後にspacy-udpipeを試してみよう。

!pip install spacy-udpipe deplacy
import spacy_udpipe
spacy_udpipe.download("lzh")
lzh=spacy_udpipe.load("lzh")
doc=lzh("不入虎穴不得虎子")
import deplacy
deplacy.render(doc)

私の手元では以下の結果になった。

不 ADV  <╗   advmod
入 VERB ═╝   ROOT
虎 NOUN ═╗<╗ nsubj
穴 NOUN <╝ ║ conj
不 ADV  <╗ ║ advmod
得 AUX  ═╝<╣ aux
虎 NOUN ═╦═╝ ROOT
子 NOUN <╝   flat

「不入」と「虎穴不得虎子」に切ってしまっている時点で、もはやダメダメで、正直ワケのわからない解析結果になっている。つまり現時点での「不入虎穴不得虎子」に対する結果としては、UD-Kanbunが一番よくて、spacy-stanzaがその次、spacy-udpipeがダメ、というのが現状だろう。さて、他の言語はどうかしら。

この議論は、yasuoka (21275)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

Stableって古いって意味だっけ? -- Debian初級

読み込み中...