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

yasuokaの日記: spaCy上の係り受け可視化ツールdeplacy

日記 by yasuoka

UniDic2UDの縦書きツリーを独立させて、deplacyという名前のpython3モジュールにした。「pip3 install -U deplacy」一発でインストールできる上に、spaCyStanzaNLP-Cubeとも繫げられるようにしたので、かなり便利だと思う。試しに、昨日の日記でインストールしたspacy-udpipeを使って、「笑顔で彼は座った」「He sat down with smiling face」「Ele se sentou com um sorriso no rosto」の3つの文を解析し、単語間の係り受けを可視化してみよう。

$ pip3 install -U deplacy
$ python3
>>> import spacy_udpipe,deplacy
>>> ja=spacy_udpipe.load("ja")
>>> en=spacy_udpipe.load("en")
>>> pt=spacy_udpipe.load("pt")
>>> for s in [ja("笑顔で彼は座った"),en("He sat down with smiling face"),pt("Ele se sentou com um sorriso no rosto")]:
...   deplacy.render(s)
...   print("------")
...
笑顔 NOUN ─┐<┐ obl
で   ADP  <┘ │ case
彼   PRON ─┐<┤ nsubj
は   ADP  <┘ │ case
座っ VERB ─┬─┘ ROOT
た   AUX  <┘   aux
------
He      PRON  <┐   nsubj
sat     VERB  ─┼─┐ ROOT
down    ADP   <┘ │ compound:prt
with    SCONJ <┐ │ mark
smiling VERB  ─┤<┘ advcl
face    NOUN  <┘   obj
------
Ele     PRON <┐     nsubj
se      PRON <┤     obj
sentou  VERB ─┴───┐ ROOT
com     ADP  <┐   │ case
um      DET  <┤   │ det
sorriso NOUN ─┴─┐<┘ nmod
en      ADP  <┐ │   case
o       DET  <┤ │   det
rosto   NOUN ─┘<┘   nmod
------

もしも表示が乱れる場合は「deplacy.render(s,2)」としてみるのも一案だ。

>>> for s in [ja("笑顔で彼は座った"),en("He sat down with smiling face"),pt("Ele se sentou com um sorriso no rosto")]:
...   deplacy.render(s,2)
...   print("------")
...
笑顔 NOUN ─┐ <┐ obl
で   ADP   <┘  │ case
彼   PRON ─┐ <┤ nsubj
は   ADP   <┘  │ case
座っ VERB ─┬─┘ ROOT
た   AUX   <┘     aux
------
He      PRON   <┐     nsubj
sat     VERB  ─┼─┐ ROOT
down    ADP    <┘  │ compound:prt
with    SCONJ  <┐  │ mark
smiling VERB  ─┤ <┘ advcl
face    NOUN   <┘     obj
------
Ele     PRON  <┐         nsubj
se      PRON  <┤         obj
sentou  VERB ─┴───┐ ROOT
com     ADP   <┐      │ case
um      DET   <┤      │ det
sorriso NOUN ─┴─┐ <┘ nmod
en      ADP   <┐  │     case
o       DET   <┤  │     det
rosto   NOUN ─┘ <┘     nmod
------

いずれかの結果を見れば、単語間の係り受けをどう解析できているか、一目瞭然だと思う。係り受け解析結果を簡易に表示したい場合に、ぜひ使ってみてほしい。

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

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

読み込み中...