ku-nlp/deberta-v3-base-japaneseをファインチューニングして、日本語(国語研長単位)係り受け解析モデルdeberta-v3-base-japanese-ud-goeswithを試作してみた。しかし、ku-nlp/deberta-v3-base-japaneseのトークナイザ設計がモロに出てしまい、解析精度を上げることができなかった。Google Colaboratoryで試してみよう。
!pip install transformers deplacy
from transformers import pipeline
nlp=pipeline("universal-dependencies","KoichiYasuoka/deberta-v3-base-japanese-ud-goeswith",trust_remote_code=True,aggregation_strategy="simple")
doc=nlp("てこの原理を思い出した")
import deplacy
deplacy.serve(doc,port=None)
「てこの原理を思い出した」を係り受け解析してみたところ、私(安岡孝一)の手元では以下の結果が出力された。
# text = てこの原理を思い出した
1 て _ CCONJ _ _ 5 cc _ SpaceAfter=No
2 この _ DET _ _ 3 det _ SpaceAfter=No
3 原理 _ NOUN _ _ 5 obj _ SpaceAfter=No
4 を _ ADP _ _ 3 case _ SpaceAfter=No
5 思い出 _ VERB _ _ 0 root _ SpaceAfter=No
6 した _ AUX _ _ 5 aux _ SpaceAfter=No
「てこ」という単語を1語にできず、いきなり崩壊している。「思い出」「した」も切れ目がおかしい。「てこの原理を思い出した」を「テコの原理をおもいだした」にしたら、どうなるだろう。
# text = テコの原理をおもいだした
1 テコ _ NOUN _ _ 3 nmod _ SpaceAfter=No
2 の _ ADP _ _ 1 case _ SpaceAfter=No
3 原理 _ NOUN _ _ 5 obj _ SpaceAfter=No
4 を _ ADP _ _ 3 case _ SpaceAfter=No
5 おもい _ VERB _ _ 0 root _ SpaceAfter=No
6 だ _ AUX _ _ 5 aux _ SpaceAfter=No
7 した _ AUX _ _ 5 aux _ SpaceAfter=No
「テコ」はうまくいったが、「おもいだした」の方はやっぱり変だ。どうやらku-nlp/deberta-v3-base-japaneseのトークナイザでは、「し」「た」の間に切れ目が来ないようだ。それだと係り受け解析どころか、品詞付与も難しいなあ。