タイトルにあるデータをダウンロードし、同じように
import copy
import torch
import numpy as np
from transformers import AutoTokenizer, AutoModel, BertJapaneseTokenizer, BertForMaskedLM
model_path = './bert-base-japanese-v2'
bert_tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModel.from_pretrained(model_path)
tokenizer = BertJapaneseTokenizer.from_pretrained(model_path)
bert_mlm = BertForMaskedLM.from_pretrained(model_path)
でロードしてみた。そのあと、「BERTによる自然言語処理入門」の第五章#5-7のスクリプトを走らせると、
今日はニューヨークへ行く。 今日はどこへ行く。 今日はイタリアへ行く。 今日はアメリカへ行く。 今日は日本へ行く。 今日はパリへ行く。 今日は東京へ行く。 今日はフランスへ行く。 今日はインドへ行く。 今日は中国へ行く。
とちゃんと普通の単語が出てきた。さらに、
text = '今日は[MASK]を食べる。'
と変えてみて走らせると、
今日はチョコレートを食べる。 今日はバナナを食べる。 今日はケーキを食べる。 今日は寿司を食べる。 今日はトマトを食べる。 今日はラーメンを食べる。 今日は魚を食べる。 今日はカレーを食べる。 今日はパンを食べる。 今日は肉を食べる。
となった。実はtransformersに標準で含まれる東北大学の日本語モデル(たぶんVer.1)で同じことをすると、一番上に「ワイン」が出てきてしまい、なんだかな~、と思っていたのだった。下記がその実例。
今日はワインを食べる。 今日はコーヒーを食べる。 今日はビールを食べる。 今日はカレーを食べる。 今日はパンを食べる。 今日はソーセージを食べる。 今日は牛乳を食べる。 今日はチョコレートを食べる。 今日はスープを食べる。 今日はジャガイモを食べる。
V2も同じ方法で作成しているはずでWikipediaのデータも大きく変わったはずがないので、何が変わったのかわからないけれど、ちゃんと食べるものが出てきているのを見ると安心する。逆にV1の情報が大丈夫なのか心配になる。