パスワードを忘れた? アカウント作成
14385457 journal
Google

yasuokaの日記: HebPipeのヘブライ語係り受け解析をGoogle Colaboratoryで動かす

日記 by yasuoka

Stanzaでヘブライ語の係り受け解析に挑戦していたのだが、文末にピリオドが無い場合に結果がおかしいというバグに捕まってしまった。すぐには直りそうにないので、他のツールを探してみたところ、HebPipeというヘブライ語係り受け解析器を見つけた。Google Colaboratoryでdeplacyに繋いでみよう。

!pip install -U hebpipe deplacy
!echo Y | python -c 'import hebpipe' -q -
def nlp(t):
  with open("tmpin.txt","w",encoding="utf-8") as f:
    print(t,file=f)
  !python -c 'import hebpipe' -q tmpin.txt > tmpout.txt
  with open("tmpout.txt","r",encoding="utf-8") as f:
    return f.read()
doc=nlp("על טעם וריח אין להתווכח")
import deplacy
deplacy.render(doc,WordRight=True)
deplacy.serve(doc,port=None,RtoL=True)

入力にテンポラリファイルを必要とするのが、ちょっと面倒だが、「על טעם וריח אין להתווכח」という例文に対し、私(安岡孝一)の手元では以下の結果が得られた。

  case   ╔════> ADP   על
   obl ╔>╚═╔═══ NOUN  טעם
    cc ║   ║ ╔> CCONJ ו
  conj ║   ╚>╚═ NOUN  ריח
  root ╚═════╔═ AUX   אין
 xcomp       ╚> VERB  להתווכח

1    על    על    ADP    ADP    _    2    case    _    _
2    טעם    טעם    NOUN    NOUN    Gender=Masc|Number=Sing    5    obl    _    (2-organization)
3-4    וריח    _    _    _    _    _    _    _    _
3    ו    ו    CCONJ    CCONJ    _    4    cc    _    _
4    ריח    ריח    NOUN    NOUN    Gender=Masc|Number=Sing    2    conj    _    (4-organization)
5    אין    אין    AUX    AUX    VerbType=Mod    0    root    _    _
6    להתווכח    התווכח    VERB    VERB    HebBinyan=HITPAEL|VerbForm=Inf    5    xcomp    _    _

SVGで右から左へ可視化すると、こんな感じ。 否定助動詞の「אין」にrootが刺さっているのは、ちょっといただけない気もするが、「ו」と「ריח」がちゃんとCCONJNOUNに分離されていてうれしい。ただ、このHebPipeは、pythonに加えJavaも必要とするし、しかも入力がファイルからしかできない構造になっていて、やや使いにくい。Stanzaを直してもらうのと、どちらがいいかな。

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

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

読み込み中...