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

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

日記 by yasuoka

日本語係り受け解析エンジンGiNZAのv2.0.0がリリースされたので、さっそく使ってみることにした。まずはインストール。

% pip3 install https://github.com/megagonlabs/ginza/releases/download/latest/ginza-latest.tar.gz

インストールがうまくいったら、5月20日の日記と同様、言語処理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"))
>>> n={}
>>> for c in u.noun_chunks:
...   for i in range(c.start,c.end):
...     n[i]="NP_B" if i==c.start else "NP_I"
...
>>> from ginza.command_line 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)+"\n" for w in s))
...
180931    「    「    PUNCT    補助記号-括弧開    _    180932    punct    _    BunsetuBILabel=B|BunsetuPositionType=CONT|SpaceAfter=No
180932    君    君    PRON    代名詞    _    180938    nsubj    _    BunsetuBILabel=I|BunsetuPositionType=SEM_HEAD|SpaceAfter=No|NP_B
180933    は    は    ADP    助詞-係助詞    _    180932    case    _    BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|SpaceAfter=No
180934    ヴァイオリン    バイオリン    NOUN    名詞-普通名詞-一般    _    180938    obj    _    BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|SpaceAfter=No|NP_B
180935    を    を    ADP    助詞-格助詞    _    180934    case    _    BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|SpaceAfter=No
180936    いつ頃    何時頃    NOUN    名詞-普通名詞-副詞可能    _    180938    nmod    _    BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|SpaceAfter=No|NP_B
180937    から    から    ADP    助詞-格助詞    _    180936    case    _    BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|SpaceAfter=No
180938    始め    始める    VERB    動詞-非自立可能    _    0    root    _    BunsetuBILabel=B|BunsetuPositionType=ROOT|SpaceAfter=No
180939    た    た    AUX    助動詞    _    180938    aux    _    BunsetuBILabel=I|BunsetuPositionType=FUNC|SpaceAfter=No
180940    の    の    SCONJ    助詞-準体助詞    _    180938    mark    _    BunsetuBILabel=I|BunsetuPositionType=FUNC|SpaceAfter=No
180941    か    か    PART    助詞-終助詞    _    180938    aux    _    BunsetuBILabel=I|BunsetuPositionType=FUNC|SpaceAfter=No
180942    い    い    PART    助詞-終助詞    _    180938    aux    _    BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|SpaceAfter=No
180943    。    。    PUNCT    補助記号-句点    _    180938    punct    _    BunsetuBILabel=I|BunsetuPositionType=CONT

IDを付け替えて「UDPipe Visualizer with Immediate Catena Tree」で可視化すると、 こんな感じ。「ヴァイオリンを始める」がうまく検索できていて、rootも正しく刺さっているようだ。素晴らしい。さて、このスゴイ技術を、漢文とか旧字旧かなとかに、うまく応用できないかしら。

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

Stay hungry, Stay foolish. -- Steven Paul Jobs

読み込み中...