文本数据增强二(EDA、同义词替换-新增-交换-删除-生成同义句)

佚名 次浏览

摘要:一.中文文本数据增强???(中文、同义句生成、enhance、augment、text、data、nlp、样本不均衡、语料不够、数据不足、扩充增加),相较于图片,中文文本数据强的效果似乎没那么靠谱(效果没那么好),也更加困难,但是捏,很多时候,使用中文文本数据增强还是很有必

一.中文文本数据增强

? ? ? (中文、同义句生成、enhance、augment、text、data、nlp、样本不均衡、语料不够、数据不足、扩充增加),相较于图片,中文文本数据强的效果似乎没那么靠谱(效果没那么好),也更加困难,但是捏,很多时候,使用中文文本数据增强还是很有必要的,尤其是项目初期语料不够(估计只能手工构建),或者是样本严重不均衡的情况(比如说分类中一个类有200条数据,另外一个类有100万条数据)。

? ? ? ? 这个时候,我们就需要使用中文文本数据增强了,通俗的说,也可理解成同义句生成。看见过paperweekly上的一篇论文介绍,说中文文本的语序不是那么重要,如果存在部分词语顺序错误、错别字,人类也能get这句话是什么意思,比如说“大漠帝国并不是一个历史上存在的国度,人类在实真的史历上没有录记,这是真的。”一眼看去,我们就能识别这句话什么意思,少部分语序错误我们也能够区分。

? ? ? ?又比如如果遮挡住,一句话的小半边或者是一半,我们依旧可以理解它们。

? ? ? ?所以,在分类、阅读理解、对话系统、检索......大多数领域,是可以容忍噪声的,我们引入同义句,也是有一定道理的。

二.同义词方案

? ? ? ? 记得有一篇分类augment论文《Easy data augmentation techniques for boosting performance on text classification tasks》,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? paper地址是:https://arxiv.org/abs/1901.11196

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? github实现是:?https://github.com/jasonwei20/eda_nlp

? ? ? ? 主要还是对英文语料进行词语操作,替换(用同义词替换文本中的部分词语,这个很容易想得到的)、删除(删除一个词语可以理解吧,这个也容易想到)、插入(即随机选择一个原句的词语的同义词插入,这个确实没想到,感觉比较赏心悦目)、交换(随机抽取词语交换顺序,这也很有意思)。

? ? ? ? EDA对不同模型的提升:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? EDA对分类准确率的提升:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? EDA四个方法的效果:

? ? ? ? ? ? ? ? ?

? ? ? ? EDA的增强比率:

? ? ? ? ? ? ? ? ?

? ? ? ? ?虽然看起来效果不明显,但也聊胜于无吧,尤其是分类训练语料少的时候,比如说几十条数据,想想都让人绝望呀。

三、中文实现:

? ? ? ?相信这个算法很容易理解,?自己的中文版在初始版本的基础上加了一些过滤,同时调高了同义词替换、同义词插入的权重。

github的实现在:?https://github.com/yongzhuo/nlp_xiaojiang/blob/master/AugmentText/augment_eda/enhance_eda.py

初始版本在:?https://github.com/zhanlaoban/eda_nlp_for_Chinese

四.? 改进:

? ? ? ? 1.? 同义词获取的方案,除了那个Synonyms,你也可以用自己的,或者公开的词向量模型,获取最相似的。

?

希望对你有所帮助!

?

随机内容

平台注册入口