美文网首页
NLP中的数据增广方式

NLP中的数据增广方式

作者: 三方斜阳 | 来源:发表于2021-05-03 17:17 被阅读0次

数据增广(Data Augmentation)是自动扩充训练数据的一种技术,单纯表示扩大数据规模,深度学习模型需要有大量的标注数据进行支撑。真实应用情景中,经常会出现缺乏标注数据、数据分布不均衡导致模型鲁棒性差、模型性能不佳的问题,而数据增广能在一定程度上解决这些问题。
主要有以下几种方式:

1. 单词替换:

  1. 基于近义词表的替换:
    使用近义词表,将句子中的部分单词利用其近义词替代,使增广数据尽量贴合原始语义
  2. 基于词向量的替换:
    采用预训练好的词向量,如Glove、Word2Vec、FastText等,用向量空间中距离原始单词最近的词将其代替。
  3. 基于掩码语言模型的替换:
    将文本中的部分单词用[MASK]替换,用训练好的掩码语言模型,如 bert , RoBERTa 等对该位置的单词进行预测,补全句子信息。

2. 回译:

指原始文档通过翻译变为其他语言的文本,然后再被翻译回来得到原语言的新文本。与单词替换的方法类似,回译产生的增广数据与原始数据的语义尽量相同。不同的是,回译不直接基于同义词关系对单个单词逐一替换,而是通过生成的方式复述句子,达到了数据扩充的目的。

3. 加入噪声:

  1. 文本形式相关的噪声:
  • 单词级别的简单模式匹配变换:
    Be动词、情态动词、否定等缩写和原型间的转换属于简单模式匹配变换
  • 句子级别的语法树变换:
    该方法首先得到整个原始句子的依存树,并基于依存树使用规则对句子进行转换,来得到语法正确、语义不变的增广数据。相比于原始数据,该方法产生的增广数据携带有句式相关的噪声。如利用规则替换原句的主语宾语、将主动语态变为被动语态等。
  1. 文本顺序相关的噪声:
  • 单词级别的文本顺序交换:
    该方法是指句子中不同单词之间进行顺序交换,如在句子中随机选择两个单词并交换位置,重复n次。其中,随机交换的次数n与句子长度l成正比。
  • 句子级别的文本顺序交换:
    该方法是指篇章中不同句子之间进行顺序交换。
  1. 文本语义相关的噪声:
    这类方法通常指通过单词或句子级别的删除、插入、替换等操作,为原始语料带入语义相关的噪声。
  • 基于随机删除的文本语义噪声:
    该方法包括“单词级”和“句子级”两种层次的删除操作,分别表示在句子中随机删除单词和在篇章中随机删除句子。
  • 基于随机插入的文本语义噪声:
    例如:选择其中一个非停用词,通过WordNet得到该单词的任意一个近义词,并将近义词插入句子中的任意位置,重复n次。其中,次数n与句子长度l成正比,即n=αl。
  • 基于随机替换的文本语义噪声:
    例如:保留句中对分类结果影响较大的keywords,同时将其他普通单词随机替换为整个词表中的非keywords单词。该工作使用TF-IDF值评估单词重要性,该单词被替换的概率与其重要性负相关。在替换过程中,使用整个词表中的非keywords单词替换该原始单词:使用频率和IDF值计算词表中每一个单词的重要性,归一化后作为使用该单词替换的概率。

4. 基于同标签样本的句子级文本语义噪声:

  1. 基于随机插入的文本语义噪声:
    例如:由于具有相同指控的案件在其文书中有很多相似的句子,在法律文书分类的任务中使用句子级随机插入的方法,即随机选择带有相同标签的其他样本中的句子插入原始样本,得到新的数据。
  2. 基于随机替换的文本语义噪声:
    例如:在推文情感分析的任务中,将标签相同的推文分别分成两半,给定一个原始的前半段推文,在后半段推文的集合中随机采样,并与该原始前半段推文拼接,得到新数据。虽然这样产生的数据可能包括不完整的句子,相比于单个单词,它仍携带相对完整的语义和情感极性。

5. 生成式模型:

根据任务相关的启发式信息训练模型,再有针对性地生成增广数据。与基于同标签样本的句子级文本语义噪声方法类似的是,生成式模型同样引入标签信息,来保证生成的增广数据的标签不变。

6. Mixup方法:

运用前面5种方法进行数据增广并投入任务训练可分为三步:(1)人为指定增广规则或通过训练得到增广模型;(2)利用固定的规则或模型对原始文本做数据增广,得到自然语言形式的增广数据;(3)将原始数据和增广数据一起输入任务模型进行训练。与之不同的是,Mixup方法可以将三个步骤合在一起:直接将原始数据输入任务模型,增广步骤随着训练过程同步进行,得到的词向量形式的增广数据直接与原始数据一起参与模型的训练。


这篇笔记来自:
赛尔笔记 | 自然语言处理领域的数据增广方法
作者:哈工大SCIR 李博涵

相关文章

  • NLP中的数据增广方式

    数据增广(Data Augmentation)是自动扩充训练数据的一种技术,单纯表示扩大数据规模,深度学习模型需要...

  • 数据增广python库imgaug

    一个不错的用于机器学习数据增广的python库。支持多种增广方式,比如Affine,crop,pad,noise,...

  • opencv进行图像数据增广2021-03-19

    最近在做剪纸图案的生成,但是特定风格的剪纸图案很少,采用数据增广的方式进行扩充。一般数据增广有以下几个方面翻转变换...

  • Note - Pytorch + AllenNLP

    AllenNLP是基于pytorch 的NLP研究库,提供一些训练好的模型,对NLP过程中的数据预处理(读写数据集...

  • NLP中的数据增强

    最近有同学问nlp中如何做data augmentation,这篇总结下目前知道的方法。 数据增强 数据增强技术已...

  • 深度学习实践——图像分类:训练数据增广

    图像增广(augmentation)是在有限训练数据集的情况下,有效扩大数据规模的方式。它的作用有:1)通过随机增...

  • 几种数据增广神器介绍

    imgaug 机器学习避免不了数据增广,数据增广种的一大法宝神器莫过于imgaug的使用。imgaug的使用大大的...

  • NLP自然语言处理-第二章NLP前置技术解析

    第二章NLP前置技术解析 [toc] 在本章中,你将学到 NLP相关的一些前置技术 很多的数据科学库、框架 、模块...

  • NLP 中subword编码方式总结

    NLP subword: 1.传统方法 空格token 传统词表示方法无法很好的处理未知或罕见的词汇(OOV问题)...

  • AutoML数据增广

    DeepAugment是一个专注于数据扩充的自动化工具。 它利用贝叶斯优化来发现针对您的图像数据集定制的数据增强策...

网友评论

      本文标题:NLP中的数据增广方式

      本文链接:https://www.haomeiwen.com/subject/dcwfdltx.html