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

yasuokaの日記: 英語係り受け解析エンジンとしてのspacy_udpipe

日記 by yasuoka

ネットサーフィンしていたところ、spacy_udpipeというpython3ライブラリを見つけたので、試してみることにした。UDPipeの各言語モデルをpythonでラップして、spaCyから使えるようにしたライブラリのようだ。まずはpip3とpython3でインストール。

% pip3 install spacy_udpipe
% python3
>>> import spacy_udpipe
>>> spacy_udpipe.download("en")
>>> quit()

あちこちから、色んなものをダウンロードしてくるので、かなり時間がかかるのだが、これで、UDPipeの英語english-partut-ud-2.4モデルが、python3から使えるようになったはずである。試しに「He sat down with smiling face」を係り受け解析してみよう。

% python3
>>> import spacy_udpipe
>>> en=spacy_udpipe.load("en")
>>> s=en("He sat down with smiling face")
>>> print("".join("\t".join([str(t.i+1),t.orth_,t.lemma_,t.pos_,t.tag_,"_",str(0 if t.head==t else t.head.i+1),t.dep_,"_","_" if t.whitespace_ else "SpaceAfter=No"])+"\n" for t in s))
1    He    he    PRON    PE    _    2    nsubj    _    _
2    sat    sat    VERB    V    _    0    ROOT    _    _
3    down    down    ADV    B    _    2    advmod    _    _
4    with    with    ADP    E    _    5    mark    _    _
5    smiling    smiling    VERB    V    _    2    advcl    _    _
6    face    face    NOUN    S    _    5    obj    _    SpaceAfter=No

「CoNLL-U SVG Editor」で可視化すると、こんな感じROOTが大文字なのを除いては、ちゃんとUniversal Dependencies準拠の係り受け解析がおこなえている。ただ、英語の形態素解析としては、LEMMA(第3フィールド)がちゃんと解析できておらず、たとえばsatが原形のsitになってないのが、私(安岡孝一)個人としては微妙に不満だ。spaCyのen_core_web_smモデルと較べると、まあ一長一短なのだが、さて、どっちを使うべきだろう。

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

犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー

読み込み中...