文本增强(不依赖模型)
更新时间:2022-01-25
策略简介
支持环境:py2.7+paddle1.7.1 / py3.7+paddle1.7.1
目前文心数据增强工具提供5种增强策略:
- 遮盖、删除、同词性词替换、词向量近义词替换、ERNIE语言模型替换
- 可通过入口参数配置各增强策略的概率比例,在数据的一次增强中使用多种增强策略,
依赖说明
| 模块 | 依赖 | 原理简介 |
|---|---|---|
| unk | no | 随机mask |
| truncate | no | 随机删除 |
| pos | lac | 同词性词替换,依赖LAC算子进行分词和词性标注 |
| w2v | lac, gensim, tqdm | 词向量近义词替换 |
| ernie | lac, 动态ERNIE | ERNIE语言模型替换:输入了带mask的文本,然后预测mask对应的词 |
其中,lac和动态ERNIE由文心框架提供下载脚本,gensim, tqdm需要用户自行通过pip install安装即可;
脚本接口参数说明
usage: data_aug.py [-h] [-n AUG_TIMES] [-c COLUMN_NUMBER] [-u UNK]
[-t TRUNCATE] [-r POS_REPLACE] [-w W2V_REPLACE]
[-e ERNIE_REPLACE] [--unk_token UNK_TOKEN]
input output
main
positional arguments:
input
output
optional arguments:
-h, --help show this help message and exit
-n AUG_TIMES, --aug_times AUG_TIMES
-c COLUMN_NUMBER, --column_number COLUMN_NUMBER
-u UNK, --unk UNK
-t TRUNCATE, --truncate TRUNCATE
-r POS_REPLACE, --pos_replace POS_REPLACE
-w W2V_REPLACE, --w2v_replace W2V_REPLACE
-e ERNIE_REPLACE, --ernie_replace ERNIE_REPLACE
--unk_token UNK_TOKEN如上依次为,
- input:原始待增强数据文件,带label的,一个或多个文本列
- output:输出文件路径
- 放大倍数n:放大n倍,output行数为input的n+1倍
- 增强列序号:多列用逗号分割 eg: 1 or 1,2
- 各增强策略概率,建议和为1
lac和动态ERNIE的预制模型下载方式
cd tasks/model_files/
# LAC预制模型下载
sh download_lac.sh
# 动态ERNIE的预制模型下载
sh download_data_aug_ernie.sh