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

yasuokaの日記: Turku-neural-parser-pipelineのフェロー語係り受け解析をGoogle Colaboratoryで動かす

日記 by yasuoka

Turku-neural-parser-pipeline言語モデルを眺めていたところ、フェロー語の言語モデルが含まれているのに気づいた。とりあえず、Google Colaboratory上でdeplacyに繋いでみよう。

!pip install deplacy ufal.udpipe configargparse tensorflow==1.12.2 torch==0.4.1 torchtext==0.3.1 torchvision==0.2.1
!test -d Turku-neural-parser-pipeline || git clone --depth=1 https://github.com/TurkuNLP/Turku-neural-parser-pipeline
!cd Turku-neural-parser-pipeline && git submodule update --init --recursive && test -d models_fo_oft || python fetch_models.py fo_oft
!cd Turku-neural-parser-pipeline/models_fo_oft/Data && test -f wiki.filtered.fo.vec || ln -s wiki.fo.vec wiki.filtered.fo.vec
import sys,subprocess
nlp=lambda t:subprocess.run([sys.executable,"full_pipeline_stream.py","--gpu","-1","--conf","models_fo_oft/pipelines.yaml"],cwd="Turku-neural-parser-pipeline",input=t,encoding="utf-8",stdout=subprocess.PIPE).stdout
doc=nlp("Ofta taka trøll góða manna børn.")
import deplacy
deplacy.render(doc)
deplacy.serve(doc,port=None)

tensorflowを1.12.2にバージョンダウンしないと動かないあたり、かなり昔のソフトウェアを思わせる。「Ofta taka trøll góða manna børn.」を係り受け解析してみたところ、私(安岡孝一)の手元では、以下の結果が得られた。

Ofta  ADV   <══════╗   advmod
taka  VERB  ═╗═══╗═╝═╗ root
trøll NOUN  <╝   ║   ║ obj
góða  ADV   <══╗ ║   ║ case
manna ADJ   <╗ ║ ║   ║ amod
børn  NOUN  ═╝═╝<╝   ║ obj
.     PUNCT <════════╝ punct

# newdoc
# newpar
# sent_id = 1
# text = Ofta taka trøll góða manna børn.
1    Ofta    rót    ADV    _    Degree=Pos    2    advmod    _    _
2    taka    taka    VERB    _    VerbForm=Inf|Voice=Act    0    root    _    _
3    trøll    trøll    NOUN    _    Case=Nom|Definite=Ind|Gender=Com|Number=Sing    2    obj    _    _
4    góða    góður    ADV    _    _    6    case    _    _
5    manna    maður    ADJ    _    Case=Nom|Degree=Pos|Number=Plur    6    amod    _    _
6    børn    barn    NOUN    _    Case=Nom|Definite=Ind|Gender=Neut|Number=Plur    2    obj    _    SpaceAfter=No
7    .    .    PUNCT    _    _    2    punct    _    SpacesAfter=\n

SVGで可視化すると、こんな感じ。残念ながら「taka」=obj⇒「trøll」が解析ミスで、ここはobj(目的語)ではなくnsubj(主語)とすべきだろう。ただ、他の係り受け解析ツールは、どれもフェロー語はサポートしてないようなので、とりあえずはTurku-neural-parser-pipelineを使うしかないかな。

typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...