yasuokaの日記: UD-Kanbunによる漢文の返り点の自動付与
私(安岡孝一)の8月21日の日記で公開したUD-Kanbunに、返り点を自動で付ける仕掛けを内蔵してみた。アルゴリズムとしては、『漢文の依存文法解析と返り点の関係について』での手法をpython3に書き換えたのだが、ついでに縦書きツリーにも挑戦してみることにした。とりあえず、UD-Kanbunの最新版をインストール。
% pip3 install 'udkanbun>=1.2.7'
インストールがうまくいったら、まずは「未有義而後其君者也」に、自動で返り点を打ってみよう。
% echo 未有義而後其君者也 | udkanbun -t -k
未 <┐ advmod
㆑ │
有 ─┴───────┐ root
㆘ │
義 ─────┐<┐ │ acl
而 <┐ │ │ │ cc
後 ─┴─┐<┘ │ │ conj
㆓ │ │ │
其 <┐ │ │ │ det
君 ─┘<┘ │ │ obj
㆒ │ │
者 ───────┘<┤ obj
㆖ │
也 <────────┘ discourse:sp
もしかしたら表示が崩れるかもしれないが、その場合は-t2オプションで、罫線素片を「全角」指定してみよう。
% echo 未有義而後其君者也 | udkanbun -t2 -k
未 <┐ advmod
㆑ │
有 ─┴───────┐ root
㆘ │
義 ─────┐ <┐ │ acl
而 <┐ │ │ │ cc
後 ─┴─┐ <┘ │ │ conj
㆓ │ │ │
其 <┐ │ │ │ det
君 ─┘ <┘ │ │ obj
㆒ │ │
者 ───────┘ <┤ obj
㆖ │
也 <────────┘ discourse:sp
あるいは、Universal Dependenciesの出力中に、返り点を含めることもできる。
% echo 未有義而後其君者也 | udkanbun -u -k
# text = 未有義而後其君者也
# text_with_kaeriten = 未㆑有㆘義而後㆓其君㆒者㆖也
1 未 未 ADV v,副詞,否定,有界 Polarity=Neg 2 advmod _ Gloss=not-yet|SpaceAfter=No
2 有 有 VERB v,動詞,存在,存在 _ 0 root Gloss=have|SpaceAfter=No
3 義 義 NOUN n,名詞,描写,態度 _ 8 acl Gloss=righteousness|SpaceAfter=No
4 而 而 CCONJ p,助詞,接続,並列 _ 5 cc Gloss=and|SpaceAfter=No
5 後 後 VERB v,動詞,行為,移動 _ 3 conj Gloss=back|SpaceAfter=No
6 其 其 PRON n,代名詞,人称,起格 Person=3|PronType=Prs det _ Gloss=[3PRON]|SpaceAfter=No
7 君 君 NOUN n,名詞,人,役割 _ 5 obj _ Gloss=ruler|SpaceAfter=No
8 者 者 PART p,助詞,提示,* _ 2 obj _ Gloss=that-which|SpaceAfter=No
9 也 也 PART p,助詞,句末,* _ 2 discourse:sp Gloss=[final-particle]|SpaceAfter=No
もちろんpython3のモジュールとしても使用可能なので、公式サイトに簡単な例を挙げておいた。LinuxのみならずCygwinやGoogle Colaboratoryにもインストールできるので、ぜひ使ってみてほしい。
UD-Kanbunによる漢文の返り点の自動付与 More ログイン