パスワードを忘れた? アカウント作成
13912960 journal
人工知能

yasuokaの日記: GiNZAで読む『吾輩は猫である』

日記 by yasuoka

私(安岡孝一)の一昨昨日の日記の読者から、GiNZAも紹介してほしい旨の御意見をいただいた。実は4月29日の日記で、さりげなく紹介してるのだけど、とりあえずpip3でGiNZA 1.0.2をインストール。

% pip3 install https://github.com/megagonlabs/ginza/releases/download/v1.0.2/ja_ginza_nopn-1.0.2.tgz

インストールがうまくいったら、昨日と同様、言語処理100本ノック2015の『吾輩は猫である』から、「ヴァイオリンを始める」文をGiNZAで探してみよう。

% python3
>>> import spacy,urllib.request
>>> ja=spacy.load("ja_ginza_nopn")
>>> 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"))
>>> from spacy.lang.ja_ginza.cli import token_line
>>> for s in u.sents:
...   f=False
...   for w in s:
...     if w.lemma_=="バイオリン" and w.dep_=="obj":
...       if w.head.lemma_=="始める":
...         f=True
...   if f:
...     print("".join(token_line(w,{})+"\n" for w in s))
...
180822    「    「    PUNCT    補助記号-括弧開    _    180823    punct    _    SpaceAfter=No
180823    君    君    PRON    代名詞    _    180829    nsubj    _    SpaceAfter=No|NE=PRODUCT_B
180824    は    は    ADP    助詞-係助詞    _    180823    case    _    SpaceAfter=No|NE=PRODUCT_I
180825    ヴァイオリン    バイオリン    NOUN    名詞-普通名詞-一般    _    180829    obj    _    SpaceAfter=No|NE=PRODUCT_I
180826    を    を    ADP    助詞-格助詞    _    180825    case    _    SpaceAfter=No|NE=PRODUCT_I
180827    いつ頃    何時頃    NOUN    名詞-普通名詞-副詞可能    _    180829    nmod    _    SpaceAfter=No|NE=PRODUCT_I
180828    から    から    ADP    助詞-格助詞    _    180827    case    _    SpaceAfter=No|NE=PRODUCT_I
180829    始め    始める    VERB    動詞-非自立可能    _    180833    advcl    _    SpaceAfter=No|NE=PRODUCT_I
180830    た    た    AUX    助動詞    _    180829    aux    _    SpaceAfter=No|NE=PRODUCT_I
180831    の    の    SCONJ    助詞-準体助詞    _    180829    mark    _    SpaceAfter=No|NE=PRODUCT_I
180832    か    か    PART    助詞-終助詞    _    180829    case    _    SpaceAfter=No|NE=PRODUCT_I
180833    い    い    PART    助詞-終助詞    _    0    root    _    SpaceAfter=No|NE=PRODUCT_I
180834    。    。    PUNCT    補助記号-句点    _    180833    punct    _    NE=PRODUCT_I

SVGで可視化すると、こんな感じ。文末の「い」をrootにするのは議論の余地があるものの、「ヴァイオリンを始める」がうまく検索できている。ただ、UDPipeやStanfordNLPやNLP-Cubeと違って、GiNZAは日本語専用なのがちょっとつらい。せめて、古典中国語(漢文)に対応してくれないかなぁ…。

この議論は、yasuoka (21275)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

ソースを見ろ -- ある4桁UID

読み込み中...