NLP05_noisy channel model、语言模型、马尔科夫假设

2024-04-09 12:48

本文主要是介绍NLP05_noisy channel model、语言模型、马尔科夫假设,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

给定一个source,转换成text
通过贝叶斯定理,得到如下的公式在这里插入图片描述
都是将一个信号来转换成文本信息

机器翻译:英译中

根据贝叶斯定理,
P(英文|中文)表示的是翻译模型, 指的是中文对应的英文翻译,这个是提供好的,通过翻译模型得到的是英到中的对照翻译,不考虑语法
P(中文)表示语言模型,用他来保证翻译的语法正确。

拼接纠错

P(错误|正确)可以表示编辑距离,也就是正确的 和错误的差异
P(正确)来保证语法的正确,也就是语言模型
在这里插入图片描述

语音识别

P(语言|给定文本)即翻译,将文本翻译成语音
P(文本)保证语法正确

密码破解

在这里插入图片描述
上边这些事例,都是左边控制翻译,右边保证语法正确
这就是noisy channel model
在这里插入图片描述
任何将信号转换成文本,都可以转换成Noisy channel model

语言模型

语言模型来保证句子语法上的通顺
通过预训练好的语言模型,来判断一个句子是否符合语法,最后给出句子符合语法的一个概率,选择出概率最大的那个句子
在这里插入图片描述

Chain relu

基本的条件概率公式得来
在这里插入图片描述
算这个概率,就是统计“今天是春节我们都“这个句子在文中出现的次数,接着长句后跟着“休息”的有一个句子,那概率就是1/2
但是这只是理想情况,大部分的长句子在文中可能都找不到,所以概率都是0
这就产生了稀疏性问题
在这里插入图片描述
解决稀疏性问题的办法

马尔科夫假设Markov Assumption

通过马尔科夫假设来估计概率
概率的近似,只将当前词的前几个词作为条件
在这里插入图片描述
更通用写法
在这里插入图片描述
假如已训练好语言模型,概率都知道,使用1st order计算概率
在这里插入图片描述

根据每一个马尔科夫假设,有一个对应的语言模型

Unigram

当每一个词都不依赖其他词时,也就是每一个单词都当成独立事件看,就得到Unigram LM, 最简单的LM
Unigram的缺陷:不考虑单词的顺序,语法注意不到
在这里插入图片描述

Bigram LM 对应 1st order markov assumption

可以考虑到词的先后顺序
在这里插入图片描述
类推

N-gram

当n > 2时,就成为higher order LM
n = 3已经是一个复杂的LM了
在这里插入图片描述

Bigram用到的是最多的

这篇关于NLP05_noisy channel model、语言模型、马尔科夫假设的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/888190

相关文章

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、