ITとかCockatielとか

技術のこととか。飼鳥(オカメインコ)のこととか。気になったこととか。基本的には備忘録。

Bert の Tokenizer でエラー:ValueError: Input nan is not valid. Should be a string, a list/tuple of strings or a list/tuple of integers

一部省略するが、こんな感じの処理で掲題のエラー

tokenizer = T.BertTokenizer.from_pretrained(model_name)
self.encoded = tokenizer.batch_encode_plus(
    data,
    padding = 'max_length'
)

原因はメッセージのとおりで、dataに含まれる列内に欠損値(null)が紛れ込んでいる。

欠損値の確認と置換を行ってから実行しなおしてクリア。

# 欠損値の確認
train.isnull().any()

# 欠損値を置換する
train = train.fillna(" ")
# 欠損値の再確認
train.isnull().any()