文章目录
概述
在处理NLP任务时除了需要优秀的神经网络还需要方便、高效的数据预处理工具。今天介绍一款优秀的NLP数据处理工具torchtext。
NLP常见的数据预处理工作如下:
Load File:数据文件加载;Tokenization:分词;Create Vocabulary:创建字典;Indexify:将词与索引进行映射;Word Vectors:创建或加载词向量;Padding or Fix Length:按长度对文本进行补齐或截取;Dataset Splits:划分数据集(如将数据集划分为训练集、验证集、测试集);Batching and Iterators:将数据集按固定大小划分成Batch;
使用torchtext完成以上工作:
- 使用
torchtext.data.Field定义样本各个字段的处理流程(分词、数据预处理等); - 使用
torchtext.data.Example将torchtext.data.Field处理成一条样本; - 使用
torchtext.data.Dataset将torchtext.data.Example处理成数据集,也可对数据集进行划分等工作; - 使用
torchtext.data.Iterators将torchtext.data.Dataset按照batch_size组装成Batch供模型训练使用; - 使用
torchtext.data.vocab和torchtext.data.Vectors创建词典、词和索引的一一对应、下载或使用预训练的词向量等;

安装
- 使用如下命令安装:
pip install torchtext
文档
- 官方教程:https://torchtext.readthedocs.io/en/latest/index.html
主要的Package
torchtext.datatorchtext.data.Dataset:数据集;torchtext.data.Example:样本;torchtext.data.Fields:样本的属性(如:content、label);torchtext.data.Iterators:将数据集封装成Batch,并提供迭代器;
tochtext.vocabtorchtext.vocab.Vocab:词典相关;torchtext.vocab.Vectors:词向量相关;
实践
Field
API
class torchtext.data.Field(
sequential=True, use_vocab=True, init_token=None, eos_token=None,
fix_length=None, dtype=torch.int64, preprocessing=None, postprocessing=None,
lower=False, tokenize=None, tokenizer_language='en', include_lengths=False,
batch_first=False, pad_token='<pad>', unk_token='<unk>', pad_first=False,
truncate_first=False, stop_words=None, is_target=False
)
#...
def build_vocab(self, *args, **kwargs)
重要的参数:
sequential:是否是可序列化数据(类似于字符串数据),默认值是True;user_vocab:是否使用Vocab对象,如果取False,则该字段必须是数值类型;默认值是True

本文介绍torchtext库在NLP任务中的应用,包括数据预处理、词向量加载及数据集划分等功能,是处理文本数据的利器。
最低0.47元/天 解锁文章
926

被折叠的 条评论
为什么被折叠?



