パスワードを忘れた? アカウント作成
13898105 journal
アメリカ合衆国

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

日記 by yasuoka

ゴールデンウィーク2日目だが、実はspaCyのen_core_web_smモデルも、英語の係り受け解析に使える。ただし、en_core_web_smの記述法は、旧版のStanford Typed Dependenciesに則っていて、現在のUniversal Dependenciesとは必ずしも合致しない。とりあえず、spaCyとen_core_web_smをインストールしてみよう。

% pip3 install spacy
% python3 -m spacy download en_core_web_sm

ダウンロードにちょっと時間がかかるものの、python3とpip3があれば、インストールは簡単である。昨日の日記と同様「He sat down with smiling face」を係り受け解析してみたところ、私(安岡孝一)の手元では以下のようになった。

% python3
>>> import spacy
>>> en=spacy.load("en_core_web_sm")
>>> 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    -PRON-    PRON    PRP    _    2    nsubj    _    _
2    sat    sit    VERB    VBD    _    0    ROOT    _    _
3    down    down    PART    RP    _    2    prt    _    _
4    with    with    ADP    IN    _    2    prep    _    _
5    smiling    smile    VERB    VBG    _    6    amod    _    _
6    face    face    NOUN    NN    _    4    pobj    _    SpaceAfter=No

SVGで可視化すると、こんな感じ。sat ─prep→ with ─pobj→ faceという部分が、Universal Dependenciesとはラベルも記述法も異なっている。

つまり、Universal Dependenciesにおいては「前置詞←名詞」という係り受け矢印方向なのだが、旧版のStanford Typed Dependencies(あるいはМельчук依存文法)においては「前置詞→名詞」だったのである。このあたりは、ポリシーの違いとしか言いようがないのだが、できればspaCyもUniversal Dependencies版が欲しいなぁ。

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

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

読み込み中...