目录
2、需要文本数据增强,一个是常常遇到的数据不足,另一个就是数据不均衡。
1、参考文章:
综述:
- 文本数据增强综述 https://www.zhihu.com/collection/540515296 英文原版:https://amitness.com/2020/05/data-augmentation-for-nlp/#8-generative-methods
- 文本数据增强(概述):https://blog.csdn.net/rensihui/article/details/89166307
- 文本数据增强 https://www.jianshu.com/p/3996793324ca
- 数据增强:数据有限时如何使用深度学习 ?https://www.leiphone.com/news/201805/avOH5g1ZX3lAbmjp.html
方法:
- ICLR 2019 workshop 论文《EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks》论文地址:https://arxiv.org/pdf/1901.11196.pdf
- EDA github代码
- EDA_NLP_for_Chinese https://github.com/zhanlaoban/eda_nlp_for_Chinese
- Do Not Have Enough Data? Deep Learning to the Rescue!, AAAI2020, https://ojs.aaai.org//index.php/AAAI/article/view/6233
- LaserTagger https://github.com/tongchangD/text_data_enhancement_with_LaserTagger
-
NLP-cda 一键中文数据增强 https://pypi.org/project/nlpcda/#description 源码:https://github.com/425776024/nlpcda
-
Data Augmentation For Chinese Text Classification Using Back-Translation
:
https://iopscience.iop.org/article/10.1088/1742-6596/1651/1/012039 -
文本分类 & 数据增强 & 模型微调 https://blog.csdn.net/G_B_L/article/details/104468939
-
NLP数据增强方法总结:EDA、BT、MixMatch、UDA https://mp.weixin.qq.com/s/ySxLHnaEMBXjcYPb4xc1Rg
-
NLP数据增强动手实践:https://blog.csdn.net/shine19930820/article/details/107649344
-
NLP数据增强技术!超全资源汇总:https://blog.csdn.net/qq_27590277/article/details/107054367
2、需要文本数据增强,一个是常常遇到的数据不足,另一个就是数据不均衡。
EDA:
(同义词替换、插入、交换和删除)【文献见上述1、2、3】Back Translation(回译):
【文献见上述 7】生成对抗网络(GAN):
通过生成器和判别器的相互博弈,以达到一个纳什平衡,不断迭代增强训练数据达到以假乱真的效果,最后用生成器大量生成同分布的数据,以达到数据增强的效果。但是GAN模型比较难训练,所以需要对GAN模型训练的足够好,才能更加有效的生成高质量的数据。语境增强
3、在机器学习过程中的什么位置进行数据增强?
- 预先进行所有必要的变换,从根本上增加数据集的规模。
- 另外一个是小批量执行变换,仅仅在输入机器学习模型之前。
第一项被称为离线增强。这个方法常被用于相对较小的数据集。因为你最终会通过一个与执行的转换数量相等的因子来增加数据集的大小(例如,通过翻转所有图像,数据集数量会增加2倍)。
第二个选项称为在线增强,或称为动态增强。主要应用于规模较大的数据集,因为你无法负担数据量爆炸性增长。反而,你可以通过对即将输入模型的小批量数据的执行相应的变化。很多机器学习架构已经支持在线增强,并可以利用GPU进行加速。
4、Synonyms:一个中文近义词工具包
在经典的信息检索系统中,相似度的计算是基于匹配的,而且是 Query 经过分词后与文档库的严格的匹配,这种就缺少了利用词汇之间的“关系”。而 word2vec 使用大量数据,利用上下文信息进行训练,将词汇映射到低维空间,产生了这种“关系”,这种“关系”是基于距离的,有了这种“关系”,就可以进一步利用词汇之间的距离进行检索。所以,在算法层面上,检索更是基于了“距离”而非“匹配”,基于“语义”而非“形式”。
工具包技术说明:
- 该中文近义词工具包采用的基本技术是 Word2vec。
- Synonyms 的安装十分便捷,我们可以直接使用命令 pip install -U synonyms 完成。该工具包兼容 Python 2 和 Python 3。
- Synonyms 采用的词向量维度为 100。
输出近义词向量:
synonyms.nearby(WORD) 会返回一个包含两项的列表:
[[nearby_words], [nearby_words_score]]
- nearby_words 是 WORD 的近义词向量,也以列表的方式存储,并且按照距离的长度由近及远排列,
- nearby_words_score 是 nearby_words 中对应词的距离分数,分数在 (0-1) 区间内,越接近于 1,代表越相近。
两个句子的相似度比较:
synonyms.compare(sen1, sen2, seg=True)
参数 seg 表示 synonyms.compare 是否对sen1和sen2进行分词,默认为 True。返回值:[0-1],并且越接近于1代表两个句子越相似。
synonyms.display(" ")
以友好的方式打印近义词,方便调试,display
调用了 synonyms#nearby
方法。