bert的tokenizer.encode_plus使用

  • Post author:
  • Post category:其他


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']



版权声明:本文为happysuzhe原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。