数据增强
更新时间:2021-05-13
策略简介
支持环境:python3.7 + paddle2.0.1及以上;
目前文心数据增强工具提供4种增强策略:
- 遮盖、删除、同词性词替换和词向量近义词替换;
- 可通过入口参数配置各增强策略的概率比例,在数据的一次增强中使用多种增强策略。
依赖说明
| 模块 | 依赖 | 原理简介 |
|---|---|---|
| unk | 无 | 随机替换token为unk |
| truncate | 无 | 随机删除 |
| pos | lac | 同词性词替换,依赖LAC算子进行分词和词性标注 |
| w2v | lac, gensim, tqdm | 基于词向量产生的近义词进行替换 |
其中,lac和Word2vec数据文件(用于w2v策略)可由文心框架提供下载脚本,gensim, tqdm可通过pip install -r requirements.txt安装;
脚本接口参数说明
usage: data_aug.py [-h] [-n AUG_TIMES] [-c COLUMN_NUMBER] [-u UNK]
[-t TRUNCATE] [-r POS_REPLACE] [-w W2V_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
--unk_token UNK_TOKEN如上依次为,
- input:原始待增强数据文件,带label标签,包含一个或多个文本列
- output:输出文件路径
- 放大倍数n:放大n倍,output行数为input的n+1倍
- 增强列序号:多列用逗号分割,比如 1 or 1,2,表示第一列或者第一列和第二列;即用户可以选择对多个文本列分别进行数据增强;
- 各个增强策略被使用的概率,可以单独使用一种增强策略,也可以多种搭配使用,增强策略的概率和为1;
LAC和Word2vec数据文件下载方式
cd tasks/model_files/
# LAC预制模型下载
sh download_lac.sh
# 安装LAC
pip install LAC-0.1.1.tar.gz
# Word2vec数据文件下载(w2v任务)
sh download_vec2.sh如何使用数据增强
示例默认采用unk,随机mask的方式对数据进行增强;使用默认的策略概率做增强命令如下:
python data_aug.py {your_input_data_folder} {your_output_path} #注意第一个参数是要增强的原始数据所在目录如果需要指定策略概率做增强,比如20%用POS_REPLACE,80%用W2V_REPLACE
python data_aug/data_aug.py -u 0 -t 0 -r 0.2 -w 0.8 {your_input_data_folder} {your_output_path}