AEDA:文本分类数据增强

AEDA:AnEasier Data Augmentation Technique for Text Classification

论文地址:https://arxiv.org/pdf/2108.13230.pdf
代码地址:https://github.com/akkarimi/aeda_nlp

为了让模型由更好的泛化能力,一般需要更多的更加全面的数据集,但是数据的收集和标注是很费事费力的,所以这个时候数据增强技术就很重要。
在NLP领域,EDA(Easy Data Augmentation Techniques for Boosting Performance on TextClassification Tasks,2019)提出了四种简单的数据增强操作,包括:同义词替换(通过同义词表将句子中的词语进行同义词替换)、随机交换(随机交换句子的两个词语,改变语序)、随机插入(在原始句子中随机插入,句子中某一个词的同义词)和随机删除(随机删除句子中的词语)。

目前,也有一些其他的数据增强方法,例如:同义词替换不使用词表,而是使用词向量或者预训练语言模型;通过在在文本中插入一些符合或者词语,来增加噪声;将句子通过翻译器翻译成另外一种语言再翻译回来的回译手段等。

AEDA Augmentation

该论文所提出的AEDA方法,主要是在原始文本中随机插入一些标点符号,属于增加噪声的一种,主要与EDA论文对标,突出“简单”二字。注意:该方法仅适用于文本分类任务。
Q:插入多少标点符号?
A: 从1到三分之一句子长度中,随机选择一个数,作为插入标点符号的个数。

Q: 为什么是三分之一的句子长度?
A:作者表示,即想每个句子有标点符号插入,增加句子的复杂性,又不想加入太多的标点符号,过于干扰句子的语义信息,并且太多噪声可能对模型由负面影响。

Q:句子插入标点符号的位置如何选取?
A:随机插入。

Q:标点符号共包含哪些?
A:主要有6种,“.”、“;”、“?”、“:”、“!”、“,”。

Q:AEDA比EDA效果好的理论基础是什么?
A:作者认为,EDA方法,如论是同义词替换,还是随机替换、随机插入、随机删除,都改变了原始文本的序列信息;而AEDA方法,只是插入标点符号,对于原始数据的序列信息修改不明显。个人理解,通过词语修改的方法,与原始语义改变可以更加负面;而仅插入一些标点符号,虽然增加了噪声,但是原始文本的语序并没有改变。

代码:

PUNCTUATIONS = ['.', ',', '!', '?', ';', ':']
PUNC_RATIO = 0.3

def insert_punctuation_marks(sentence, punc_ratio=PUNC_RATIO):
    words = jieba.cut(sentence.strip())
    words = ' '.join(words)
    new_line = []
    q = random.randint(1, int(punc_ratio * len(words) + 1))
    if q >= len(words):
        q = 0
    assert q <= len(words)
    qs = random.sample(range(0, len(words)), q)
    
    for j, word in enumerate(words):
        if j in qs:
            new_line.append(PUNCTUATIONS[random.randint(0, len(PUNCTUATIONS) - 1)])
        new_line.append(word)
    new_line = ' '.join(new_line)
    return new_line
    
train['text'] = train['text'].apply(lambda x:insert_punctuation_marks(x))
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AEDA transformer是基于Swin Transformer的一个修改版,该代码是在原作者的基础上进行了修改和调整。作者参考了Swin Transformer的架构,并在其基础上进行了改进。具体的修改实现可以在GitHub上的这个链接找到:。在该链接的代码文件中,可以找到第249行,这是AEDA transformer代码的具体实现部分。另外,关于转换模型出现的问题,根据提供的引用内容,可能是在执行转换模型的操作时遇到了一些问题。具体的错误信息可以在给出的引用内容中找到,包括转换模型的路径和相关参数。所以,如果需要解决转换模型的问题,可以根据引用内容中的信息进行排查和调试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [37、记录使用 Swin Transformer主干网络去实现分类,并转化NCNN、TNN、MNN模型以及部署](https://blog.csdn.net/sxj731533730/article/details/122601993)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Swin Transformer简记-220112版](https://blog.csdn.net/symuamua/article/details/122455055)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值