 闽公网安备 35020302035485号
                
                闽公网安备 35020302035485号
                随机删除:随机删除文本中的N个词汇。
	
python3 code/augment.py --input=content.txt --output=content_aug.txt --num_aug=3 --alpha=0.05EDA输入 我们需要使用以上命令的时候,这里需要将自己的数据变换成EDA输入(即上面命令的content.txt)的形式,我这边写了一个df转成输入的txt的python函数。
import pandas as pd
def transfer_input_data(df_small,content = 'content',label = 'result',output = 'tag.txt'):
    """将输入数据转成eda输入的形式label+\t+sentence"""
    df_small.reset_index(inplace = True)
    with open(output,'w',encoding='utf8') as file:
        for i in range(len(df_small)):
            label_i = df_small.loc[i,label]
            doc_i = df_small.loc[i,content]
            line = str(label_i) + '\t' + doc_i + '\n'
            file.write(line)
    print('write completed!')
EDA输出 我这边将EDA输出的txt(即上面命令的content_aug.txt)转成了df,代码如下:def transfer_argumentedTxt2csv(argument_txt,content = 'content'):
    # 将eda生成的增强后的数据转成df
    label = []
    sentence = []
    with open(argument_txt, 'r', encoding='utf8') as file:
        lines = file.readlines()
        for line in lines:
            label_i, sent_i = line.split('\t')
            label.append(label_i)
            sent_i = sent_i.replace(' ', '')
            sent_i = sent_i.replace('\n', '')
            sentence.append(sent_i)
    df = pd.DataFrame({content:sentence,'result':label})
    return df
三. NER任务的数据增强数据处理
整片文章的亮点其实是在数据处理的过程,作者很有意思的将BIOSE标签挪到每个字的前面,当然这里对O标签对应的字不做处理。这样就能将字和标签一同训练,从而很好的拿到标签和字前后呼应的高概率标签和字。
#!/bin/bash input_dir_path=$1 model_dir_path=$2 # 堆代码 duidaima.com # 1. 标注数据线性化 cd tools python3 preprocess.py --train_file ../$input_dir_path/train.txt \ --test_file ../$input_dir_path/test.txt --dev_file ../$input_dir_path/val.txt \ --vocab_size 30000 # 2. 训练语言模型 cd ../lstm-lm python3 train.py --train_file ../tools/train.lin.txt \ --valid_file ../tools/val.lin.txt --model_file ../$model_dir_path/model.pt \ --emb_dim 300 --rnn_size 512 --gpuid 0 --epochs 300daga_generate.sh脚本:
#!/bin/bash output_dir_path=$1 model_dir_path=$2 gen_sentence_num=$3 # 1. 数据生成 cd lstm-lm python3 generate.py --model_file ../$model_dir_path/model.pt \ --out_file ../$output_dir_path/out.txt --num_sentences $gen_sentence_num \ --temperature 1.0 --seed 3435 --max_sent_length 128 --gpuid 0 # 2. 数据还原 cd ../tools python3 line2cols.py --inp_file ../$output_dir_path/out.txt \ --out_file ../$output_dir_path/augment.txt