yasuokaの日記: 現代中国語係り受け解析ツールとしてのStanza
Stanzaには、現代中国語モデルが2つ(簡化字用zh-hansと繁體字用zh-hant)準備されている。ただ、この2つのモデルは、解析動作が微妙に異なっているようだ。とりあえず、Stanzaのインストールと、モデルのダウンロード。
$ pip3 install stanza
$ python3
>>> import stanza
>>> stanza.download("zh-hans")
>>> stanza.download("zh-hant")
ダウンロードに続いて、「我把这本书看完了」「我把這本書看完了」の2文を、係り受け解析してみよう。
>>> zh_cn=stanza.Pipeline("zh-hans")
>>> zh_tw=stanza.Pipeline("zh-hant")
>>> from stanza.utils.conll import CoNLL
>>> for s in [zh_cn("我把这本书看完了"),zh_tw("我把這本書看完了")]:
... print(CoNLL.conll_as_string(CoNLL.convert_dict(s.to_dict())))
...
1 我 我 PRON PRP Person=1 6 nsubj _ start_char=0|end_char=1
2 把 把 ADP BB _ 5 case _ start_char=1|end_char=2
3 这 这 DET DT _ 4 det _ start_char=2|end_char=3
4 本 本 NOUN NNB _ 5 clf _ start_char=3|end_char=4
5 书 书 NOUN NN _ 6 obl:patient _ start_char=4|end_char=5
6 看完 看完 VERB VV _ 0 root _ start_char=5|end_char=7
7 了 了 PART UH _ 6 discourse _ start_char=7|end_char=8
1 我 我 PRON PRP Person=1 5 nsubj _ start_char=0|end_char=1
2 把 把 ADP BB _ 4 case _ start_char=1|end_char=2
3 這 這 DET DT _ 4 det _ start_char=2|end_char=3
4 本書 本書 NOUN NN _ 5 obl:patient _ start_char=3|end_char=5
5 看完 看完 VERB VV _ 0 root _ start_char=5|end_char=7
6 了 了 PART UH Aspect=Perf 5 case:aspect _ start_char=7|end_char=8
「把」がADPになっていて、ちゃんとcaseが刺さっている点は、私(安岡孝一)個人としては高く評価できる。ただ、簡化字と繁體字で、単語の切れ目が違うというのは、さすがにいただけない。以前このあたりを、Stanford大学の齐鹏(Qí Péng)と議論して、簡化字と繁體字でうまく同期を取る方策を練ったのだけど、Stanzaでは中々うまくいかないのかしら。
現代中国語係り受け解析ツールとしてのStanza More ログイン