Pytorch对NLP的数据进行处理,使用Dataset和Dataloader方法

本文详细介绍了如何使用PyTorch的Dataset和DataLoader处理LCQMC数据集,实现短文本匹配任务。具体步骤包括构建自定义Dataset类、实现数据迭代方法、定义文本补齐函数collate_fn以及使用DataLoader批量加载数据。

此次数据使用的是LCQMC,它是做短文本匹配的一个数据,长这样

判断两个文本是否相似,如果相似标签为1,不相似为0

对于数据的处理在这里就不做研究了,无非就是分词,构建词表之类的,这里只说Dataset和DataLoader的用法。

我们首先构建一个类,并继承Dataset类

class DatasetIterater(Dataset):
    def __init__(self,texta,textb,label):
        self.texta = texta
        self.textb = textb
        self.label = label

    def __getitem__(self, item):
        return self.texta[item],self.textb[item],self.label[item]

    def __len__(self):
        return len(self.texta)

既然继承Dataset类,就要实现Dataset类的方法。

第一个方法就不用说了,初始化方法。

第二个是迭代方法,每次得到是一个数据,不是一个batch,我最初以为是一个batch的数据。

第三个就是返回数据的个数

但是,处理NLP的数据,通常情况下是需要对数据进行补齐,也就是在不够长度的数据后补0,所以需要自己实现一个collate_fn函数来进行对文本的补齐操作。

def collate_fn(batch_data,pad=0):
    texta,tex
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值