文本数据增强三(回译,不同语种间的翻译)

一.中文文本数据增强

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

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

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

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

二.回译

       回译,顾名思义,就是将A语言的译文B,再根据得到的译文B翻译成A语言。

       很简单是不是。

       我感觉这是比较靠普的方案了,一般任务下,中文-大语种间的回译,得到的语料,应该还是比较通顺的,质量勉勉强强也可以接受吧。至少比起《文本数据增强二》中的同义词的增-删-改-换读起来通顺点,句子间也有相对较大的差异。

       为什么会这样子呢,你也可以看得出来,这是翻译过程中信息损失造成的。

三.技术方案

       很自然的,你可以想到两种方案,

       1.  第一,当然是调用在线翻译工具啦,像百度翻译、谷歌翻译、搜狗翻译、有道翻译、腾讯翻译什么的,有资源不用白不用,大公司的技术水平应该总会比大多数人强一点吧。

       2.  第二,你不想用,就只能老老实实自己训练咯,Tranformer、Seq2Seq、NMT、Attention,只要你有高质量的语料,就好,不过我不太建议你这么做。当然你想离线部署,那又是另外一回事了。

        这个工程代码实现的github项目地址为:

                       https://github.com/yongzhuo/nlp_xiaojiang/tree/master/AugmentText

 

希望对你有所帮助吧!

 

 

 

你可能感兴趣的:(自然语言处理,文本数据增强与同义句生成,中文文本数据增强-同义句生成)