【NLP】人机对话

概念

机器翻译就是用计算机把一种语言翻译成另外一种语言的技术

机器翻译的产生与发展

17 世纪,笛卡尔与莱布尼茨试图用统一的数字代码来编写词典
1930 机器脑
1933 苏联发明家特洛阳斯基用机械方法将一种语言翻译为另一种语言
1946 ENIAC 诞生
1949 机器翻译问题被正式提出
1954 第一个 MT 系统出现
1964 遇到障碍,进入低迷期
1970-1976 开始复苏
1976-1990 繁荣时期
1990-1999 除了双语平行预料,没有其他的发展
1999-now 爆发期
2014 以后出现基于深度学习/神经网络的 MT

机器翻译的要点

正确的机器翻译必须要解决语法与语义歧义
不同类型语言的语言形态不一致
有的词语在不同语言中不能够互通

词汇层的翻译

(1)形态分析:对于原始的句子进行形态分析,对于时态等特殊要素进行标记
(2)词汇翻译
(3)词汇重排序
(4)形态变换

语法层的翻译

语法层的翻译就是将一种语言的语法树映射到另一语言的语法树
e.g.英语 ->日语
V P → V N P c h a n g e t o V P → N P V VP \to VNP changeto VP \to NP V VPVNPchangetoVPNPV
P P → P N P c h a n g e t o N P → N P P PP \to PNP changeto NP \to NP P PPPNPchangetoNPNPP
三个阶段:句法分析,转换句法树,用目标语法树生成句子

语义层的翻译

基本翻译方法

直接转换法
基于规则的翻译方法
基于中间语言的翻译方法
基于语料库的翻译方法

直接转换法

从源语言的表层出发,直接只换成目标语言译文,必要时进行简单词序调整

基于规则的翻译方法

把翻译这一过程与语法分开,用规则描述语法
翻译过程:
(1)对源语言句子进行词法分析
(2)对源语言句子进行句法/语义分析
(3)结构转换
(4)译文句法结构生成
(5)源语言词汇到译文词汇的转换
(6)译文词法选择与生成
独立分析-独立生成-相关转换
优缺点:可以较好地保持原文的结构,但是规则一般由人工编写,工作量大,对非规范语言无法处理

基于中间语言的翻译方法

源语言解析-比较准确的中间语言-目标语言生成器

基于语料库的翻译方法

基于事例的翻译方法

在这里插入图片描述

统计机器翻译

获取大量各国语言翻译成英语的文本,然后进行句子对齐
翻译目标:准确度(faithfulness),结构正确/可读性强(fluency)
T = arg ⁡ max ⁡ T ∈ T a r g e t f a i t h f u l n e s s ( T , S ) × f l u e n c y ( T ) T = \arg \max\limits_{T \in Target} faithfulness(T,S) \times fluency(T) T=argTTargetmaxfaithfulness(T,S)×fluency(T)
在这里插入图片描述

噪声信道模型

依然与之前语言模型中的贝叶斯类似
将源语言句子 f = f 1 f 2 . . . f=f_1f_2... f=f1f2...翻译到目标语言 e = e 1 e 2 e=e_1e_2 e=e1e2,使 P(e|f)最大化
e ^ = arg ⁡ max ⁡ e ∈ E n g l i s h P ( e ∣ f ) = arg ⁡ max ⁡ e ∈ E n g l i s h P ( f ∣ e ) P ( e ) \hat e = \arg \max\limits_{e \in English}P(e|f) = \arg \max\limits_{e \in English}P(f|e)P(e) e^=argeEnglishmaxP(ef)=argeEnglishmaxP(fe)P(e)
此外还需要 decoder 来进行解码

语言模型 p(e)

可以采用 n-gram 或者 PCFG 计算

翻译模型 p(f|e)

