パスワードを忘れた? アカウント作成
13831519 journal
人工知能

yasuokaの日記: StanfordNLPによる古典中国語Universal Dependencies解析における「文切り」性能

日記 by yasuoka

昨日の私(安岡孝一)の日記で示したStanfordNLP用の古典中国語(漢文)『孟子』モデルだが、どうも「文切り」の性能が低く、結果として全体の性能が上がっていない気がする。試しにこのPDFの例文53「勞心者治人勞力者治於人治於人者食人治人者食於人」という、ややイヤラシイ例に挑戦してみよう。

% python3
>>> import stanfordnlp
>>> from stanfordnlp.models.common import conll
>>> lzh=stanfordnlp.Pipeline(lang="lzh",treebank="lzh_mencius")
>>> u=lzh("勞心者治人勞力者治於人治於人者食人治人者食於人")
>>> print(u.conll_file.conll_as_string())

この実行結果は、私の手元では、以下のようになった。

1 勞 勞 VERB v,動詞,描写,形質 _ 2 amod _ _
2 心 心 NOUN n,名詞,不可譲,身体 _ 3 nmod _ _
3 者 者 PART p,助詞,提示,* _ 9 nsubj _ _
4 治 治 VERB v,動詞,行為,動作 _ 8 acl _ _
5 人 人 NOUN n,名詞,人,人 _ 4 obj _ _
6 勞 勞 VERB v,動詞,描写,境遇 _ 7 amod _ _
7 力 力 NOUN n,名詞,不可譲,身体 _ 4 obj _ _
8 者 者 PART p,助詞,提示,* _ 9 nsubj _ _
9 治 治 VERB v,動詞,行為,動作 _ 0 root _ _

1 於 於 ADP v,前置詞,基盤,* _ 2 case _ _
2 人 人 NOUN n,名詞,人,人 _ 3 obl _ _
3 治 治 VERB v,動詞,行為,動作 _ 6 acl _ _
4 於 於 ADP v,前置詞,基盤,* _ 5 case _ _
5 人 人 NOUN n,名詞,人,人 _ 3 obl _ _
6 者 者 PART p,助詞,提示,* _ 0 root _ _

1 食 食 NOUN n,名詞,可搬,糧食 _ 2 nmod _ _
2 人 人 NOUN n,名詞,人,人 _ 3 nsubj _ _
3 治 治 VERB v,動詞,行為,動作 _ 5 acl _ _
4 人 人 NOUN n,名詞,人,人 _ 3 obj _ _
5 者 者 PART p,助詞,提示,* _ 6 nsubj _ _
6 食 食 VERB v,動詞,行為,飲食 _ 0 root _ _
7 於 於 ADP v,前置詞,基盤,* _ 8 case _ _
8 人 人 NOUN n,名詞,人,人 _ 6 obl _ _

ちゃんとCoNLL-Uフォーマットで出力(ただし末尾の空行が1行多い)してくれていて、それはそれでウレシイのだが、本来「勞心者治人」「勞力者治於人」「治於人者食人」「治人者食於人」の4つの文に区切るべきところを、よくわからないところで3つに切ってしまっている。どうも「文切り」に「係り受け解析」の結果を援用しておらず、表面的な字句解析だけで「文切り」してしまっているようだ。うーん、UDPipe--tokenizer=joint_with_parsingみたいなオプション、StanfordNLPには無いのかしら。

この議論は、yasuoka (21275)によって「 ログインユーザだけ」として作成されている。 ログインしてから来てね。
typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...