目录

EDA

目录

NLP中的EDA

同义词替换,回译,近音字替换,随机插入随机交换随机删除

同义词替换

做法可以是维护一个同义词表,如哈工大的发布的同义词词典。在每次训练的时候,样本有一定的概率对里面的词语进行替换。如”自动驾驶、医疗、能源……一季度融资最多的人工智能公司” -> “自动驾车、医术、能源……一季度融资最多的人工智能公司”。根据经验,有条件的话最好用项目领域的同义词词典,如做医疗的文本,就用医疗的同义词词典,做金融领域的就用金融的同义词词典,而不是用一个通用的字典。

还有种做法是用词向量进行替换,如上面的句子中,我们对”驾驶”一次进行同义词替换,发现在词向量表中,离”驾驶”余弦距离最近的一词是”行驶”,所以就把”驾驶”替换成”行驶”,当然这样做的话需要预先训练一个词向量表,还是那句话,最好用你目前手头任务领域的文本来训练词向量。

也可以用Bert等模型来进行替换,如把上面的句子随机MASK掉一些字,变成”自[MASK]驾驶、医疗、能源……一季[MASK]融资最多的人工智[MASK]公司”,再让Bert对MASK掉的字进行预测,这样又得到新的一个样本。

回译

做法很简单,把中文翻译成英文或法文或日本,再翻译回中文,如下面的句子,先翻译成英文,再翻译回中文,“自动驾驶、医疗、能源……一季度融资最多的人工智能公司” -> “第一季度融资最多的自动驾驶仪、医疗保健、能源人工智能公司”,有时回译能得到语法结构不同的句子,如被动句变成主动句,有效增强了样本的多样性。不过个人觉得,长文本并不适用于回译,想想一个500多字的长文本,经过回译后,上下文是否还通顺是个问题,当然也可以随机对长文本中的单句进行回译,而不是把整个长文本进行回译。