yasuokaの日記: CLASSLAのセルビア語係り受け解析をGoogle Colaboratoryで動かす
一昨日の日記で紹介したCLASSLAを使って、セルビア語の係り受け解析に挑戦してみた。ただ、言語モデルのダウンロードに時間がかかるので、Google Colaboratoryを使ってみることにした。
!pip install classla deplacy
import classla
classla.download("sr",resource_dir="/root/classla_resources",force=True)
nlp=classla.Pipeline("sr")
doc=nlp("Da ima sira i masla i moja bi mati znala gibati gibanicu.")
import deplacy
deplacy.render(doc)
deplacy.serve(doc,port=None)
「Da ima sira i masla i moja bi mati znala gibati gibanicu.」を解析してみたところ、私(安岡孝一)の手元では以下の結果と、こんな感じのSVGが出力された。
Da SCONJ <══════╗ mark
ima VERB ═════╗═╝═════╗ root
sira NOUN ═══╗<╝ ║ obj
i CCONJ <╗ ║ ║ cc
masla NOUN ═╝<╝ ║ conj
i CCONJ <════════╗ ║ cc
moja DET <╗ ║ ║ det
bi AUX ║<════╗ ║ ║ aux
mati NOUN ═╝<══╗ ║ ║ ║ nsubj
znala VERB ═══╗═╝═╝═╝═╗<╝ conj
gibati VERB ═╗<╝ ║ xcomp
gibanicu NOUN <╝ ║ obj
. PUNCT <══════════╝ punct
# newpar id = 1
# sent_id = 1.1
# text = Da ima sira i masla i moja bi mati znala gibati gibanicu.
1 Da da SCONJ Cs _ 2 mark _ NER=O
2 ima imati VERB Vmr3s Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin 0 root _ NER=O
3 sira sir NOUN Ncmsg Case=Acc|Gender=Masc|Number=Sing 2 obj _ NER=O
4 i i CCONJ Cc _ 5 cc _ NER=O
5 masla maslo NOUN Ncmsg Case=Gen|Gender=Masc|Number=Sing 3 conj _ NER=O
6 i i CCONJ Cc _ 10 cc _ NER=O
7 moja moj DET Ps1fsn Case=Nom|Gender=Fem|Number=Sing|Number[psor]=Plur|Person=1|Poss=Yes|PronType=Prs 9 det _ NER=O
8 bi biti AUX Vaa3s Mood=Cnd|Number=Sing|Person=3|Tense=Past|VerbForm=Fin 10 aux _ NER=O
9 mati mati NOUN Ncfsn Case=Nom|Gender=Fem|Number=Sing 10 nsubj _ NER=O
10 znala znati VERB Vmp-sf Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act 2 conj _ NER=O
11 gibati gibati VERB Vmn VerbForm=Inf 10 xcomp _ NER=O
12 gibanicu gibanica NOUN Ncfsa Case=Acc|Gender=Fem|Number=Sing 11 obj _ NER=O|SpaceAfter=No
13 . . PUNCT Z _ 10 punct _ NER=O
完璧だ。「moja」⇐det=「mati」と「bi」⇐aux=「znala」の係り受けが交差していて、非常に素晴らしい。ただ、CLASSLAのセルビア語モデルは、ラテン文字に限定されているらしく、キリル文字は使えない。キリル文字の「Да има сира и масла и моја би мати знала гибати гибаницу.」を係り受け解析する場合は、srtoolsか何かでラテン文字に変換するか、あるいはCamphr-Udifyを使う方がいいだろう。
CLASSLAのセルビア語係り受け解析をGoogle Colaboratoryで動かす More ログイン