0
点赞
收藏
分享

微信扫一扫

NLP_文本数据增强_5(代码示例)

殇感故事 03-08 23:30 阅读 3
nlp

学习目标

  • 了解文本数据增强的作用.
  • 掌握实现常见的文本数据增强的具体方法.

  • 常见的文本数据增强方法:

    • 回译数据增强法

1 回译数据增强法

  • 回译数据增强目前是文本数据增强方面效果较好的增强方法, 一般基于google翻译接口, 将文本数据翻译成另外一种语言(一般选择小语种),之后再翻译回原语言, 即可认为得到与与原语料同标签的新语料, 新语料加入到原数据集中即可认为是对原数据集数据增强.

  • 回译数据增强优势:

    • 操作简便, 获得新语料质量高.
  • 回译数据增强存在的问题:

    • 在短文本回译过程中, 新语料与原语料可能存在很高的重复率, 并不能有效增大样本的特征空间.
  • 高重复率解决办法:

    • 进行连续的多语言翻译, 如: 中文→韩文→日语→英文→中文, 根据经验, 最多只采用3次连续翻译, 更多的翻译次数将产生效率低下, 语义失真等问题.
  • 回译数据增强实现:

# 导入对应的工具包
from google_trans_new import google_translator

# 实例化翻译对象
translator = google_translator()
# 进行第一次翻译, 目标语言是韩语
texts= ['这家价格很便宜', '这家价格很便宜']
tra_list= []
for text in texts:
    ko_res= translator.translate(text, lang_src='zh-cn', lang_tgt='ko')
    tra_list.append(ko_res)
# 打印中间结果
print('中间结果是:')
print(tra_list)

# 进行第二次翻译, 目标语言是汉语
cn_list = []
for text in tra_list:
    cn_res = translator.translate(text, lang_src='ko', lang_tgt='zh-cn')
    cn_list.append(cn_res)
# 打印最后的结果
print("最后的结果是:")
print(cn_list)

输出结果展示:

中间翻译结果:
["이 가격은 매우 싼 ", "이 가격은 매우 싼"] 
回译得到的增强数据:
["这个价格非常便宜","这个价格很便宜"]
  • 注意
  • 如果在运行过程中报:json.decoder.JSONDecodeError: Extra data: line 1 column 1962 (char 1961)错误
  • 修改地址参考:json.decoder.JSONDecodeError: Extra data: line 1 column 300 (char 299) · Issue #36 · lushan88a/google_trans_new · GitHub
  • 温馨提示: 翻译接口在实时进行修改, 所以以后在使用第三方接口的时候要关注接口是否发生变化
  • 修改方案:          

                1.使用find命令在服务器上找到对应的google_trans_new.py文件,即: find / -name 'google_trans_new.py'

                

                2.将google_trans_new.py文件中151行的**response = (decoded_line + ']')修改为**response = decoded_line, 然后保存退出即可.

举报

相关推荐

0 条评论