yasuokaの日記: 多言語係り受け解析ツールTrankitをGoogle Colaboratoryで動かす
Trankitという係り受け解析ツールのv.1.0.1がリリースされた、との連絡をいただいた。XLM-RoBERTaをエンジンに用いており、複数の言語が混ざった文を係り受け解析できるらしい。ただ、言語モデルが非常にデカイため、とりあえずGoogle Colaboratory上で動かしてみた。
!pip install trankit torch transformers deplacy
import trankit
nlp=trankit.Pipeline("english")
nlp.add("german")
doc=nlp("Bei mir bist du schön, again I'll explain.")
import deplacy
deplacy.render(doc)
deplacy.serve(doc,port=None)
「Bei mir bist du schön, again I'll explain.」を係り受け解析してみたところ、私(安岡孝一)の手元では、以下の結果になった。
Bei ADP <╗ case
mir PRON ═╝<══╗ obl
bist AUX <══╗ ║ cop
du PRON <╗ ║ ║ nsubj
schön ADJ ═╝═╝═╝═╗═╗═╗ root
, PUNCT <══════╝ ║ ║ punct
again ADV <════╗ ║ ║ advmod
I PRON <══╗ ║ ║ ║ nsubj
'll AUX <╗ ║ ║ ║ ║ aux
explain VERB ═╝═╝═╝<══╝ ║ parataxis
. PUNCT <══════════╝ punct
1 Bei bei ADP IN _ 2 case _ start_char=0|end_char=3
2 mir me PRON PRP Case=Acc|Number=Sing|Person=1|PronType=Prs 5 obl _ start_char=4|end_char=7
3 bist bist AUX VBZ Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin 5 cop _ start_char=8|end_char=12
4 du du PRON PRP Case=Nom|Person=2|PronType=Prs 5 nsubj _ start_char=13|end_char=15
5 schön schön ADJ JJ Degree=Pos 0 root _ start_char=16|end_char=21
6 , , PUNCT , _ 5 punct _ start_char=21|end_char=22
7 again again ADV RB _ 10 advmod _ start_char=23|end_char=28
8 I I PRON PRP Case=Nom|Number=Sing|Person=1|PronType=Prs 10 nsubj _ start_char=29|end_char=30
9 'll will AUX MD VerbForm=Fin 10 aux _ start_char=30|end_char=33
10 explain explain VERB VB VerbForm=Inf 5 parataxis _ start_char=34|end_char=41
11 . . PUNCT . _ 5 punct _ start_char=41|end_char=42
SVGで可視化すると、こんな感じ。まずまずの出来で、素晴らしい。日本語もサポートされているらしいのだが、さて、何語と混ぜると楽しそうかな。
多言語係り受け解析ツールTrankitをGoogle Colaboratoryで動かす More ログイン