对于 IBM Model 1:
(1)选择长度为 m 的句子 f,英文句子长度为 l
(2)选择一到多的对齐方式:A = a1a2…an
(3)对于 f 中的单词 fj,由 e 中相应的对齐词 e a j e_{aj} eaj生成
red:对齐:一种对齐定义了每个外文词可以由哪个(些)英文词翻译过来
目标式可以表示为: p ( f ∣ e , m ) = ∑ a ∈ A p ( f , a ∣ e , m ) p(f|e,m)=\sum\limits_{a \in A}p(f,a|e,m) p(fe,m)=aAp(f,ae,m)
由链式法则可得: p ( f , a ∣ e , m ) = p ( a ∣ e , m ) p ( f ∣ a , e , m ) p(f,a|e,m) = p(a|e,m)p(f |a,e,m) p(f,ae,m)=p(ae,m)p(fa,e,m)
对于 p(a|e,m),IBM Model 1 假设所有的对齐方式具有相同的概率: p ( a ∣ e , m ) = 1 ( l + 1 ) m p(a|e,m) = \frac{1}{(l+1)^m} p(ae,m)=(l+1)m1
对于 p(f|a,e,m), p ( f ∣ a , e , m ) = ∏ j = 1 m t ( f j ∣ e a j ) p(f|a,e,m) = \prod\limits_{j=1}^mt(f_j|e_{aj}) p(fa,e,m)=j=1mt(fjeaj)
在这里插入图片描述

t(f|e)表示英文词 eaj 翻译成外文词 fj 的概率
故: p ( f ∣ e , m ) = ∑ p ( f , a ∣ e , m ) = ∑ a ∈ A 1 ( l + 1 ) m ∏ j = 1 m t ( f j ∣ e a j ) p(f|e,m) = \sum p(f,a|e,m) = \sum\limits_{a \in A} \frac{1}{(l+1)^m}\prod\limits_{j=1}^mt(f_j|e_{aj}) p(fe,m)=p(f,ae,m)=aA(l+1)m1j=1mt(fjeaj)
根据以上计算式,也可以计算某种对齐方式的概率:
a ∗ arg ⁡ max ⁡ a p ( a ∣ f , e , m ) = arg ⁡ max ⁡ a p ( f , a ∣ e , m ) p ( f ∣ e , m ) a^* \arg \max_ap(a|f,e,m) = \arg \max_a \frac{p(f,a|e,m)}{p(f|e,m)} aargmaxap(af,e,m)=argmaxap(fe,m)p(f,ae,m)

IBM Model 2:
对于 model 2,引入了对齐时的扭曲系数
q(i|j,l,m)给定 e 和 f 对齐的时候,第 j 个目标语言词汇和第 i 个英文单词对齐的概率
p ( a ∣ e , m ) = ∏ j = 1 m q ( a j ∣ j , l , m ) p(a|e,m) = \prod\limits_{j=1}^mq(a_j|j,l,m) p(ae,m)=j=1mq(ajj,l,m)
p ( f , a ∣ e , m ) = ∏ j = 1 m q ( a j ∣ j , l , m ) t ( f j ∣ e a j ) p(f,a|e,m) = \prod\limits_{j=1}^mq(a_j|j,l,m)t(f_j|e_{aj}) p(f,ae,m)=j=1mq(ajj,l,m)t(fjeaj)
在这里插入图片描述

IBM model 2 最优对齐:
在这里插入图片描述

t 与 q 的计算

已有数据:双语(句子)对齐资料(包含/不包含词对齐信息)
e ( k ) , f ( k ) , a ( k ) e^{(k)},f^{(k)},a^{(k)} e(k),f(k),a(k)
采用极大似然估计法:
t M L ( f ∣ e ) = C o u n t ( e , f ) C o u n t ( e ) , t M L ( j ∣ i , l , m ) = C o u n t ( j ∣ i , l , m ) C o u n t ( i , l , m ) t_{ML}(f|e) =\frac{Count(e,f)}{Count(e)},t_{ML}(j|i,l,m) = \frac{Count(j|i,l,m)}{Count(i,l,m)} tML(fe)=Count(e)Count(e,f),tML(ji,l,m)=Count(i,l,m)Count(ji,l,m)
在这里插入图片描述

如果不包含词对齐信息:

在这里插入图片描述
在这里插入图片描述

基于短语的翻译

有时候会出现多个词对应一个词的情况,有时候也需要更长的上下文来消除词的歧义,于是推出了基于短语的翻译

基本过程

构建短语对齐词典
基于短语的翻译模型:
(1)词组合成短语
(2)短语翻译
(3)重排序
解码问题

短语对齐词典

输入:句子对齐语料
输出:短语对齐语料
e.g.他将访问中国He will visit China
(他将,He will)(访问中国,visit China)
每个互译的短语对(f,e)都有一个表示可能性的分值 g(f,e)
g ( f , e ) = log ⁡ c o u n t ( f , e ) c o u n t ( e ) g(f,e) = \log \frac{count(f,e)}{count(e)} g(f,e)=logcount(e)count(f,e)
同时使用噪声信道模型依然可以用来表示最优英语翻译:
e b e s t = arg ⁡ max ⁡ e p ( f ∣ e ) p L M ( e ) e_{best}=\arg \max_e p(f|e)p_{LM}(e) ebest=argmaxep(fe)pLM(e)

