Kaggle知识点:NLP数据扩增方法发表时间:2023-06-14 11:27作者:沃恩智慧 在非结构化数据任务中深度学习模型占据了主流,对于图像数据扩增方法以及比较成熟,而文本数据扩增方法则比较复杂。本文将介绍几种简单的数据扩增放方法,以及一些可以直接使用的库。 扩增方法:回译将文本数据翻译成某种语言,然后再将其翻译回原始语言。回译可以生成带有不同单词的文本数据,同时保留文本数据的上下文。 一般情况下回译需要借助翻译API来完成,需要耗费一定的时间。 扩增方法:同义词替换从句子中随机选择N个非停止词,随机选择的同义词替换这些单词。 替换前:This 替换后:This 在进行同义词替换时,关键是计算得到同义词的方法:
扩增方法:同义词插入在句子中随机找一个非停止词的同义词。把同义词插入句子中的任意位置。 替换前:This 替换后:This 扩增方法:随机替换从句子中随机选取两个单词,互换它们的位置。 替换前:This 替换后:This 扩增方法:随机删除随机删除句子中的单词。 替换前:This 替换后:This 扩增方法:对抗训练对抗样本是让能够模型误分类的样本,且对抗样本与原始样本区别不大。将模型生成的对抗样本加入训练过程,即为对抗训练 对抗训练思路:通过产生对抗样本的思路,如FGSM来计算出扰动,添加到到连续的Word Embedding上产生,然后将再进行一次正向传播和反向传播。 https://arxiv.org/abs/1605.07725 扩增库:EDAEDA是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 扩增库:nlpaugnlpaug是一个非常常用的数据扩增库,支持文本和音频数据。nlpaug实现了较多的同义词替换方法,底层支持pytorch和tf。 https://github.com/makcedward/nlpaug 使用案例:https://github.com/makcedward/nlpaug/blob/master/example/textual_augmenter.ipynb |