yasuokaの日記: 日本語・中国語・タイ語の係り受け解析モジュールesuparリリース(仮)
9月14日・一昨日・昨日の日記の手法を一まとめにして、esuparというpython3モジュールとしてリリース(仮)した。日本語と中国語(簡化字・繁体字および文言文/漢文)とタイ語の係り受け解析がおこなえる。Linux系OSなら
$ pip3 install esupar --user
一発でインストール可能なはずだ。インストールがうまくいったら、まずは「太郎は花子が読んでいる本を次郎に渡した」を係り受け解析してみよう。
$ python3
>>> import esupar
>>> nlp=esupar.load("ja")
>>> doc=nlp("太郎は花子が読んでいる本を次郎に渡した")
>>> print(doc)
1 太郎 _ PROPN _ _ 12 nsubj _ SpaceAfter=No
2 は _ ADP _ _ 1 case _ SpaceAfter=No
3 花子 _ PROPN _ _ 5 nsubj _ SpaceAfter=No
4 が _ ADP _ _ 3 case _ SpaceAfter=No
5 読ん _ VERB _ _ 8 acl _ SpaceAfter=No
6 で _ SCONJ _ _ 5 mark _ SpaceAfter=No
7 いる _ AUX _ _ 5 aux _ SpaceAfter=No
8 本 _ NOUN _ _ 12 obj _ SpaceAfter=No
9 を _ ADP _ _ 8 case _ SpaceAfter=No
10 次郎 _ PROPN _ _ 12 obl _ SpaceAfter=No
11 に _ ADP _ _ 10 case _ SpaceAfter=No
12 渡し _ VERB _ _ 0 root _ SpaceAfter=No
13 た _ AUX _ _ 12 aux _ _
>>> import deplacy
>>> deplacy.render(doc,Japanese=True)
太郎 PROPN ═╗<════════╗ nsubj(主語)
は ADP <╝ ║ case(格表示)
花子 PROPN ═╗<══╗ ║ nsubj(主語)
が ADP <╝ ║ ║ case(格表示)
読ん VERB ═╗═╗═╝<╗ ║ acl(連体修飾節)
で SCONJ <╝ ║ ║ ║ mark(標識)
いる AUX <══╝ ║ ║ aux(動詞補助成分)
本 NOUN ═╗═════╝<╗ ║ obj(目的語)
を ADP <╝ ║ ║ case(格表示)
次郎 PROPN ═╗<╗ ║ ║ obl(斜格補語)
に ADP <╝ ║ ║ ║ case(格表示)
渡し VERB ═╗═╝═════╝═╝ root(親)
た AUX <╝ aux(動詞補助成分)
esupar.loadのパラメータは、"ja"が日本語、"zh"が現代中国語、"lzh"が古典中国語、"th"がタイ語だったりする。まだまだチューニングが不十分なので、解析精度はイマイチだが、ぜひ試しに使ってみてほしい。
日本語・中国語・タイ語の係り受け解析モジュールesuparリリース(仮) More ログイン