语言模型

一般采用 3-gram:q(w|u,v)

排序模型

可以简化为基于距离的排序: η × ∣ s t a r t i − e n d i − 1 − 1 ∣ \eta \times|start_i-end_{i-1}-1| η×startiendi11∣
其中 η \eta η为扭曲参数,通常为负值
在这里插入图片描述

几个概念

p(s,t,e):源句子中 xs 到 xt 的词串可以被翻译为目标语言的词串 e
P:所有短语 p 的集合
y:类似 P,导出,表示一个由有限个短语构成的短语串
e(y):表示由导出 y 确定的翻译

解码问题

求解最优翻译是一个 NP-complete 问题
可能的方案:基于启发式搜索解码算法
状态 q:五元组(e1,e2,b,r,alpha)
e1,e2 表示待翻译短语对应翻译中最后两个英文词
b 为二进制串 ,1 为已经翻译,0 为未翻译
r 表示当前待翻译短语的最后一个词在句子中的位置
alpha 表示该状态的得分
起始 q 0 = ( / , / , 0 n , 0 , 0 ) q_0 = (/,/,0^n,0,0) q0=(/,/,0n,0,0)
在这里插入图片描述

next(q,p) 表示 q 经过短语 p 触发,转移到下一个状态
eq(q,q‘)用来验证两个状态是否相等,只比较前四项值

beam(Q)

在这里插入图片描述

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

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

相关文章

香蕉成熟度检测YOLOV8NANO

香蕉成熟度检测YOLOV8NANO,采用YOLOV8NANO训练,得到PT模型,然后转换成ONNX模型,让OEPNCV调用,从而摆脱PYTORCH依赖,支持C。python,安卓开发。能检测六种香蕉类型freshripe freshunripe overripe…

Vita-CLIP: Video and text adaptive CLIP via Multimodal Prompting

标题:Vita-CLIP: 通过多模态提示进行视频和文本自适应CLIP 源文链接:https://openaccess.thecvf.com/content/CVPR2023/papers/Wasim_Vita-CLIP_Video_and_Text_Adaptive_CLIP_via_Multimodal_Prompting_CVPR_2023_paper.pdfhttps://openaccess.thecvf.…

sw布尔减

可能最有效率还是草图边界线,然后用草图做分割

ue5 中ps使用记录贴

一、快捷键记录 放大图形 ctrlalt空格 放大图形 缩小视口 ctrl空格 ctrlD 取消选区 ctrlt缩小文字 w魔棒工具 选择魔棒的时候把容差打开的多一点 二、案例 移动文字 在相应的图层选择 移动文字 修改图片里的颜色 在通道里拷贝红色通道,复制红色通道粘贴给正常图…

记录Hbase出现HMaster一直初始化,日志打印hbase:meta,,1.1588230740 is NOT online问题的解决

具体错误 hbase:meta,,1.1588230740 is NOT online; state{1588230740 stateOPEN, ...... 使用 hbase 2.5.5 ,hdfs和hbase分离两台服务器。 总过程 1. 问题发现 在使用HBase的程序发出无法进行插入到HBase操作日志后检查HBase状况。发现master节点和r…

大模型应用商业化落地关键:给企业带来真实的业务价值

2024 年被很多人称为大模型应用的元年,毫无疑问,大模型已经成为共识,下一步更急迫的问题也摆在了大家的面前——大模型到底能够用在哪?有哪些场景能落地?怎么做才能创造真正的价值? 在刚刚过去的 AICon 全…

【排序算法】快速排序(四个版本以及两种优化)含动图)

制作不易,三连支持一下吧!!! 文章目录 前言一.快速排序Hoare版本实现二.快速排序挖坑法版本实现三.快速排序前后指针版本实现四.快速排序的非递归版本实现五.两种优化总结 前言 前两篇博客介绍了插入和选择排序,这篇博…

halcon配合yolov8导出onnx模型检测物体

1.工业上多数视觉开发都是用halcon开发的,halcon本身也有自己的深度学习网络,至于halcon如果不使用本身的深度学习,使用其他网络导出的onnx模型怎样配合使用?本文基于yolov8写一个列子。 2。创建输入数据的转换代码 #region 创建输…

