昨天遇见一位老哥,问我知道哪些NLP增强技术。我一下子懵了,增强技术最早来源于 图像处理,后来在《百面机器学习》这本书中我看见了它的详细解读。NLP的增强技术?其实,以前我也是用过的。
在语音助手的时候,作为输入预料,我首先针对定义进行了语料的数据增强。作为主打模型的TextCNN,其实我们也是有数据增强技术的,为此,我还写过好几次的探索总结。
回来后,我在知乎上看到了关于NLP数据增强的技术,于是准备研究一番。
本文重点参考 知乎名帖1
- 词汇替换
1.1 基于词典的替换
(1)动词,做成了小set;叹词、人称词都有字典,可以随意替换
(2)资源替换是一个难点。比如,儿童教育 这个技能。有些资源是儿童教育专有的,其他资源不属于儿童教育,所以替换时要注意,还要添加 对抗句子。而且针对这种情况,我们还有词嵌入 方式来把握。
1.2. 基于词向量的词汇替换
没用过,预训练模型太大了,这应该不好操作吧
1.3 基于掩码语言模型(MLM augmentation)
难操作,不好控制
1.4 基于TF-IDF的词替换
tf是频率高的词,IDF是文章间区分权重大的词。本技巧的原意是 去掉那些 不重要的词。 - 回译
这种方法在增强文本相似数据集时很有用 - 文本形式变换
这里专指 把词语展开或缩略 - 随机噪音注入
基于一个假设:对样本进行少量的干扰,模型对其预测的结果具有一致性
4.1 引入拼写错误
这个有。我们将语音识别后的错误结果保存下来,作为某个正式资源名的别名。
4.2 Unigram噪音、Blank噪音
一个是加入 没用的高频词;一个是加入 固定符号
4.3 其他简单方法
(1)句子顺序shuffle
(2)随机交换两个词的顺序
(3)随机插入词或句子
(4)随机删除 - 实例交叉增强