赞
踩
对于自然语言处理的诸多任务,不同的任务所需要处理的数据的类型不一样,但最后都是需要把这些数据转化为计算机能够计算的数值形式,Field 类的设计就是用来将不同的文本数据转化为用 tensor 表示,以情感分析为例;
情感分析的数据一般由 Text 和 Label 两个字段来表示,Text 表示一个文本、一段话或一个句子,Label 表示 Text 的类别,积极或消极,也可用数字 0 和 1 表示;Field 类就是要把 Text 和 Label 两个字段的数据都转化 tensor 表示;
先对 Field类的参数进行解释;
"<pad>"
;"<unk>"
;TabularDataset类定义以 CSV、TSV 或 JSON 格式存储的列的数据集。
上面是官方文档中对TabularDataset的描述,顾名思义,tabular为表格的意思,TabularDataset类将以表格形式存储的数据抽象为一个类,方便后续的数据处理;我们可以直接使用 Dataset 类方法 splits
来得到 Dataset 对象,也可以继承该类来定制自己的 TabularDataset 类;TabularDataset 类继承 Dataset 类;
先对 TabularDataset 类的参数进行解释;
使用类方法 splits
可以很方便的从训练集、验证集和测试集文件中分别得到对应的 Dataset 对象,先对 splits
方法的参数进行解释;
return (tuple(Dataset)) : 按 tran、validation、test 的顺序返回;
fields = [('label', labels), ('comment_processed', comments)]
train, valid, test = TabularDataset.splits(path='/data', format='csv',
train='train_data.csv', validation='valid_data.csv', test='test_data.csv',
skip_header=True, fields=fields)
定义从 Dataset 中加载批量数据的迭代器。
对 Iterator 类的参数进行解释,
类方法 splits
,分别为多个 Dataset 创建迭代器对象;
对类方法 splits 的参数进行解释;
定义一个迭代器,将相似长度的数据批处理在一起;
BucketIterator 类继承 Iterator 类,在为每个新的 epoch 打乱数据生成新的 batch 时,最大限度地减少数据需要的填充量;
使用 BucketIterator.splits
方法可以很方便的生成训练集、验证集和测试集的迭代器;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。