NLP文本数据增强热门技术
NLP文本数据增强热门技术
- 背景
- word替换
- 同义词替换
- 词向量替换
- 掩码语言模型(Masked Language Model,MLM)
- 基于tfidf的词替换
- 反向翻译
- 文本表面转换
- 随机噪声
- 注入拼写错误例子
- 空白噪声
- 打乱文本句子顺序
- 随机处理(插入、替换、删除)
- 语法树
- 文本混合
- wordMixup
- sentMixup
背景
CV中有很多简单实用的数据增强方式,如旋转图像、调整RGB等。这些方法在保证图像特征的基础上增加了训练量,进而能够提升模型的表现效果。但在NLP中这些方法就不再适用,文本上少量的调整都可能改变整体上下文语义信息。
《A Visual Survey of Data Augmentation in NLP》(本文主要参考文章)中这样阐述这种情况:
word替换
同义词替换
基于公开的知识库,随机选择当前句子中的单词,应用同义词库将其替换为其同义词。比如,使用WordNet数据库,将「awesome」替换为「amazing」。
使用该方法扩充数据集的论文如:
- Character-level Convolutional Networks for Text Classification
- EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks
- Siamese Recurrent Architectures for Learning Sentence Similarity
词向量替换
采用预先训练好的单词嵌入,如Word2Vec、GloVe、FastText、Sent2Vec,并使用嵌入空间中最近的相邻单词替换句子中的某些单词。(个人认为用bert微调后的向量表现更佳)
因为词向量可将词汇映射到同一个语义空间,在具体应用中,我们可以通过临近词替换当前词的方式,随机替换单词进而增加训练数据。
使用该方法的论文如:
- TinyBERT: Distilling BERT for Natural Language Understanding
另外,也可以调用api接口,来获取词向量和每个词的临近词向量。可以导入预训练好的词向量,也可以自行训练(自行训练需要构建个人语料集,分词后feed到词向量模型,经过训练后再计算相似度)。
#导入预训练好的Glove词向量
import gensim.downloader as apiinfo = api.info() # show info about available models/datasets
model = api.load("glove-twitter-25") # download the model and return as object ready for use
model.most_similar("cat")
#导入预训练好的word2vec词向量
from gensim.models.word2vec import Word2Vec
import gensim.downloader as apicorpus = api.load('text8') # download the corpus and return it opened as an iterable
model = Word2Vec(corpus) # train a model from the corpus
model.most_similar("car")
掩码语言模型(Masked Language Model,MLM)
在BERT模型中,可以通过MLM来根据上下文预测遮盖的词汇。因为bert已经采用大量语料集进行了预训练,所以这种方法生成的词汇在语义程度上更接近原词,生成的文本也更有可解释性。
这种方法存在的问题是要考虑遮盖哪些词,能最大限度保留文本上下文语义。
源码可参考:token预测
基于tfidf的词替换
替换文本中tfidf分数较低的词汇,要替换的词汇由所有分数较低的词汇中随机抽样。
使用该方法的论文有:
- Unsupervised Data Augmentation for Consistency Training
源码可参考:word_level_augment
反向翻译
先将文本翻译成其他语言,再翻译回来,如果新文本与原文本形式不一,即可用于数据增强。
资源:Google Sheets说明
文本表面转换
使用简单模式匹配来进行转换,这个主要基于正则表达式,无太多技术含量,此处不详述。
随机噪声
加入噪声是机器学习常用的用于提高模型鲁棒性的方法。主要有如下几种噪声注入方式。
注入拼写错误例子
映射常见拼写句子,生成错误映射。
资源:英文常见错误映射
空白噪声
随机去除一些词汇,并用占位符标记。常用于缓解过拟合问题。
打乱文本句子顺序
随机处理(插入、替换、删除)
语法树
总结可为:规则+语法依赖树。实用价值较小,不详述。
文本混合
思想基于图像增强技术,经过修改应用于NLP。相关论文:
- Augmenting Data with Mixup for Sentence Classification: An Empirical Study
具体方法有wordMixup和sentMixup两种。
wordMixup
随机选择两个文本,经过等长的embedding嵌入,按比例组合在一起。然后再经过CNN/LSTM等编码得到文本嵌入,计算交叉熵。
sentMixup
与上述方法类似,在细节处做了调整。
NLP文本数据增强热门技术相关推荐
- nlp文本数据增强_如何使用Texthero为您的NLP项目准备基于文本的数据集
nlp文本数据增强 Natural Language Processing (NLP) is one of the most important fields of study and researc ...
- 人机交互系统(3.1)——NLP文本数据增强方法
一.数据增强的背景和应用场景 随着AI技术的逐步发展,更好的神经网络模型对数据规模的要求也逐步提升.而在分类任务中,若不同类别数据量相差很大,模型则会出现过拟合现象,严重影响预测的正确性. 从广义上来 ...
- NLP的数据增强技术总结
文章目录 一.简单的数据增强技术 EDA (Easy Data Augmentation) 即Normal Augmentation Method 1.`同义词替换`(Synonym Replacem ...
- 文本数据增强一(概述、中文、同义句生成、enhance、augment、text、nlp)
文本数据增强(扩充增加.中文.同义句生成.enhance.augment.text.nlp) AugmentText 概述 - 相较于图像数据增强,文本数据增强,现在还是有很多问题的: - 往更严格的 ...
- 【NLP】文本数据分析文本特征处理文本数据增强
一.文本数据分析 文本数据分析的作用: 文本数据分析能够有效帮助我们理解数据语料, 快速检查出语料可能存在的问题, 并指导之后模型训练过程中一些超参数的选择. 常用的几种文本数据分析方法: 标签数量分 ...
- NLP中数据增强的综述,快速的生成大量的训练数据
作者:amitness编译:ronghuaiyang 导读 深度学习视觉领域的增强方法可以很大程度上提高模型的表现,并减少数据的依赖,而NLP上做数据增强不像在图像上那么方便,但还是有一些方法的. 与 ...
- 2.文本预处理(分词,命名实体识别和词性标注,one-hot,word2vec,word embedding,文本数据分析,文本特征处理,文本数据增强)
文章目录 1.1 认识文本预处理 文本预处理及其作用 文本预处理中包含的主要环节 文本处理的基本方法 文本张量表示方法 文本语料的数据分析 文本特征处理 数据增强方法 重要说明 1.2 文本处理的基本 ...
- 文本数据增强三(回译,不同语种间的翻译)
一.中文文本数据增强 (中文文本.同义句生成.扩充,增加,enhance.augment.text.nlp.样本不均衡.语料不够.数据不足.扩充增加),相较于图片,中文文本数据强的效果似乎没那么靠谱( ...
- NLP:数据增强/Data Argumentation【词汇替换、随机Mask、回译、添加噪声】
数据增强技术在计算机视觉中应用的比较广泛,但是在 NLP 中却很少能得到有效的应用.本质原因在于图像中的一些数据增强方法,比如将图像旋转几度或将其色度转换为灰度,在增强数据的同时并不会改变图像本身的含 ...
最新文章
- 锐捷RG-S2126G交换机密码恢复实战
- 爱上经典之《蜗牛与黄鹂鸟》
- 基于注解的方式装配bean
- Tab标签页接口---使用Intent对象
- linux c 封装redis,封装hiredis——C++与redis对接(一)(string的SET与GET操作)
- mysql数据库内存分配_MySQL OOM 系列一 Linux内存分配
- POJ 1080 Human Gene Functions(DP:LCS)
- selenium python自动化测试 ddt数据驱动
- html支付系统时间,中国人民银行支付系统介绍
- python外汇兑换代码_Python爬取中国银行外汇牌价
- Prometheus监控案例
- 使用线性神经网络实现逻辑与和逻辑异或(一)
- 小程序登录授权获取用户信息
- 计算机视觉与摄影测量的不同2
- python中找最小值,使用循环python查找最小值
- docker更换自己的阿里云镜像地址
- 4、JSX 基本语法规则
- Implement (interface)
- 姿态解算进阶:互补滤波(陀螺仪、加速度计、地磁计数据融合)
- Adaptive AUTOSAR (AP) 平台设计(9)——Persistency