NLP 中的pad/padding操作代码分析

今天分析一下NLP中的pad操作代码:

该方法的作用是将输入的序列列表seqs进行填充操作,使其具有相同的长度,以便进行批处理。填充使用指定的pad_token进行,并生成一个对应的mask标志列表,用于标记哪些部分是填充内容(值为1)和哪些部分是原始内容(值为0)。填充后的序列列表和掩盖标志列表将作为方法的返回值,供进一步使用或处理。

python 复制代码
    @staticmethod
    def _pad_seqs(seqs, pad_token):
        # 定义变量pad_length,通过遍历seqs token列表获取其中最长token的长度,从而将token列表的所有seq长度都填充到pad_length
        pad_length = max([len(seq) for seq in seqs])
        # 对seqs中的每个token列表进行填充,填充内容为pad_token,填充至长度为pad_length
        padded = [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的list
  • pad_token是词表中预先定义的特殊字符 '<PAD>'
python 复制代码
tokens, orig_pad_masks = self._pad_seqs(tokens, self.pad_token)

输出:

  • 填充后的token,padded[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]
相关推荐
汽车仪器仪表相关领域1 分钟前
PSB-1:安全增压与空燃比双监控仪表 - 高性能引擎的 “双重安全卫士“
java·人工智能·功能测试·单元测试·汽车·可用性测试·安全性测试
攻城狮杰森6 分钟前
AI·重启思维:Gemini 3 带你走进智能的下一个维度
人工智能·语言模型·ai作画·aigc·googlecloud
糖葫芦君6 分钟前
20-Gradient Surgery for Multi-Task Learning
人工智能
paperxie_xiexuo10 分钟前
从数据观测到学术断言:面向证据链构建的智能分析工具协同机制研究
大数据·人工智能·机器学习·数据分析
PS12323210 分钟前
交通基础设施安全守护者 超声波风速风向传感器桥梁与隧道风速监测
大数据·服务器·人工智能
随风一样自由13 分钟前
目前的AI大模型工具有哪些?具体都有哪些领域的应用?简单分析一下
人工智能·ai·语言模型
kwg12614 分钟前
Dify二次开发构建api后端Docker离线镜像方案
服务器·人工智能·python
看今朝·15 分钟前
【软件工程3.0】智能时代企业新型生产关系:人机协同的系统性变革
人工智能·大模型·软件工程·多模型协同·目标优化
赵得C16 分钟前
昇腾应用使能套件:华为AI生态的“技术桥梁”与落地实践
人工智能·华为
bryant_meng16 分钟前
【PSMNet】《Pramid Stereo Matching Network》
人工智能·深度学习·计算机视觉·stereo matching·psmnet