NLP数据增强方法-(一)

中文NLP数据增强工具:https://github.com/InsaneLife/NLPDataAugmentation

分类的增强方法

EDA-Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks

提出了数据增强方法:

  • synonym replacement(SR):随机选取句子中n个非停用词的词语。对于每个词语随机选取它的一个同义词替换该词语。

  • random insertion(RI):随机选取句子中的一个非停用词的词语,随机选取这个词语的一个近义词,将近义词随机插入到句子中,做n次。

  • random swap(RS):随机选取两个词语,交换他们的位置,做n次。

  • random deletion(RD):对于句子中的每个词语,以概率p选择删除。

在五个分类数据集上,EDA提升了RNN和CNN表现。

问题:

  • 对于每个句子,短句相比于长句,吸收同样的n个词噪音,更可能导致类别标签发生变化。

原文是长句具备更好的噪声吸收能力。

因此引入了补偿机制:在SR、RI、RS中,对于每句话词语变化个数n,
n = α l n=\alpha l n=αl
其中 l l l是句子的长度, α \alpha α是一个超参数,表示句子中需要被改变的词语的百分比。

  • 个人认为SR、RI、RS、RD很可能会改变句子的标签,其实确定标签没有改变也是非常重要。

实验

对于同义词,之前已经有过证明,实验增加对RI/RS/RD做了实验验证。

EDA是否改变了标签?

通过原始数据训练一个RNN模型,然后在测试集中每个句子通过EDA获得9个增强的句子,输入到模型中,获取其最后一层的向量输出,通过t-SNE算法将向量转为2维表达并绘制2D图形,发现增强的句子与原始句子的周围且距离很近,因此认为其标签并未改变。

针对分类问题,评估类别标签是否变化,使用此方法讲得通,但是是建立在一个假设基础上:即训练的分类RNN模型的向量表达是准确的,而分类模型在原始的小批量数据上训练而成,本身就是不够鲁棒的(论文本身要证明的就是这一点)。

个人感觉众包review更为可信,对于论文发表来说没啥技术含量且冗长,而且也与数据增强初衷违背。

但是NER问题的增强EDA可能不太适合使用,槽位值很可能因为随机替换之类的操作而改变。

更新中。。。
中文NLP数据增强工具:https://github.com/InsaneLife/NLPDataAugmentation

reference

  • EDA-Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks
  • https://mp.weixin.qq.com/s/p_aZ3jMwZx7FeWoJJhDDhA

你可能感兴趣的:(NLP,论文)