知识图到文本的生成——肆

本文深入探讨了Field类的preprocess()、process()、pad()、build_vocab()和numericalize()函数,这些函数在处理和转换数据集时起着关键作用。Field类用于预处理、填充、构造词汇表和数值化数据,以便在TensorFlow和PyTorch等深度学习框架中使用,应用于人工智能领域的自然语言处理任务。
摘要由CSDN通过智能技术生成

2021SC@SDUSC

我们继续分析Field类中的其他类函数。首先看preprocess()函数。

    def preprocess(self, x):
        if self.sequential and isinstance(x, str):
            x = self.tokenize(x.rstrip('\n'))
        if self.lower:
            x = Pipeline(str.lower)(x)
        if self.sequential and self.use_vocab and self.stop_words is not None:
            x = [w for w in x if w not in self.stop_words]
        if self.preprocessing is not None:
            return self.preprocessing(x)
        else:
            return x

这个函数首先判断序列x是否为顺序的字符串类型的数据,如果x满足条件,就被标记。

然后判断序列x是否为小写,如果是的话,就把x传递给用户提供的“预处理”管道。

如果序列x是顺序的序列且是使用Vocab对象的,并且预处理步骤中有需要丢弃的令牌,那么就对x进行数据的清洗。

最后返回预处理后的x或者x。

再看process()函数。

    def process(self, batch, device=None):
        padded = self.pad(batch)
        tensor = self.numericalize(padded, device=device)
        return tensor

process函数来处理一系列的例子来创建一个torch.Tensor。对批处理进行pad、数字化和后处理,然后创建一个张量。

参数batch(list(object)):来自一批示例的对象列表。返回的tensor是给定输入的处理对象和自定义后处理管道。

在Field类中还有以下三个函数,接下来我会逐个解释他们的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值