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

yasuokaの日記: ku-nlp/deberta-v2-base-japaneseにおける常用漢字サポート

日記 by yasuoka

一昨日の日記の続きだが、ku-nlp/deberta-v2-base-japaneseのトークナイザは、常用漢字表2136字のうち「楷」「憬」「錮」「𠮟」「朕」「塡」「剝」「頰」「慄」「厘」の10字をサポートしていない。これらの文字は未定義語になってしまうため、[UNK]に化けてしまう。最新のtransformersで試してみよう。

$ pip3 install -U transformers fugashi
$ python3
>>> from transformers import AutoTokenizer
>>> tkz=AutoTokenizer.from_pretrained("ku-nlp/deberta-v2-base-japanese")
>>> for t in ["楷書","憧憬","禁錮","𠮟責","朕","装塡","剝製","頰","慄然","一分一厘"]:
...   print(tkz.convert_ids_to_tokens(tkz(t)["input_ids"]))
...
['[CLS]', '▁', '[UNK]', '書', '[SEP]']
['[CLS]', '▁', '憧', '[UNK]', '[SEP]']
['[CLS]', '▁禁', '[UNK]', '[SEP]']
['[CLS]', '▁', '[UNK]', '責', '[SEP]']
['[CLS]', '▁', '[UNK]', '[SEP]']
['[CLS]', '▁装', '[UNK]', '[SEP]']
['[CLS]', '▁', '[UNK]', '製', '[SEP]']
['[CLS]', '▁', '[UNK]', '[SEP]']
['[CLS]', '▁', '[UNK]', '然', '[SEP]']
['[CLS]', '▁一', '分', '一', '[UNK]', '[SEP]']

これに対しdeberta-base-japanese-juman-ud-goeswithでは、tokenizers.normalizers.Replaceの助けを借りて「𠮟→叱」「塡→填」「剝→剥」「頰→頬」の置き換えをおこなったが、残る6字は私(安岡孝一)にはどうにもならなかった。

>>> tkz2=AutoTokenizer.from_pretrained("KoichiYasuoka/deberta-base-japanese-juman-ud-goeswith",trust_remote_code=True)
>>> for t in ["楷書","憧憬","禁錮","𠮟責","朕","装塡","剝製","頰","慄然","一分一厘"]:
...   print(tkz2.convert_ids_to_tokens(tkz2(t)["input_ids"]))
...
['[CLS]', '▁', '[UNK]', '書', '[SEP]']
['[CLS]', '▁', '憧', '[UNK]', '[SEP]']
['[CLS]', '▁禁', '[UNK]', '[SEP]']
['[CLS]', '▁叱', '責', '[SEP]']
['[CLS]', '▁', '[UNK]', '[SEP]']
['[CLS]', '▁装填', '[SEP]']
['[CLS]', '▁剥', '製', '[SEP]']
['[CLS]', '▁頬', '[SEP]']
['[CLS]', '▁', '[UNK]', '然', '[SEP]']
['[CLS]', '▁一', '▁分', '▁一', '▁', '[UNK]', '[SEP]']

個人的には「楷書」や「慄然」くらいはサポートしたいところだが、さて、どう押し込んでいったらいいかな。

この議論は、yasuoka (21275)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

計算機科学者とは、壊れていないものを修理する人々のことである

読み込み中...