Nginx高可用性架构:实现负载均衡与故障转移的探索

随着网络应用的不断发展和用户访问量的增长,如何确保系统的高可用性、实现负载均衡以及快速响应故障转移成为了每个运维和开发团队必须面对的挑战。Nginx作为一款高性能的HTTP和反向代理服务器,凭借其强大的功能和灵活的配置,成为了实现这些目…

题目:填空练习(指向指针的指针)

题目:填空练习(指向指针的指针) There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about …

【bugfix】/usr/local/bin/docker-compose:行1: html: 没有那个文件或目录

前言 在使用 docker-compose 管理容器化应用时,偶尔会遇到一些意想不到的错误,比如当尝试运行 docker-compose 命令时,终端非但没有展示预期的输出,反而出现类似网页错误的信息。这类问题通常与 docker-compose 的安装或配置有关…

首都师范大学聘请旅美经济学家向凌云为客座教授

2024年4月17日,首都师范大学客座教授聘任仪式在首都师范大学资源环境与旅游学院举行。首都师范大学资源环境与旅游学院院长吕拉昌主持了仪式,并为旅美经济学家向凌云教授颁发了聘书。 吕拉昌院长指出,要贯彻教育部产学研一体化战略&#xff0…

数据库工具类

public interface DbMapper {/*** 查询数据库类型*/String queryDbType(); }<select id"queryDbType" resultType"java.lang.String">select<choose><when test"_databaseId mysql">mysql</when><when test"_d…

虚拟机Centos扩展磁盘空间

虚拟机空间&#xff1a;现sda大小20G&#xff0c;因课程需要扩容 在虚拟机扩容中&#xff0c; 新增一块硬盘 和 直接在原有硬盘基础上扩容是一样的&#xff08;只不过在原有硬盘上扩容需要关机才可以执行&#xff09;&#xff1b; 但两者都最好先做数据备份或快照&#xff0c…

夏令营复习coding 算法第一天-状态:新奇

T1:bubble冒泡排序 &#xff08;1&#xff09;思路&#xff1a;两次循环&#xff0c;外层循环从后面开始-作为一个支点&#xff0c;内层循环每次将当前需要排序的最大的那个元素一步步移动到该支点&#xff0c;最终升序排列完成 &#xff08;2&#xff09;代码: #include &l…

5、设计模式之适配器模式/原型模式

文章目录 开始之前适配器模式使用场景注意事项何时使用优缺点代码实现 原型模式深拷贝和浅拷贝 开始之前 本章节是一个系列&#xff0c;里面用的的代码实例都是连贯的。在实现某一种设计模式时&#xff0c;为了减少代码篇幅&#xff0c;前面博客出现model类&#xff08;仅限公…

【LabVIEW FPGA入门】同步C系列模块

1.同步使用循环定时器VI计时循环速率的系列模块 数字模块SAR ADC 模块多路复用模块 数字通道可以在一个时钟周期内执行。模拟通道需要多个时钟周期。 同步模拟模块的每个通道有一个 ADC&#xff0c;采集的数据在通道之间没有明显的偏差。多路复用模块使用多路复用器通过单个 A…

Docker安装并部署Gitlab,同时解决Gitlab服务经常503/500的问题

文章目录 Docker 安装Gitlab部署后需要解决的小问题1. 获取初始密码2. 解决刚安装好的Gitlab频繁出现503/500并重启的错误 Docker 安装Gitlab docker pull gitlab/gitlab-cedocker run -d -p 11443:443 -p 11090:80 -p 11022:22 \ --name gitlab \ --restart unless-stopped \…

深入理解NumPy与Pandas【numpy模块及Pandas模型使用】

二、numpy模块及Pandas模型使用 numpy模块 1.ndarray的创建 import numpy as np anp.array([1,2,3,4]) bnp.array([[1,2,3,4],[5,6,7,8]]) print(a) #[1 2 3 4] print(b) #[[1 2 3 4][5 6 7 8]] 1.1使用array()函数创建 numpy.array(object, dtype None, copy True, ord…

vue2和vue3区别

Vue 3是Vue.js框架的下一代主要版本&#xff0c;它在2020年9月正式发布。Vue 3带来了一系列的新特性和改进&#xff0c;包括性能提升、更小的打包尺寸、更好的TypeScript支持、新的组合式API等。以下是Vue 2和Vue 3之间的一些主要区别&#xff1a; 1. 性能提升&#xff1a; …