昨天遇见一位老哥,问我知道哪些NLP增强技术。我一下子懵了,增强技术最早来源于 图像处理,后来在《百面机器学习》这本书中我看见了它的详细解读。NLP的增强技术?其实,以前我也是用过的。
在语音助手的时候,作为输入预料,我首先针对定义进行了语料的数据增强。作为主打模型的TextCNN,其实我们也是有数据增强技术的,为此,我还写过好几次的探索总结。
回来后,我在知乎上看到了关于NLP数据增强的技术,于是准备研究一番。
本文重点参考 知乎名帖1

  1. 词汇替换
    1.1 基于词典的替换
    (1)动词,做成了小set;叹词、人称词都有字典,可以随意替换
    (2)资源替换是一个难点。比如,儿童教育 这个技能。有些资源是儿童教育专有的,其他资源不属于儿童教育,所以替换时要注意,还要添加 对抗句子。而且针对这种情况,我们还有词嵌入 方式来把握。
    1.2. 基于词向量的词汇替换
    没用过,预训练模型太大了,这应该不好操作吧
    1.3 基于掩码语言模型(MLM augmentation)
    难操作,不好控制
    1.4 基于TF-IDF的词替换
    tf是频率高的词,IDF是文章间区分权重大的词。本技巧的原意是 去掉那些 不重要的词。
  2. 回译
    这种方法在增强文本相似数据集时很有用
  3. 文本形式变换
    这里专指 把词语展开或缩略
  4. 随机噪音注入
    基于一个假设:对样本进行少量的干扰,模型对其预测的结果具有一致性
    4.1 引入拼写错误
    这个有。我们将语音识别后的错误结果保存下来,作为某个正式资源名的别名。
    4.2 Unigram噪音、Blank噪音
    一个是加入 没用的高频词;一个是加入 固定符号
    4.3 其他简单方法
    (1)句子顺序shuffle
    (2)随机交换两个词的顺序
    (3)随机插入词或句子
    (4)随机删除
  5. 实例交叉增强