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 分钟前
AI人工智能-机器学习-第一周(小白)
人工智能·机器学习
西柚小萌新3 分钟前
【深入浅出PyTorch】--上采样+下采样
人工智能·pytorch·python
丁学文武30 分钟前
大语言模型(LLM)是“预制菜”? 从应用到底层原理,在到中央厨房的深度解析
人工智能·语言模型·自然语言处理·大语言模型·大模型应用·预制菜
fie888935 分钟前
基于MATLAB的声呐图像特征提取与显示
开发语言·人工智能
文火冰糖的硅基工坊2 小时前
[嵌入式系统-100]:常见的IoT(物联网)开发板
人工智能·物联网·架构
刘晓倩2 小时前
实战任务二:用扣子空间通过任务提示词制作精美PPT
人工智能
shut up2 小时前
LangChain - 如何使用阿里云百炼平台的Qwen-plus模型构建一个桌面文件查询AI助手 - 超详细
人工智能·python·langchain·智能体
Hy行者勇哥2 小时前
公司全场景运营中 PPT 的类型、功能与作用详解
大数据·人工智能
FIN66683 小时前
昂瑞微:实现精准突破,攻坚射频“卡脖子”难题
前端·人工智能·安全·前端框架·信息与通信
FIN66683 小时前
昂瑞微冲刺科创板:硬科技与资本市场的双向奔赴
前端·人工智能·科技·前端框架·智能