yasuokaの日記: GiNZA v2.2.0で読む『吾輩は猫である』
日本語係り受け解析エンジンGiNZAのv2.2.0がリリースされていたので、使ってみることにした。まずはインストール、と言いたいところだが、旧版をアンインストールしてからでないと、うまくインストールできないようだ。
% pip3 uninstall ginza ja-ginza ja-ginza-nopn SudachiPy SudachiDict-core
% pip3 install https://github.com/megagonlabs/ginza/releases/download/latest/ginza-latest.tar.gz
インストールがうまくいったら、7月8日の日記と同様、言語処理100本ノック2015の『吾輩は猫である』から、「ヴァイオリンを始める」文をGiNZAで探してみよう。
% python3
>>> import spacy,urllib.request
>>> ja=spacy.load("ja_ginza")
>>> with urllib.request.urlopen("http://www.cl.ecei.tohoku.ac.jp/nlp100/data/neko.txt") as r:
... q=r.read()
...
>>> u=ja(q.decode("utf-8"))
>>> s=set(w.sent for w in u if w.lemma_=="バイオリン" and w.dep_=="obj" and w.head.lemma_=="始める")
>>> print(s)
{「君はヴァイオリンをいつ頃から始めたのかい。}
>>> import sys
>>> from ginza.command_line import print_conllu
>>> for t in s:
... print_conllu(t,True,sys.stdout)
...
# text = 「君はヴァイオリンをいつ頃から始めたのかい。
180715 「 「 PUNCT 補助記号-括弧開 _ 180716 punct _ BunsetuBILabel=B|BunsetuPositionType=CONT|SpaceAfter=No
180716 君 君 PRON 代名詞 _ 180722 nsubj _ BunsetuBILabel=I|BunsetuPositionType=SEM_HEAD|SpaceAfter=No|NE=PRODUCT_B
180717 は は ADP 助詞-係助詞 _ 180716 case _ BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|SpaceAfter=No|NE=PRODUCT_I
180718 ヴァイオリン バイオリン NOUN 名詞-普通名詞-一般 _ 180722 obj _ BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|SpaceAfter=No|NE=PRODUCT_I
180719 を を ADP 助詞-格助詞 _ 180718 case _ BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|SpaceAfter=No
180720 いつ頃 いつ頃 NOUN 名詞-普通名詞-副詞可能 _ 180722 nmod _ BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|SpaceAfter=No
180721 から から ADP 助詞-格助詞 _ 180720 case _ BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|SpaceAfter=No
180722 始め 始める VERB 動詞-非自立可能 _ 180726 advcl _ BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|SpaceAfter=No
180723 た た AUX 助動詞 _ 180722 aux _ BunsetuBILabel=I|BunsetuPositionType=FUNC|SpaceAfter=No
180724 の の SCONJ 助詞-準体助詞 _ 180722 mark _ BunsetuBILabel=I|BunsetuPositionType=FUNC|SpaceAfter=No
180725 か か PART 助詞-終助詞 _ 180722 aux _ BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|SpaceAfter=No
180726 い い PART 助詞-終助詞 _ 0 root _ BunsetuBILabel=B|BunsetuPositionType=ROOT|SpaceAfter=No
180727 。 。 PUNCT 補助記号-句点 _ 180726 punct _ BunsetuBILabel=I|BunsetuPositionType=CONT
GiNZAにprint_conlluという関数が導入されたので、Universal Dependenciesの出力が非常に簡単になった。解析精度も上がっているようなので、ぜひ試してみてほしい。
GiNZA v2.2.0で読む『吾輩は猫である』 More ログイン