yasuokaの日記: GiNZA v4.0.0で「いずれその話をしよう」を解析しよう
日本語係り受け解析エンジンGiNZAのv4.0.0がリリースされたので、さっそく使ってみた。今回のバージョンアップでは文節に関する処理が強化されていて、「いずれその話をしよう」という文が、v4.0.0では正しく解析されるようになったのが、私(安岡孝一)個人としてはうれしい。とりあえず、最新版をインストール。
$ pip3 install -U ginza
1行でインストールできるのが、またうれしい。インストールがうまくいったら、「いずれその話をしよう」を解析してみよう。
$ python3
>>> import spacy
>>> ja=spacy.load("ja_ginza")
>>> doc=ja("いずれその話をしよう")
>>> from ginza.command_line import analyze_conllu
>>> print("\n".join(t for s in doc.sents for t in analyze_conllu(s)))
# text = いずれその話をしよう
1 いずれ いずれ ADV 副詞 _ 5 advmod _ SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|Reading=イズレ
2 その その DET 連体詞 _ 3 det _ SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|Reading=ソノ
3 話 話 NOUN 名詞-普通名詞-サ変可能 _ 5 obj _ SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|NP_B|Reading=ハナシ
4 を を ADP 助詞-格助詞 _ 3 case _ SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Reading=ヲ
5 しよう する VERB 動詞-非自立可能 _ 0 root _ SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=ROOT|Inf=サ行変格,意志推量形|Reading=シヨウ
BunsetuBILabelを追っていくと、「いずれ」「その」「話を」「しよう」の4つの文節に分かれているのがわかる。単語間の係り受け構造は、deplacy風に書くと
いずれ ADV <══════╗ advmod(連用修飾語)
その DET <══╗ ║ det(決定詞)
話 NOUN ═╗═╝<╗ ║ obj(目的語)
を ADP <╝ ║ ║ case(格表示)
しよう VERB ═════╝═╝ ROOT(親)
となっていて完璧だ。素晴らしい。個人的には、各文節をspaCyのSpanの形で引っ張りだせると、ginza.bunsetu_head_tokensの代わりにSpan.rootとかが使えて、さらに便利になるのだが、まあ、それは自分で実装しようかな。
GiNZA v4.0.0で「いずれその話をしよう」を解析しよう More ログイン