代码语言:javascript复制
来源:机器学习AI算法工程本文约1200字,建议阅读5分钟本文为你推荐一键中文数据增强工具。
使用:pip install nlpcda
https://github.com/425776024/nlpcda
介绍
一键中文数据增强工具,支持:
- 1.随机实体替换
- 2.近义词
- 3.近义近音字替换
- 4.随机字删除(内部细节:数字时间日期片段,内容不会删)
- 5.NER类 BIO 数据增强
- 6.随机置换邻近的字:研表究明,汉字序顺并不定一影响文字的阅读理解<<是乱序的
- 7.中文等价字替换(1 一 壹 ①,2 二 贰 ②)
- 8.翻译互转实现的增强
- 9.使用simbert做生成式相似句生成
经过细节特殊处理,比如不改变年月日数字,尽量保证不改变原文语义。即使改变也能被猜出来、能被猜出来、能被踩出来、能被菜粗来、被菜粗、能菜粗来。
WIP
- 基于语音的洗文本过程(类似翻译)。文本转语音>语音识别回文本:基于fastspeech2对文本生成语音,基于wav2vec2语音识别文本
例子: input: 新华社北京消息 > fastspeech2 > x.wav x.wav > wav2vec2 > output: 新华设北京消息
- 数字转换工具(用于文本转换、中文语音合成需要纯中文)
今天是8月29日消息 > 今天是八月二十九日消息
我有1234个苹果 > 我有一千二百三十四个苹果
意义
- 在不改变原文语义的情况下,生成指定数量的训练语料文本
- 对NLP模型的泛化性能、对抗攻击、干扰波动,有很好的提升作用
- 参考比赛(本人用此策略 base bert拿到:50 -/1000): https://www.biendata.com/competition/2019diac/
⚠️ 单纯刷准确率分数的比赛,用此包一般不会有分数提升
API
1.随机(等价)实体替换
参数:
- base_file :缺省时使用内置(公司)实体。对公司实体进行替换 是文本文件路径,内容形如: 实体1 实体2 ... 实体n
- create_num=3 :返回最多3个增强文本
- change_rate=0.3 :文本改变率
- seed :随机种子
2.随机同义词替换
参数:
- base_file :缺省时使用内置同义词表,你可以设定/自己指定更加丰富的同义词表: 是文本文件路径,内容形如(空格隔开): Aa01A0 人类 生人 全人类 id2 同义词b1 同义词b2 ... 同义词bk ... idn 同义词n1 同义词n2
- create_num=3 :返回最多3个增强文本
- change_rate=0.3 :文本改变率
- seed :随机种子
3.随机近义字替换
参数:
- base_file :缺省时使用内置【同义同音字表】,你可以设定/自己指定更加丰富的同义同音字表: 是文本文件路径,内容形如(t隔开): de 的 地 得 德 嘚 徳 锝 脦 悳 淂 鍀 惪 恴 棏 拼音2 字b1 字b2 ... 字bk ... 拼音n 字n1 字n2
- create_num=3 :返回最多3个增强文本
- change_rate=0.3 :文本改变率
- seed :随机种子
4.随机字删除
参数:
- create_num=3 :返回最多3个增强文本
- change_rate=0.3 :文本改变率
- seed :随机种子
5.NER命名实体 数据增强
输入标注好的NER数据目录,和需要增强的标注文件路径,和增强的数量,即可一键增强。
Ner类参数:
- ner_dir_name='ner_data' : 在ner数据放在ner_data目录下(里面很多.txt)
- ner_dir_name提供的目录下是各种标注数据文件,文件内容以标准的NER 的BIO格式分开
6.随机置换邻近的字
- char_gram=3:某个字只和邻近的3个字交换
- 内部细节:遇到数字,符号等非中文,不会交换
7.等价字替换
参数:
- base_file :缺省时使用内置【等价数字字表】,你可以设定/自己指定更加丰富的等价字表(或者使用函数:add_equivalent_list): 是文本文件路径,内容形如((t)隔开): 0 零 〇 1 一 壹 ① ... 9 九 玖 ⑨
- create_num=3 :返回最多3个增强文本
- change_rate=0.3 :文本改变率
- seed :随机种子
添加自定义词典
用于使用之前,增加分词效果
8.翻译互转实现的增强
1.百度中英翻译互转实现的增强 note:
申请你的 appid、secretKey:
http://api.fanyi.baidu.com/api/trans
编辑:于腾凯