pytorch自然语言处理生态环境

这里介绍PyTorch官方用于自然语言处理(NLP)的工具包torchtext。自然语言处理也是深度学 习的一大应用场景,近年来随着大规模预训练模型的应用,深度学习在人机对话、机器翻译等领域的取得了非常好的效果,也使得NLP相关的深度学习模型获得了越来越多的关注。
torchtext的主要组成部分
torchtext可以方便的对文本进行预处理,例如截断补长、构建词表等。torchtext主要包含了以下的主要组成部分:
数据处理工具 torchtext.data.functional、torchtext.data.utils
数据集 torchtext.data.datasets
词表工具 torchtext.vocab
评测指标 torchtext.metrics
torchtext的安装 torchtext可以直接使用pip进行安装:pip install torchtext
第一步构建数据集 Field及其使用
Field是torchtext中定义数据类型以及转换为张量的指令。
torchtext 认为一个样本是由多个字段(文 本字段,标签字段)组成,不同的字段可能会有不同的处理方式,所以才会有 Field 抽象。定义Field 对象是为了明确如何处理不同类型的数据,但具体的处理则是在Dataset中完成的。下面我们通过一个例 子来简要说明一下Field的使用:
tokenize=lambda x:x.split()
text=data.Field(Sequential=True,tokenize=tokenize,lower=True,fix_length=200)
Label=data.field(sequential=false,use_vocab=false)
其中:
sequential设置数据是否是顺序表示的; tokenize用于设置将字符串标记为顺序实例的函数 lower设置是否将字符串全部转为小写;
总结:
Field一般来说是声明会如何处理数据
里面的参数:
~Field.sequential – 输入的数据是否是序列型的,如果不是,将不使用tokenzie对数据进行处理

~Field.use_vocab – 是否使用Vocab对象,也就是使用输入的词向量,这里以后会讲到,如果不使用,那么输入Field的对象一定是数字类型的。

~Field.init_token – 给example数据的开头加一个token,感觉类似标签

~Field.eos_token – 给example数据加一个结束token

~Field.fix_length – 设定序列的长度,不够的进行填充

~Field.dtype – 表示输入的example数据的类型

~Field.preprocessing – 将example数据在tokenize之后,但在转换成数值之前的管道设置,这个我没有用过,所以不确定具体怎么用

~Field.postprocessing – 将example数据在转换成数值之后,但在变成tensor数据之前的管道设置. 管道将每个batch的数据当成一个list进行处理

~Field.lower – 是否将输入的文本变成小写

~Field.tokenize – 设置一个tokenize分词器给Field用,这里也有内置的一些分词器可以用

~Field.tokenizer_language – 分词器tokenize的语言,这里是针对SpaCy的

~Field.include_lengths – 是否在返回文本序列的时候返回文本的长度,这里是对LSTM的变长输入设置非常好用

~Field.batch_first – 输出的数据的维度中batch的大小放到前面

~Field.pad_token – 用于填充文本的关键字,默认是

~Field.unk_token – 用于填充不在词汇表中的关键字,默认是

~Field.pad_first – 是否将填充放到文本最前面

~Field.truncate_first – 是否从文本开始的地方将文本截断

~Field.stop_words – 停止词的设置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值