文章目录
- 前言
- 论文综述
- 1
- 2
- 几种方法与nlpaug工具
- 用于文本领域的数据增强方法探索
- 替换结构性文本
- 工具
前言
数据增强主要分为以下几种:
- Token-level manipulation:单词级别的增强,比如同义词替换,对ner也有效果。
- Label-conditionedtextgeneration: 基于标签的数据增强,就是把标签信息也加入训练当中来,比如Daga模型。
- Soft data augmentation:软数据增强,比如线性插值的方法。
- Structure-aware data augmentation:针对结构的数据增强,这种方法一般替换结构树的一个子结构,比如替换依存句法分析树的一个子结构。
论文综述
1
论文题目:
A Survey of Data Augmentation Approaches for NLP
博客解读:CMU & MILA & 谷歌 | 三家巨头发布史上最干文本增强总结
论文链接:
https://arxiv.org/pdf/2105.03075
GitHub:
https://github.com/styfeng/DataAug4NLP GitHub里有针对各种任务的数据增强方法的论文,还有数据增强的工具。
一个英文的总结博客:A Visual Survey of Data Augmentation in NLP
2
哈工大发布:Data Augmentation Approaches in Natural Language Processing: A Survey 快速阅读:哈工大|NLP数据增强方法?我有15种
几种方法与nlpaug工具
https://mp.weixin.qq.com/s/ZIQWpjrOHV6lii8WjymzBg
用于文本领域的数据增强方法探索
- 一些显式生成增强样本的方法包括:
- 回译:利用机器翻译模型,将文本翻译到另一个语言,再翻译回来。
- CBERT :将文本的部分词替换成[MASK],然后利用BERT去恢复对应的词,生成增强句子。
- 意译(Paraphrase):利用训练好的Paraphrase生成模型生成同义句。
缺点:这些方法一方面不一定能保证语义一致,另一方面每一次数据增强都需要做一次模型Inference,开销会很大。
- Embedding层隐式生成增强样本的方法
- 对抗攻击(Adversarial Attack):这一方法通过梯度反传生成对抗扰动,将该扰动加到原本的Embedding矩阵上,就能得到增强后的样本。由于生成对抗扰动需要梯度反传,因此这一数据增强方法仅适用于有监督训练的场景。
- 打乱词序(Token Shuffling):这一方法扰乱输入样本的词序。由于Transformer结构没有“位置”的概念,模型对Token位置的感知全靠Embedding中的Position Ids得到。因此在实现上,我们只需要将Position Ids进行Shuffle即可。
- 裁剪(Cutoff):又可以进一步分为两种:
Token Cutoff:随机选取Token,将对应Token的Embedding整行置为零。
Feature Cutoff:随机选取Embedding的Feature,将选取的Feature维度整列置为零。 - Dropout:Embedding中的每一个元素都以一定概率置为零,与Cutoff不同的是,该方法并没有按行或者按列的约束。
优点:高效
替换结构性文本
在a中,替换同词义的词,在b中替换同vp的词,在c中替换同dobj的词,在d中,替换同长度,同标签的词。
工具
- Easy DA: https://github.com/jasonwei20/eda_nlp Unsupervised
- DA:https://github.com/google-research/uda
- 英文:https://github.com/makcedward/nlpaug
- 中文:https://github.com/zhanlaoban/eda_nlp_for_Chinese