文本数据增强之回译数据增强
文章目录题目回译数据增强法回译数据增强优势回译数据增强存在的问题前言单句翻译代码运行结果1数组翻译法代码运行结果2回译回译结果题目'''Description: 文本数据增强之回译数据增强Autor: 365JHWZGoDate: 2021-12-05 16:54:33LastEditors: 365JHWZGoLastEditTime: 2021-12-05 18:23:23'''回译数据增强法
·
题目
'''
Description: 文本数据增强之回译数据增强
Autor: 365JHWZGo
Date: 2021-12-05 16:54:33
LastEditors: 365JHWZGo
LastEditTime: 2021-12-05 18:23:23
'''
回译数据增强法
回译数据增强目前是文本数据增强方面效果较好的增强方法, 一般基于google翻译接口, 将文本数据翻译成另外一种语言(一般选择小语种),之后再翻译回原语言, 即可认为得到与与原语料同标签的新语料, 新语料加入到原数据集中即可认为是对原数据集数据增强.
回译数据增强优势
- 操作简便, 获得新语料质量高.
回译数据增强存在的问题
-
在短文本回译过程中, 新语料与原语料可能存在很高的重复率, 并不能有效增大样本的特征空间.
-
高重复率解决办法:
- 进行连续的多语言翻译, 如: 中文–>韩文–>日语–>英文–>中文, 根据经验, 最多只采用3次连续翻译, 更多的翻译次数将产生效率低下, 语义失真等问题.
前言
pip install googletrans==4.0.0-rc1
在client.py中的translate()函数中添加
if isinstance(text, list):
result = []
for item in text:
translated = self.translate(item, dest=dest, src=src)
result.append(translated)
return result
作用:
在没有添加这段话之前只能单句翻译,添加之后便可以使用数组进行翻译
单句翻译代码
# 提供正负样本各两例
positive_sample1 = "房间里有电脑,虽然房间的条件略显简陋,但环境、服务还有饭菜都还是很不错的。"
positive_sample2 = "是一家很实惠的酒店,交通方便,房间也宽敞。"
negative_sample1 = "漆面都掉了,估计是十年前的四星级吧,总之下次是不会入住了。"
negative_sample2 = "价格确实比较高,而且还没有早餐提供。"
review_array = [positive_sample1,positive_sample2,negative_sample1,negative_sample2]
print(review_array)
from googletrans import Translator
# 设置Google翻译服务地址
translator = Translator(service_urls=[
'translate.google.cn'
])
# 进行第一次翻译,翻译目标是英文
for i in range(len(review_array)):
res_trans = translator.translate(review_array[i],dest="en").text
#读取翻译后的结果
print(res_trans)
运行结果1
数组翻译法代码
# 提供正负样本各两例
positive_sample1 = "房间里有电脑,虽然房间的条件略显简陋,但环境、服务还有饭菜都还是很不错的。"
positive_sample2 = "是一家很实惠的酒店,交通方便,房间也宽敞。"
negative_sample1 = "漆面都掉了,估计是十年前的四星级吧,总之下次是不会入住了。"
negative_sample2 = "价格确实比较高,而且还没有早餐提供。"
review_array = [positive_sample1,positive_sample2,negative_sample1,negative_sample2]
print(review_array)
from googletrans import Translator
# 设置Google翻译服务地址
translator = Translator(service_urls=[
'translate.google.cn'
])
res = translator.translate(review_array,dest="en")
print(list(map(lambda x: x.text, res)))
运行结果2
回译
res = translator.translate(review_array,dest="en")
res_text = list(map(lambda x: x.text, res))
#回译
res = translator.translate(res_text,dest="zh-cn")
print(list(map(lambda x: x.text, res)))
回译结果

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)