赞
踩
目录
2、简单数据增强(Easy Data Augmentation,EDA)
数据增强是扩充数据样本规模的一种有效地方法,数据的规模越大、质量越高越好,模型才能够有着更好的泛化能力。
同义词替换、随机插入、随机交换、随机删除。
0 今天天气不错哦。
1 今天天气不行啊!不能出去玩了。
0 又是阳光明媚的一天!
即,标签+一个制表符\t+内容
$python code/augment.py --input=train.txt --output=train_augmented.txt --num_aug=16 --alpha=0.05
其中:
在这个方法中,我们用机器翻译把一段中文翻译成另一种语言,然后再翻译回中文。回译的方法不仅有类似同义词替换的能力,它还具有在保持原意的前提下增加或移除单词并重新组织句子的能力。
回译可使用python translate包和textblob包(少量翻译),或者使用百度翻译或谷歌翻译的api通过python实现。
百度开放的翻译接口百度翻译开放平台支持每月200万字的免费翻译,提供了各种语言的使用demo,本篇使用Python3调用百度API实现自然语言的翻译,实现代码如下。
- import http.client
- import hashlib
- import json
- import urllib
- import random
-
-
- #调用百度翻译API将中文翻译成英文
- def baidu_translate(content):
- appid = 'appid'
- secretKey = '秘钥'
- httpClient = None
- myurl = '/api/trans/vip/translate'
- q = content
- fromLang = 'zh' # 源语言
- toLang = 'en' # 翻译后的语言
- salt = random.randint(32768, 65536)
- sign = appid + q + str(salt) + secretKey
- sign = hashlib.md5(sign.encode()).hexdigest()
- myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(
- q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
- salt) + '&sign=' + sign
-
- try:
- httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
- httpClient.request('GET', myurl)
-
- # response是HTTPResponse对象
- response = httpClient.getresponse()
- jsonResponse = response.read().decode("utf-8") # 获得返回的结果,结果为json格式
- js = json.loads(jsonResponse) # 将json格式的结果转换字典结构
- dst = str(js["trans_result"][0]["dst"]) # 取得翻译后的文本结果
- #print(dst) # 打印结果
- return dst
- except Exception as e:
- print('err:' + e)
- finally:
- if httpClient:
- httpClient.close()
-
- if __name__=='__main__':
- contents='百度翻译开放平台是百度翻译针对广大开发者提供的开放服务平台'
-
- #将翻译后的英文写入文件
- with open('data/test_data_translate', 'a', encoding="utf-8") as f:
- translate_en = baidu_translate_1(contents) # 中文翻译成英文
- f.write( '\t' + translate_zh + '\n')
-
- print(translate_en)
(1)方法论文:Contextual Augmentation: Data Augmentation by Words with Paradigmatic Relations
(2)方法实现代码:使用双向循环神经网络进行数据增强。
(3)该方法目前针对于英文数据进行增强,实验工具:spacy(NLP自然语言工具包)和chainer(深度学习框架)。
(1)增加训练的数据量,提高模型的泛化能力。
(2)增加噪声数据,提升模型的鲁棒性。
参考:数据增强方法
本人博文NLP学习内容目录:
一、NLP基础学习
二、NLP项目实战
交流学习资料共享欢迎入群:955817470(群一),801295159(群二)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。