文本分类的数据增强

Posted

技术标签:

【中文标题】文本分类的数据增强【英文标题】:Data augmentation for text classification 【发布时间】:2019-07-14 18:50:55 【问题描述】:

目前关于文本分类的最先进的数据增强技术是什么?

我在网上做了一些关于如何通过进行一些数据转换来扩展我的训练集的研究,就像我们在图像分类上所做的那样。 我发现了一些有趣的想法,例如:

同义词替换:从不停止词的句子中随机选择n个词。用随机选择的同义词替换这些词中的每一个。

随机插入:在句子中查找非停用词的随机词的随机同义词。将该同义词插入句子中的随机位置。这样做 n 次。

随机交换:随机选择句子中的两个单词并交换它们的位置。这样做 n 次。

随机删除:以概率 p 随机删除句子中的每个单词。

但是没有关于使用预训练的词向量表示模型,例如 word2vec。有什么原因吗?

使用 word2vec 进行数据增强可能有助于模型根据外部信息获取更多数据。例如,在专门针对外部在线 cmets 训练的预训练向量空间中,将句子中的有毒评论标记随机替换为更接近的标记。

这是一个好方法还是我错过了这项技术的一些重要缺点?

【问题讨论】:

【参考方案1】:

您使用 word2vec 嵌入的想法通常会有所帮助。然而,这是一个上下文无关的嵌入。更进一步,截至今天(2019 年 2 月)的最新技术 (SOTA) 是使用在大型文本语料库上训练的语言模型,并使用您自己的训练数据微调您自己的分类器。

两种 SOTA 模型是:

GPT-2 https://github.com/openai/gpt-2 BERT https://github.com/google-research/bert

您提到的这些数据增强方法也可能会有所帮助(取决于您的领域和您拥有的训练示例的数量)。其中一些实际上用于语言模型训练(例如,在 BERT 中,有一项任务是在预训练时随机屏蔽句子中的单词)。如果我是你,我会首先采用预先训练的模型,并根据你当前的训练数据微调你自己的分类器。以此为基准,您可以尝试每种您喜欢的数据增强方法,看看它们是否真的有帮助。

【讨论】:

感谢您的快速回复,我想知道使用上下文无关嵌入生成基于向量的同义词的缺点是什么,您可能有机会改变句子的整个含义(即使新样本对人类没有完全的意义,这对模型来说也可能无关紧要)。 一个缺点是对于一些可能模棱两可的词(想想银行,这可能意味着“金融银行”或“河岸银行”),学习向量可能会偏向于在很大程度上表示最流行的意思。如果在短句中使用嵌入,可能会导致嵌入空间中的位置不理想。当然,如果您的文本很长,则可以减轻这种情况,因为大多数其他词都可以带有适当的含义。将所有标记的嵌入向量组合在一起后,整个文本嵌入可能还不错。

以上是关于文本分类的数据增强的主要内容,如果未能解决你的问题,请参考以下文章

论文泛读157文本分类数据增强调查

自然语言处理NLP之BERTBERT是什么智能问答阅读理解分词词性标注数据增强文本分类BERT的知识表示本质

基于 Mixup 数据增强的 LSTM-FCN 时间序列分类学习记录

NLP文本特征处理&文本数据增强

简易快速数据增强库使用手册

简易快速数据增强库使用手册