yasuokaの日記: HebPipeのヘブライ語係り受け解析をGoogle Colaboratoryで動かす
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が刺さっているのは、ちょっといただけない気もするが、「ו」と「ריח」がちゃんとCCONJとNOUNに分離されていてうれしい。ただ、このHebPipeは、pythonに加えJavaも必要とするし、しかも入力がファイルからしかできない構造になっていて、やや使いにくい。Stanzaを直してもらうのと、どちらがいいかな。
HebPipeのヘブライ語係り受け解析をGoogle Colaboratoryで動かす More ログイン