bert的tokenizer.encode_plus使用

encoded_dict = tokenizer.encode_plus(
                a,
                b,
                max_length=max_seq_length,
                return_overflowing_tokens=True,
                padding="max_length",
                stride=0,
                truncation="only_second",
                return_token_type_ids=True
            )
# 输出结果结构: [cls] a [seq] b [seq]
# a和b 可以是 id和字符 的任意组合,如:“a是id列表,b是字符列表”;

# max_length 最大长度 一般为512;

# return_overflowing_tokens 这个属性在分块中很重要,可以输出截断后剩余部分,
# 和truncation配合使用可以选择截断 a和b 中哪一个;

# padding 用于0补全

# stride 重叠部分长度 如:abc和bcd的重叠部分长度为2

# truncation 这个属性选择截断方式,如‘only_second’表示只截断第二个序列b,其他的种类相似;

# return_token_type_ids 表示是否输出type ids。

return_overflowing_tokens 属性还可以用来检查 a和b 的组合长度是否超过512,使用:

assert encoded_dict['overflowing_tokens'] == []

return_overflowing_tokens 还可以进行循环分块,只需用其更新b:

b = encoded_dict['overflowing_tokens']

你可能感兴趣的:(bert,人工智能,深度学习)