HON9KON9IZEがModernCantoneseBert-Baseを公開したので、ちょっと使ってみることにした。Google Colaboratoryだと、こんな感じ。
!pip install transformers
from transformers import pipeline
nlp=pipeline("fill-mask","hon9kon9ize/ModernCantoneseBert-Base")
print(nlp("炒左幾個老闆而家我[MASK]嘢撈"))
「炒左幾個老闆而家我[MASK]嘢撈」の[MASK]に何を埋めてくるのか試したところ、私(安岡孝一)の手元では以下の結果が得られた。
[{'score': 0.08730362355709076, 'token': 2494, 'token_str': '啲', 'sequence': '炒 左 幾 個 老 闆 而 家 我 啲 嘢 撈'}, {'score': 0.0861532986164093, 'token': 1666, 'token_str': '做', 'sequence': '炒 左 幾 個 老 闆 而 家 我 做 嘢 撈'}, {'score': 0.05502181127667427, 'token': 1826, 'token_str': '冇', 'sequence': '炒 左 幾 個 老 闆 而 家 我 冇 嘢 撈'}, {'score': 0.04424045607447624, 'token': 11709, 'token_str': '食', 'sequence': '炒 左 幾 個 老 闆 而 家 我 食 嘢 撈'}, {'score': 0.042005106806755066, 'token': 6452, 'token_str': '煮', 'sequence': '炒 左 幾 個 老 闆 而 家 我 煮 嘢 撈'}]
「冇」が3番目で5.5%ということは、この文をModernCantoneseBert-Baseは知らないということだろう。うーん、訓練に使った広東語コーパスの規模が、ModernBERTを鍛えるには小さすぎるのかな。以前のbert-base-cantoneseと較べてみよう。
!pip install transformers
from transformers import pipeline
nlp=pipeline("fill-mask","hon9kon9ize/bert-base-cantonese")
print(nlp("炒左幾個老闆而家我[MASK]嘢撈"))
bert-base-cantoneseが「炒左幾個老闆而家我[MASK]嘢撈」の[MASK]に何を埋めてくるのか試したところ、私の手元では以下の結果が得られた。
[{'score': 0.5446927547454834, 'token': 1081, 'token_str': '冇', 'sequence': '炒 左 幾 個 老 闆 而 家 我 冇 嘢 撈'}, {'score': 0.18833020329475403, 'token': 4192, 'token_str': '無', 'sequence': '炒 左 幾 個 老 闆 而 家 我 無 嘢 撈'}, {'score': 0.053212545812129974, 'token': 3300, 'token_str': '有', 'sequence': '炒 左 幾 個 老 闆 而 家 我 有 嘢 撈'}, {'score': 0.03228088840842247, 'token': 671, 'token_str': '一', 'sequence': '炒 左 幾 個 老 闆 而 家 我 一 嘢 撈'}, {'score': 0.019077226519584656, 'token': 976, 'token_str': '做', 'sequence': '炒 左 幾 個 老 闆 而 家 我 做 嘢 撈'}]
トップが「冇」で54.4%、次が「無」で18.8%、なかなかいいセンだ。このあたりまでModernCantoneseBert-Baseを鍛え上げるとすると、さて、どうすればいいのかな。