Kaggle知识点:NLP数据扩增方法

发表时间:2023-06-14 11:27作者:沃恩智慧

在非结构化数据任务中深度学习模型占据了主流,对于图像数据扩增方法以及比较成熟,而文本数据扩增方法则比较复杂。本文将介绍几种简单的数据扩增放方法,以及一些可以直接使用的库。

扩增方法:回译

将文本数据翻译成某种语言,然后再将其翻译回原始语言。回译可以生成带有不同单词的文本数据,同时保留文本数据的上下文。

一般情况下回译需要借助翻译API来完成,需要耗费一定的时间。

扩增方法:同义词替换

从句子中随机选择N个非停止词,随机选择的同义词替换这些单词。

替换前:This article will focus on summarizing data augmentation techniques in NLP.

替换后:This write-up will focus on summarizing data augmentation methods in NLP.

在进行同义词替换时,关键是计算得到同义词的方法:

  • word2vec距离
  • Bert Mask预测

扩增方法:同义词插入

在句子中随机找一个非停止词的同义词。把同义词插入句子中的任意位置。

替换前:This article will focus on summarizing data augmentation techniques in NLP.

替换后:This article will focus on write-up summarizing data augmentation techniques in NLP methods.

扩增方法:随机替换

从句子中随机选取两个单词,互换它们的位置。

替换前:This article will focus on summarizing data augmentation techniques in NLP.

替换后:This techniques will focus on summarizing data augmentation article in NLP.

扩增方法:随机删除

随机删除句子中的单词。

替换前:This article will focus on summarizing data augmentation techniques in NLP.

替换后:This article focus on summarizing data augmentation in NLP.

扩增方法:对抗训练

对抗样本是让能够模型误分类的样本,且对抗样本与原始样本区别不大。将模型生成的对抗样本加入训练过程,即为对抗训练

对抗训练思路:通过产生对抗样本的思路,如FGSM来计算出扰动,添加到到连续的Word Embedding上产生,然后将再进行一次正向传播和反向传播。

https://arxiv.org/abs/1605.07725

扩增库:EDA

EDA是Easy Data Augmentation的缩写,原始提出于论文EDA: Easy Data Augmentation techniques for boosting performance on text classification tasks.

EDA库实现了同义词替换、随机插入、随机交换和随机删除等操作,使用起来非常简单。

英文版:https://github.com/jasonwei20/eda_nlp

中文版:https://github.com/zhanlaoban/EDA_NLP_for_Chinese

扩增库:nlpaug

nlpaug是一个非常常用的数据扩增库,支持文本和音频数据。nlpaug实现了较多的同义词替换方法,底层支持pytorch和tf。

https://github.com/makcedward/nlpaug

使用案例:https://github.com/makcedward/nlpaug/blob/master/example/textual_augmenter.ipynb

分享到: