吉林网站网站建设,网络小说排行榜,厦门网站建设厦门seo,简约网站设计欣赏今天分析一下NLP中的pad操作代码#xff1a;
该方法的作用是将输入的序列列表seqs进行填充操作#xff0c;使其具有相同的长度#xff0c;以便进行批处理。填充使用指定的pad_token进行#xff0c;并生成一个对应的mask标志列表#xff0c;用于标记哪些部分是填充内容
该方法的作用是将输入的序列列表seqs进行填充操作使其具有相同的长度以便进行批处理。填充使用指定的pad_token进行并生成一个对应的mask标志列表用于标记哪些部分是填充内容值为1和哪些部分是原始内容值为0。填充后的序列列表和掩盖标志列表将作为方法的返回值供进一步使用或处理。 staticmethoddef _pad_seqs(seqs, pad_token):# 定义变量pad_length通过遍历seqs token列表获取其中最长token的长度从而将token列表的所有seq长度都填充到pad_lengthpad_length max([len(seq) for seq in seqs])# 对seqs中的每个token列表进行填充填充内容为pad_token填充至长度为pad_lengthpadded [seq ([pad_token] * (pad_length - len(seq))) for seq in seqs]# 创建一个mask标志列表长度为seq的长度并将前部填充部分置为0未经过pad后部未填充部分置为1经过了pad操作添加到masks列表中。masks [([0] * len(seq)) ([1] * (pad_length - len(seq))) for seq in seqs]return padded, masks
输入
seqs是token的listpad_token是词表中预先定义的特殊字符 PAD
tokens, orig_pad_masks self._pad_seqs(tokens, self.pad_token)
输出
填充后的tokenpadded[0][^, C, C, n, 1, c, c, (, /, C, , C, 2, /, C, (, , O, ), N, (, c, 3, c, c, c, (, C, ), c, (, Cl, ), c, 3, ), C, (, , O, ), N, , C, 2, [O-], ), c, 2, c, c, c, c, c, 2, 1, , PAD, PAD, PAD, PAD, PAD, PAD, PAD]mask标志列表mask[0][0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1]