当前位置: 首页 > 科技观察

组装,NLP数据增强技术!超全资源汇总

时间:2023-03-20 22:57:15 科技观察

本文经AI新媒体量子比特(公众号ID:QbitAI)授权转载,转载请联系出处。数据增强技术已经是CV领域的标配,比如图像旋转、镜像、高斯白噪声等。但是在NLP领域,针对文本的数据增强并不是那么普遍。因此,有一位机器学习T型工程师总结了现有文献中的一些NLP数据增强技术。合适的干货,放在这里。TextsubstitutionTextsubstitution主要是在不改变句子意思的情况下,对文本中的词进行替换,比如同义词替换,wordembedding替换等,接下来介绍一下。同义词替换,顾名思义,就是随机抽取文本中的一个词,然后用词库中的同义词替换。例如,使用WordNet数据库,将“awesome”替换为“amazing”。这种技术是比较常见的,并且已经在许多以前的论文中使用过,例如,Zhang等人。《Character-levelConvolutionalNetworksforTextClassification》论文链接:https://arxiv.org/abs/1509.01626Wei等。《EDA:EasyDataAugmentationTechniquesforBoostingPerformanceonTextClassificationTasks》论文链接:https://arxiv.org/abs/1901.11196要实现该技术,可以通过NLTK访问WordNet,也可以使用TextBlobAPI。另外还有PPDB数据库,里面有百万词的词库。Wordembeddingreplacement这种方法是取预先训练好的wordembeddings,如Word2Vec、GloVe、FastText、Sent2Vec等,用embedding空间中距离最近的相邻词作为句子中部分词的替换。例如:这样,一个词可以用相邻的三个词代替,得到文本的三种变体形式。掩码语言模型(MLM)类似于BERT、ROBERTA和ALBERT。Transformer模型已经在大量文本上进行了训练,使用了掩码语言模型的前置任务。在此任务中,模型必须根据上下文预测掩码词。此外,您还可以使用它来扩展文本。与以前的方法相比,生成的文本在句法上会更加连贯。不过需要注意的是,决定屏蔽哪个词并不是一件容易的事,它决定了最终呈现的效果。基于TF-IDF的词替换方法最初出现在Xieetal.“用于一致性训练的无监督数据增强”。论文链接:https://arxiv.org/abs/1904.12848基本思路是,TF-IDF分数低的词是没有信息的词,所以可以在不影响句子原意的情况下进行替换。通过计算单词在整个文档中的TF-IDF分数,取最低分数来选择单词来替换原始单词。回译回译是先将句子翻译成另一种语言,例如将英语翻译成法语。然后再翻译回原语言,即将法语翻译回英语。检查两个句子之间的差异,从而使用新句子作为扩充文本。也可以一次使用多种语言进行反向翻译,从而产生更多的变体。比如除了法文,再翻译成中文和意大利文。要实现反向翻译,可以使用TextBlob。另外,也可以使用GoogleSheets,文末附上使用说明。文本形式转换的方法主要是通过正则表达式应用的简单模式匹配转换,在ClaudeCoulombe的论文“TextDataAugmentationMadeSimpleByLeveragingNLPCloudAPIs”中有详细描述。论文链接:https://arxiv.org/abs/1812.04718举个简单的例子,将原始形式转换为缩写形式,反之亦然。但是也会出现一些歧义,比如:这里,选择允许歧义收缩,但是不允许扩张。文末附上Python的缩水库。随机噪声注入,顾名思义,就是在文本中注入噪声,以训练模型对干扰的鲁棒性。例如,拼写错误。句子洗牌。空白噪音。随机插入。随机交换。随意删除。语法树方法也出现在ClaudeCoulombe的论文“TextDataAugmentationMadeSimpleByLeveragingNLPCloudAPIs”中。论文链接:https://arxiv.org/abs/1812.04718思路是解析生成原句的从属树,使用规则进行转换,生成新的句子。例如,将句子的主动语态转换为被动语态,反之亦然。这项技术的想法源于一种称为“Mixup”的图像增强技术。郭等。修改它以将其应用于NLP。《AugmentingDatawithMixupforSentenceClassification:AnEmpiricalStudy》论文链接:https://arxiv.org/abs/1905.08941主要有两种方法。wordMixup的方法是随机抽取两个句子,用零填充,使它们长度相同。然后,将它们按一定比例组合在一起。生成的词嵌入通过CNN/LSTM编码器传递到句子嵌入中,然后计算交叉熵损失。sentMixup可以看到这个方法,和上面的方法类似,只是具体步骤有所调整。好了,NLP的数据增强技术就介绍到这里,希望对大家有所帮助。门户博客地址:https://amitness.com/2020/05/data-augmentation-for-nlp/WordNet数据集:https://www.nltk.org/howto/wordnet.htmlTextBlobAPI:https://textblob。readthedocs.io/en/dev/quickstart.html#wordnet-integrationPPDB数据集:http://paraphrase.org/#/downloadYF-IDF代码:https://github.com/google-research/uda/blob/master/text/augmentation/word_level_augment.py使用GoogleSheets实现反向翻译:https://amitness.com/2020/02/back-translation-in-google-sheets/Python收缩库:https://github。com/kootenpv/收缩