自然语言处理 第八章 机器翻译复习

news2024/9/23 23:28:23

机器翻译

  • 机器翻译概述
  • 典型神经机器翻译模型
    • 神经机器翻译 ( Neural Machine Translation, NMT
  • 神经机器翻译系统相关技术
    • 罕见词处理技术(词表受限问题)
      • 解决办法
        • subword 方法
        • beam search
        • coverage penalty (翻译覆盖率问题)
        • 推敲网络(Deliberation Network)
        • 非自回归模型
        • 系统鲁棒性
  • 低资源神经机器翻译
    • 语料资源受限问题
  • 多语预训练语言模型

机器翻译概述

任务描述:利用计算机把一种语言(源语言, source language) 翻译成另
一种语言(目标语言, target language)的技术

发展历程:
基于规则的机器翻译系统:需要经过词法分析,句法分析等诸多步骤各步需要的规则均需要人工编写。

基于统计的机器翻译系统:用概率统计方法分不同翻译粒度和不的同翻译方法

  • 基于词的翻译方法
  • 基于短语的翻译方法
  • 基于层次化短语方法
  • 基于树的方法

端到端的翻译架构

  • GNMT
  • ConvS2S
  • Transformer

典型神经机器翻译模型

神经机器翻译 ( Neural Machine Translation, NMT

机器翻译问题是序列生成问题,可采用“编码-解码” 框架建模
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

神经机器翻译系统相关技术

  1. 罕见词处理技术
    sub-word unit
  2. 解码策略及改进
    机器翻译系统相关技术:
    • beam search
    • coverage penalty
    • 推敲网
    • 非自回归解码
  3. 系统鲁棒性

罕见词处理技术(词表受限问题)

在神经网络机器翻译模型中,由于考虑到计算的复杂度问题,都使用一个受限词表,这样会导致很多单词成了词表外的OOV词,而这种OOV词在翻译时很难处理并且打破了句子结构,增加了语句的歧义性,因此,如何处理罕见词成为NMT领域非常必要的研究问题

解决办法

• subword 方法
• 词语/字混合方法(Mixed Word/Character Model)
• UNK处理
• 扩大词表
• 固定词表 + 动态的词表

subword 方法

基本思想:将单词划分为更小的单元,如“older”划分为“old” 和 “er”,这些单元能组成其他词汇。由子词构成的词汇表可以有效的缓解机器翻译中的词表受限问题

获取subword词表的流程(learn-bpe)

  1. 准备语料,分解成最小单元,比如英文中26个字母加上各种符号,作为原始词表
  2. 根据语料统计相邻字符对出现的频次
  3. 挑出频次最高的相邻字符对,比如“t”和“h”,合并组成“th”,加入词表,训练语料中所有该相邻字符对都进行融合
  4. 重复2和3操作,直至词表中单词的数量达到期望,或下一个最高频的字节对出现频率为1

beam search

Greedy Search 解码:方法:每个step选择概率最大的词作为输出
Beam Search 解码:每个step选择概率最大的K个 词作为输出

比如下图,每次选两个词
在这里插入图片描述

coverage penalty (翻译覆盖率问题)

基本思想:建立coverage 向量,在解码的过程中,保持对attention信号持续关注和利用,以此来解决attention信号之间的独立问题

推敲网络(Deliberation Network)

目前的序列生成方法往往通过一轮前向计算解码出整个目标序列,缺乏推敲过程。本文引入一个推敲网络进行双轮解码以模拟人类书写文章的过程,即先解码出一个基础序列,然后对其进行斟酌推敲形成最终的目标序列

非自回归模型

非自回归 (Non-Autoregressive Translation, NAT)模型打破了生成时的串行顺
序希望一次能够解码出整个目标句子,从而解决AT模型的问题。
NAT模型将解码问题建模为:
在这里插入图片描述

系统鲁棒性

鲁棒性问题:神经网络能够对全局上下文进行建模,但对于局部变化过于敏感,提升系统的容错性,一致性(鲁棒性)对用户体验十分重要
解决方法:可采用对抗学习等训练方法提升系统的鲁棒性

核心思想:对于噪声输入生成与原始输入相同的输出译文以提升模型的鲁棒性
解决方法:在输入端加入微小的扰动,用对抗学习方法使得模型不受扰动影响

低资源神经机器翻译

语料资源受限问题

神经机器翻译(NMT)性能高度依赖于平行语料的规模、质量和领域覆盖面。在中英等平行语料资源丰富的语对上,NMT表现出极好的翻译性能。然而,在平行语料匮乏的语对上,NMT的性能急剧下降;对于“小语种”语言,平行语料资源匮乏是常态。因此,如何充分利用现有数据缓解资源匮乏问题,成为神经机器翻译的一个重要研究方向。
在这里插入图片描述

多语预训练语言模型

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/137776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

qt运行外部exe并自定义外部功能界面(QWidget添加工具栏QToolBar)

先放效果图,就是在qt运行的界面中,不只是运行出了外部exe的界面,还可以在外围放置自定义的功能按钮。(本质就是在QWidget中添加工具栏QToolBar) 关于如何只运行出外部的exe,我之前写过教程:ht…

序列生成策略——束搜索、贪心搜索、穷举搜索

序列搜索策略包括贪心搜索、穷举搜索和束搜索。 贪心搜索所选取序列的计算量最小,但精度相对较低。 穷举搜索所选取序列的精度最高,但计算量最大。 束搜索通过灵活选择束宽,在正确率和计算代价之间进行权衡。 在序列到序列学习&#xff08…

Java集合面试题汇总大全

每个集合的出现一定是为了解决某种问题的解决方案。 集合流程图 JAVA中集合和数组的区别Collection和Collections的区别ArrayList和LinkedList 和Vector的区别list/set/map的区别HashSet和TreeSet和LinkedHashSet区别HashMap和Hashtable的比较HashMap和ConcurrentHashMap区别H…

【零基础】学python数据结构与算法笔记5

文章目录前言30.归并排序归并31.归并排序实现32.归并排序时间复杂度讨论33.NB三人组小结总结前言 学习python数据结构与算法,学习常用的算法, b站学习链接 30.归并排序归并 将两个箭头指向两个列表的首个元素,比较,哪个大就把它…

Java IO流 - 字符流的使用详细介绍

文章目录字符流的使用文件字符输入流创建字符输入流字符输入流读取文件字符输出流创建字符输出流字符输出流写入字符流的使用 字节流读取中文输出会存在什么问题? 会乱码。或者内存溢出。 读取中文输出,哪个流更合适,为什么? 字符…

MAX78000训练自己的神经网络模型

参考: The MAX78000 Microcontroller, Some Coffee, and Artificial Intelligence GitHub - MaximIntegratedAI/ai8x-training: Model Training for ADIs MAX78000 and MAX78002 AI Devices ai8x-synthesis/WSL2.md at develop MaximIntegratedAI/ai8x-synthesi…

移动金融管理系统设计与开发实训(课程设计报告)——基于Android+Django的银行系统部分功能设计与实现

阅读过程中若有不解和需要可私信,乐于解答 项目代码文档都保存着 基于AndroidDjango的银行系统部分功能开发与设计 摘要: 随着信息技术的快速发展以及经济的快速发展,金融界的信息化的进程也在不断推进,信息技术的不断成熟和人…

JavaWeb:EL表达式JSTL标签

1,EL表达式 1.1 概述 EL(全称Expression Language)表达式语言,用于简化JSP页面内的Java代码。 EL表达式的主要作用是 获取数据 。其实就是从域对象中获取数据,然后将数据展示在页面上。 而EL表达式的语法也比较简单…

HR软件七步帮助企业管理员工

对于中小企业(SMB)来说,员工就意味着一切。你的员工几乎掌握着企业的整体增长和发展,他们可以成就企业,但也能破坏企业的发展。为了提高员工效率,中小型企业需要出色的人力资源管理。员工只有在受到重视和培…

【Linux】Linux环境变量的理解

加油布鲁斯,你能行的! 文章目录一、环境变量PATH中的系统默认搜索路径1.将程序安装到/usr/bin目录(不带./运行自己写的程序)2.将程序路径添加到PATH环境变量里面(不带./运行自己写的程序)二、环境变量的深…

PyTorch基础部分——毕设进行时

为了完成毕设准备开始学习PyTorch,第一步到蓝桥云课搜索实验项目,找到了“PyTorch入门与实战(第二版)”,开始边实验边学习(本身有了一点点点点的相关基础了)学习传送门:PyTorch基础入…

SQL WHERE 子句

WHERE 子句用于过滤记录。 SQL WHERE 子句 WHERE 子句用于提取那些满足指定条件的记录。 SQL WHERE 语法 SELECT column1, column2, ... FROM table_name WHERE condition; 参数说明: column1, column2, ...:要选择的字段名称,可以为多个…

06SpringCloudAlibaba负载均衡服务调用-OpenFeign

目录 SpringCloud Feign 查看此博客:005SpringCloud--Feign:负载均衡(基于服务端)_gh_xiaohe的博客-CSDN博客 OpenFegin概述 OpenFeign是什么: OpenFegin能干什么 Feign和OpenFeign两者区别 OpenFeign使用步骤 服务消费者 接口注解 微…

TP相关知识

说明 该文章来源于徒弟lu2ker转载至此处,更多文章可参考:https://github.com/lu2ker/ 文章目录说明PHP中有一些内置类PHP反序列化问题绕过姿势:魔术方法(反序列化如何利用)CMS可能存在的部分逻辑问题$_REQUEST相关安全…

小游戏引擎选型参考指南

写在前面 前面写了几期有关于小游戏的文章,主要从小游戏开发、小游戏运营、小游戏变现等多个角度进行了较为粗略的介绍,很多同学表示对小游戏引擎部分很感兴趣,希望能够有一些更为深入的分析介绍。今天就对目前主流的小游戏引擎进行探讨。 …

Java 并发编程 (二)CountDownLatch和CyclicBarrier的使用

CountDownLatch和CyclicBarrier CountDownLatch 功能介绍 CountDownLatch 是一个同步功能的辅助类 线程计数不为0时呈wait状态如果为0则继续执行。通过await 和 countDown 两个方法来实现等待和继续运行。 作用:一个线程或多个线程等待另一个线程或多个线程完成后…

2003-2021年高铁列车信息

2003-2021年高铁列车信息 1、时间:2003-2021年 2、指标: 列车车次、出发站、出发站所属地级市、出发站所属省份、出发站类型、到达站、到达站所属地级市、到达站所属省份、到达站类型、车型、开车时间、到站时间、运行时间、里程 3、指标说明&#x…

58. 微调(fine-tuning)

前面的一些章节介绍了如何在只有6万张图像的Fashion-MNIST训练数据集上训练模型。 我们还描述了学术界当下使用最广泛的大规模图像数据集ImageNet,它有超过1000万的图像和1000类的物体。 然而,我们平常接触到的数据集的规模通常在这两者之间。 假如我们…

3、基于注解的IoC装配与依赖注入

一、XML开启注解支持 1、添加context名称空间 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:context&…

03SpringCloudAlibaba服务注册中心—Zookeeper

目录 注册中心Zookeeper 五步曲&#xff1a; zookeeper服务提供者 1、03-cloud-provider-payment-zookeeper-8004 2、pom.xml 3、改yum 4、主启动 5、业务类 测试1&#xff1a; 测试2&#xff1a; ​ 服务节点是临时节点还是持久节点 粗划分&#xff1a; 细划分&am…