第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 数据增强_NLP 数据增强方法 EDA

数据增强_NLP 数据增强方法 EDA

时间:2019-07-08 15:10:57

相关推荐

数据增强_NLP 数据增强方法 EDA

当数据集比较少的时候,往往会导致模型陷入过拟合。数据增强是一种比较有效的扩充数据集的方法,在计算机视觉领域有比较重要的作用。但是在 NLP 领域数据增强的方法相对少一些,本文介绍一种比较传统的 NLP 数据增强方法 EDA。

1.EDA

EDA 使用传统的文本数据增强方法,可以在文本数据集小的情况下提升文本分类的性能。 出自论文《EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks》。作者也提供了 EDA 的代码 (/jasonwei20/eda_nlp)。

2.具体方法

EDA 主要有三个参数:n (表示一个句子修改多少个单词),α (修改句子中多少比例的单词),n_aug (一个句子生成多少个新句子)。

论文中把 n 设置为 α×L,L 为句子长度,即句子越长可以修改的单词越多。

EDA 主要采用了四种操作进行数据增强:

(1)同义词替换(Synonyms ReplaceSR):随机从句子中抽取 n 个词 (抽取时不包括停用词),然后随机找出抽取这些词的同义词,用同义词将原词替换。例如将句子 "我比较喜欢猫" 替换成 "我有点喜好猫"。通过同义词替换后句子大概率还是会有相同的标签的。

(2)随机插入(Randomly InsertRI):随机从句子中抽取 1 个词 (抽取时不包括停用词),然后随机选择一个该词的同义词,插入原来句子中的随机位置,重复这一过程 n 次。例如将句子 "我比较喜欢猫" 改为 "我比较喜欢猫有点"。

(3)随机交换(Randomly SwapRS):在句子中,随机交换两个词的位置,重复这一过程 n 次。例如将句子 "我比较喜欢猫" 改为 "喜欢我猫比较"。

(4)随机删除(Randomly DeleteRD):对于句子的每一个单词,都有 p (=α) 的概率会被删除。例如将句子 "我比较喜欢猫" 改为 "我比较猫"。

3.EDA 性能

作者在五个文本分类数据集 (SST-2, CR, SUBJ, TREC, PC) 上进行实验。

使用不同分类模型,分别对比使用 EDA 和不使用 EDA 时在五个数据集上的平均准确率。如下图所示。总的来说使用 EDA 可以提升模型的性能,如果用的数据集越小提升的越明显。验证四种增强方法的效果,如下图所示,横坐标是 α 的大小,即改变单词的比例。不同颜色的折线表示不同大小的数据集。可以看到相似的结果,数据集越小,提升越明显。当数据集比较大时,使用 RS 和 RD 进行数据增强还有可能会降低模型的性能。数据增强后可能会导致数据的向量空间与类标不一致,作者设计了一个简单的方法验证 EDA 是否会对数据的类标产生大影响,如下图所示。作者将原始句子 (图中 origin) 和 EDA 增强后的句子 (图中的 EDA) 传入同一个训练好的模型,然后将模型的输出降维可视化。可以看到 EDA 增强后的句子大部分还是会排列在原始句子附近。

4.EDA 参数选择

上面说到 EDA 的三个参数,主要用到两个参数:α 和 n_aug,α 表示改变原句子中百分之多少的单词,n_aug 表示一个句子生成多少个新句子。

作者在论文中给出了不同数据量的情况下,推荐的参数组合。

5. EDA 的缺点

使用同义词替换少量的单词,同义词与原词往往具有比较相似的词向量,因此有时候未必可以真正起到扩充的作用。随机插入和随机交换单词会改变原本句子的语法结构,在一些对语法结构、语义结构要求高的任务会有影响。删除随机单词,如果删除的是一些核心词,可能会导致数据在特征空间中偏离原来的标签。

6. 参考文献

《EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks》

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。