pytorch 文本数据数据预处理

可以利用trochtext库中的相关函数对文本数据进行数据预处理

import torch
import torch.utils.data as Data
from torchvision.datasets import FashionMNIST
import torchvision.transforms as transforms
from torchvision.datasets import ImageFolder

from torchtext import data
##定义文本切分方法,使用空格切分即可
mytokenize = lambda x: x.split()
##定义将文本转化为张量的相关操作
TEXT = data.Field(sequential = True, #表明输入的文本是字符 
                 tokenize = mytokenize, #使用自定义的分词方法
                  use_vocab = True, #创建一个词汇表
                  batch_first = True, #batch优先的数据方式
                  fix_length = 200  #每个句子固定长度为200
                 )

##定义将标签转化为张量的相关操作
LABEL = data.Field(sequential = False, #表明输入的标签是数字
                  use_vocab = False, #不创建词汇表
                  pad_token = None, #不进行填充
                  unk_token = None #没有无法识别的字符
                  )
#对所要读取的数据集的每列进行处理
text_data_fields = [
    ("label",LABEL), ##对标签的操作
    ("text",TEXT) #对文本的操作
]

#读取数据
traindata,testdata = data.TabularDataset.splits(
    path = "../input/train-test",format = "csv",
    train = "train.csv",fields = text_data_fields,
    test = "test.csv",skip_header = True
)
len(traindata),len(testdata)
# (2, 1)  
#输出结果表示训练集中有2个样本,测试集中1个样本

##使用训练集构建单词表,并不指定预训练好的词向量
TEXT.build_vocab(traindata,max_size = 1000,vectors = None)
##将训练数据集定义为数据加载器,便于对模型进行优化
train_iter = data.BucketIterator(traindata,batch_size = 4)
test_iter = data.BucketIterator(testdata,batch_size = 4)
for step,batch in enumerate(train_iter):
    if step > 0:
        break
        
##针对一个batch的数据,可以使用batch.label获得数据的类别标签
print("数据的类别标签:",batch.label)
##batch.text是文本对应的编码向量
print("数据的尺寸:",batch.text.shape)
# 数据的类别标签: tensor([1, 1])
# 数据的尺寸: torch.Size([2, 200])
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值