yasuokaの日記: StanfordNLPによる古典中国語Universal Dependencies解析
昨日の私(安岡孝一)の日記で試したStanfordNLP 0.1.0だが、現時点で公表されている学習済みモデルの中に古典中国語(漢文)が含まれていないので、『孟子』を元に、ざっとモデルを作ってみた。昨日の
% pip3 install stanfordnlp
% python3
>>> import stanfordnlp
>>> stanfordnlp.download('en')
を済ませるとstanfordnlp_resourcesというディレクトリが出来ているはずなので、その中に『孟子』モデルlzh_mencius_models.zipをunzipすれば、すぐに使えるはずである。一応、私の手元では
>>> import stanfordnlp
>>> lzh=stanfordnlp.Pipeline(lang="lzh",treebank="lzh_mencius")
>>> lzh("勞心者治人").sentences[0].print_tokens()
を実行すると
<Token index=1;words=[<Word index=1;text=勞;lemma=勞;upos=VERB;xpos=v,動詞,描写,形質;feats=_;governor=3;dependency_relation=amod>]>
<Token index=2;words=[<Word index=2;text=心;lemma=心;upos=NOUN;xpos=n,名詞,不可譲,身体;feats=_;governor=1;dependency_relation=obj>]>
<Token index=3;words=[<Word index=3;text=者;lemma=者;upos=PART;xpos=p,助詞,提示,*;feats=_;governor=4;dependency_relation=nsubj>]>
<Token index=4;words=[<Word index=4;text=治;lemma=治;upos=VERB;xpos=v,動詞,行為,動作;feats=_;governor=0;dependency_relation=root>]>
<Token index=5;words=[<Word index=5;text=人;lemma=人;upos=NOUN;xpos=n,名詞,人,人;feats=_;governor=4;dependency_relation=obj>]>
が得られている。ただ、このStanfordNLPでの解析結果は、「勞」←「者」の係り受けリンクが、aclであるべきところamodになっていて、正直ちょっといただけない。UDPipeベースの解析ツールだと、ちゃんとaclになってるので、これStanfordNLPのクセなのかしら?
StanfordNLPによる古典中国語Universal Dependencies解析 More ログイン