首页 > 其他分享 >NLP中数据增强

NLP中数据增强

时间:2023-04-29 11:14:27浏览次数:52  
标签:NLP 增强 语义 噪声 替换成 方法 数据 句子

Data Augmentation Approaches in Natural Language Processing: A Survey

数据增强方法

数据增强(Data Augmentation,简称DA),是指根据现有数据,合成新数据的一类方法。毕竟数据才是真正的效果天花板,有了更多数据后可以提升效果、增强模型泛化能力、提高鲁棒性等。然而由于NLP任务天生的难度,类似CV的裁剪方法可能会改变语义,既要保证数据质量又要保证多样性。

作者根据生成样本的多样性程度,将DA方法分为了以下三种:

Paraphrasing:对句子中的词、短语、句子结构做一些更改,保留原始的语义
Noising:在保证label不变的同时,增加一些离散或连续的噪声,对语义的影响不大

Paraphrasing

这类方法根据替换的成分不同,又可以分为词、短语、句子级别。作者共总结了6种方法:

  1. Thesaurus:利用词典、知识图谱等外部数据,随机将非停用词替换成同义词或上位词,如果增加多样性的话还可以替换成相同词性的其他词
  2. Semantic Embeddings:利用语义向量,将词或短语替换成相近的(不一定是同义词)。由于每个词都有语义表示,可替换的范围更大。而上一种方法只能替换图谱里的
  3. MLMs:利用BERT等模型,随机mask掉一些成分后生成新的
  4. Rules:利用一些规则,例如缩写、动词变位、否定等,对句子一些成分进行改写,比如把 is not 变成 isn't
  5. Machine Translation:分为两种,Back-translation指把句子翻译成其他语言再翻译回来,Unidirectional Translation指在跨语言任务中,把句子翻译成其他语言
  6. Model Generation:利用Seq2Seq模型生成语义一致的句子
  7. Dropout:SimCSE中使用的,用dropout机制生成语义相近的表示(自己加的)

优缺点

Noising

人在读文本时对噪声是免疫的,比如单词乱序、错别字等。基于这个思想,可以给数据增加些噪声来提升模型鲁棒性。

作者给出了5种增加噪声的方法:

  1. Swapping:除了交换词之外,在分类任务中也可以交换instance或者sentence
  2. Deletion:可以根据tf-idf等词的重要程度进行删除
  3. Insertion:可以把同义词随机插入句子中
  4. Substitution:把一些词随机替换成其他词(非同义),模拟misspelling的场景。为了避免改变label,可以使用label-independent的词,或者利用训练数据中的其他句子
  5. Mixup:这个方法最近两年比较火,把句子表示和标签分别以一定权重融合,引入连续噪声,可以生成不同label之间的数据,但可解释性较差

总的来说,引入噪声的DA方法使用简单,但会对句子结构和语义造成影响,多样性有限,主要还是提升鲁棒性

标签:NLP,增强,语义,噪声,替换成,方法,数据,句子
From: https://www.cnblogs.com/shiiiilong/p/17363687.html

相关文章

  • 【Redis】Redis数据结构——链表
    【Redis】Redis数据结构——链表注意事项:本文第三点redis中操作列表的相关命令可参考博文:【Redis】Redis基础命令集详解_Etui۹(・༥・´)و̑̑的博客本文参考内容如下:1、Redis数据结构——链表-随心所于-2、《Redis设计与实现》(黄健宏·著)第3章链表本文仅供学习交流使用!1、Redi......
  • 大数据学习初级入门教程(十六) —— Hadoop 3.x 完全分布式集群的安装、启动和测试
    好久没用Hadoop集群了,参考以前写的《大数据学习初级入门教程(一)——Hadoop2.x完全分布式集群的安装、启动和测试_孟郎郎的博客》和《大数据学习初级入门教程(十二)——Hadoop2.x集群和Zookeeper3.x集群做集成_孟郎郎的博客-》,下载了目前官网最新的版本 hadoop-3.3.5再......
  • 数据库的基本操作
    结构化查询语句分类创建数据表数据类型字符串类型日期和时间型数值类型NULL值设置数据表的类型数据表的存储位置设置数据表字符集修改表(ALTERTABLE)删除数据表其他结构化查询语句分类数据库操作创建数据库:createdatabase[ifnotexists]数据库名;删除数据库......
  • 数据库函数
    常用函数数据函数字符串函数日期和时间函数系统函数题目介绍实现数据加密常用函数1.数据函数SELECTABS(-8);/*绝对值*/SELECTCEILING(9.4);/*向上取整*/SELECTFLOOR(9.4);/*向下取整*/SELECTRAND();/*随机数,返回一个0-1之间的随机数*/SELECT......
  • 大数据Doris(六):BE部署及启动
    文章目录BE部署及启动一、上传安装包并解压二、修改be.conf 配置文件三、上传apache-doris-java-udf对应 jar四、启动BE五、将 node3BE 安装包发送其他 BE 节点六、配置其他 BE 节点七、启动其他 BE 节点BE部署及启动本集群中我们在node3、node4、node5上配置并启动BE,......
  • NFO20003 数据库
    DatabaseSystemsINFO20003A2S12023Page1of7INFO20003Semester1,2023Assignment2:SQLDue:6:00pmFriday,28April2023Weighting:10%ofyourtotalassessmentResearchPapersDatabaseDescriptionYouandagroupoffellowundergradshavecreatedast......
  • 【数据挖掘&机器学习】招聘网站的职位招聘数据的分位数图、分位数-分位数图以及散点图
    一.本次需求背景本文主题:招聘网站的职位招聘数据的分位数图、分位数-分位数图以及散点图、使用线性回归算法拟合散点图处理详解之前的文章我们已经对爬取的数据做了清洗处理,然后又对其数据做了一个薪资数据的倾斜情况以及盒图离群点的探究。我们这次的需求是:使用散点图、使用......
  • 【数据预处理&机器学习】对于薪资数据的倾斜情况以及盒图离群点的探究
    一.需求背景课题中心:招聘网站的职位招聘数据预处理之前的文章,我们已经对职位薪资数据进行了爬取(9000条)数据,然后进行了数据的清洗,最终得到了4000条有效数据。具体需求:按不同的类别划分职位中的薪酬数据,画盒图/箱线图,检查孤立点/离群点;使用分位数图、分位数-分位数图方法处理数......
  • 一篇搞懂数据建模流程
    一、数据建模的基本流程数据建模是一种用于构建数据模型的过程,旨在帮助人们更好地理解数据之间的关系和组织方式。在数据建模的过程中,我们需要采取以下基本步骤:需求分析需求分析是数据建模的第一步,也是最重要的一步。在这一阶段,我们需要理解业务需求和目标,确定数据的目的和范......
  • STM32单片机软件模拟I2C读取AM2320温湿度传感器数据
    STM32单片机使用软件模拟IIC读取AM2320温湿度传感器的数据并显示在0.96寸OLED屏上。我用的单片机是STM32F103C8T6,程序用的是ST标准库写的。STM32使用硬件I2C读取SHTC3温湿度传感器:https://blog.zeruns.tech/archives/692.htmlSTM32单片机读取AHT10温湿度传感器数据:https://blog.ze......