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

yasuokaの日記: bert-large-japanese-char-extendedは「酸素ボンベを充[MASK]する。」の[MASK]に何を埋めてくるのか 1

日記 by yasuoka

3月28日の日記で製作した日本語BERTモデルに人名用漢字を全て追加して、bert-large-japanese-char-extendedとしてリリースした。単語長を1文字としたので、MeCabやfugashiを必要としない。ちょっとGoogle Colaboratoryで動かしてみよう。

!pip install transformers
import torch
from transformers import AutoTokenizer,AutoModelForMaskedLM
tokenizer=AutoTokenizer.from_pretrained("KoichiYasuoka/bert-large-japanese-char-extended")
model=AutoModelForMaskedLM.from_pretrained("KoichiYasuoka/bert-large-japanese-char-extended")
tokens=tokenizer.tokenize("酸素ボンベを充[MASK]する。")
print(tokens)
mask=tokens.index("[MASK]")
ids=torch.tensor([tokenizer.convert_tokens_to_ids(tokens)])
with torch.no_grad():
  outputs=model(ids)
  pred=outputs[0][0,mask].topk(5)
for i,t in enumerate(tokenizer.convert_ids_to_tokens(pred.indices)):
  tokens[mask]=t
  print(i+1,tokens)

「酸素ボンベを充[MASK]する。」という例文に対し、私(安岡孝一)の手元では、以下の結果が得られた。

['酸', '素', 'ボ', 'ン', 'ベ', 'を', '充', '[MASK]', 'す', 'る', '。']
1 ['酸', '素', 'ボ', 'ン', 'ベ', 'を', '充', '塡', 'す', 'る', '。']
2 ['酸', '素', 'ボ', 'ン', 'ベ', 'を', '充', '填', 'す', 'る', '。']
3 ['酸', '素', 'ボ', 'ン', 'ベ', 'を', '充', '杯', 'す', 'る', '。']
4 ['酸', '素', 'ボ', 'ン', 'ベ', 'を', '充', '給', 'す', 'る', '。']
5 ['酸', '素', 'ボ', 'ン', 'ベ', 'を', '充', '蓄', 'す', 'る', '。']

ちゃんと常用漢字の「塡」を穴埋めしていて、素晴らしい。さて、6月22日発表予定の『世界のUniversal Dependenciesと係り受け解析ツール群』に、このbert-large-japanese-char-extendedも使ってみようかな。

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

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

読み込み中...