当前位置: 首页 > 编程日记 > 正文

语言模型自然语言处理[置顶] 哥伦比亚大学 自然语言处理 公开课 授课讲稿 翻译(四)...

每日一贴,今天的内容关键字为语言模型自然语言处理

媒介:灵机一动看了一个自然语言处理公开课,大牛柯林斯讲解的。认为很好,就自己动手把它的讲稿翻译成中文。一方面,希望通过这个翻译过程,让自己更加理解大牛的讲解内容,锻炼自己翻译能力。另一方面,造福人类,hah。括号内容是我自己的辅助理解内容。

翻译的不准的地方,欢送大家指正。

课程地址:https://www.coursera.org/course/nlangp

哥伦比亚大学 自然语言处理 公开课 讲课讲稿 翻译(四):语言模型问题-2

导读:这节课柯老师会就一个语音识别的例子说明语言模型在自然语言处理应用中的重要性。然后,介绍一个非常简略的语言模型建模方法并指此建模方法的缺陷。

语言模型和自然语言处理
>> So, very soon, we will start to talk about techniques that solve precisely this problem, this problem of taking a training samples input and returning a function p as its output. But the first question to ask really is, you know, why on earth would we want to do this? At first sight, this seems like a rather strange problem to be considering. But actually, there's very strong motivation for considering it.  So, there are two reasons I'll give for considering the language modeling problem. The first is that language models are actually useful in a very wide range of applications. So, speech recognition was really the first application of language models. And language models are critical to modern speech recognizers. Other examples are optical character recognition, handwriting recognition, another example we'll see later in the course is machine translation. So, in short, language models are actually useful in many applications. I'll come back to this point in more detail in a second but the other reason for studying language models is that the estimation techniques that we develop, later in this lecture, will be very useful for other problems in NLP. So, for example, we'll see problems such as part of speech tagging, and natural language pausing, and machine translation where the estimation techniques described are applied very directly.
额,我们即将开始讲一些处理这个问题的技术。(上一节中 语言模型问题:给较好的句子赋予高概率,较差的句子赋予低概率)这个问题就是用一些训练样本作为输入,返回函数p作为它的输出。然而,第一个疑难是我们究竟为什么要这么做?乍一看,这仿佛的确是一个非常奇异的事件。但事实上这个问题是非常值得去研讨的。这里我指出为什么我们要研讨这个问题的两个原因。第一个原因是由于语言模型在在很多自然语言处理应用中有着作用。额,语音识别是第一个用到语言模型的应用。语言模型对现代的从事语音识别的人至关重要。其他的例子包含光学字符识别、手写识别和我们课程会讲到的机器翻译。额,简略的说,语言模型在自然语言处理应用中非常有效。后面我会开展讲讲这一点。研讨语言模型的另外一个原因是,后面课程会讲到我们拓展的(语言模型)估计方法,这些方法对处理其他自然语言处理问题中也十分有帮助。比如我们会在词性标注、自然语言句法分析和机器翻译中直接套刚才说的估计方法。

语言模型和自然语言处理
So, let me go back to this first issue and describe in a little more detail how language models are relevant to the problem of speech recognition. And this will be a fairly high level sketch, but hopefully you'll get the basic idea. So, the basic problem in speech recognition is as follows. As input, we have some acoustic recording. So, this is actually somebody speaking. On one axis we have time. On the other axis, we have the amplitude or energy. And in a speech recognizer, we typically go through some pre-processing steps, something like the following. We would typically split the sequence into relatively short time periods. These are often called frames. Each frame might be, for example, around 10 milliseconds long. And then for each frame, we might perform some kind of Fourier analysis, where we get energies of different frequencies within that frame. So, the details aren't too important, but this is the kind of pre-processing we might carry out.  Having performed this pre-processing, the task is then to map this acoustic input to the words which were actually spoken.  So, let's say, for the sake of example recognized speech was what was actually spoken in this case. The speech recognizer takes an acoustic,sequences input,  and outputs a sentence or sequence of words as its output. Now in practice, there are often many possible alternative sentences which could have been spoken which are quite confusable.
好,现在我们回到第一个问题(语言模型的应用),稍微讲点语言模型如何与语音识别搭上关系。这里的介绍是从总体上把握(忽略技术细节),但还是希望大家能够知道他的基本思想。额,上面介绍下语音识别的基本问题。我们把语音记录作为输入,额,这(输入)是人们实在的攀谈。(画面是一个语音信号图)它的一个轴(横轴)代表时间,另外一个轴(竖轴)代表振幅或能量。作为一个语音识别者,我们通常会做一些相似上面一样的预处理步骤。我们会将这些(连续的)序列分割成绝对短的时间片段。这些(片段)通常称之为帧。每帧一般长为10毫秒。然后,对每帧我们停止某种傅里叶变换,从帧上我们可以得到不同频率的能量。额,处理细节不重要,但是这个预处理步骤还是我们要做的。做完这些预处理后,现在的任务就是把这些声波映射成我们实在交流的单词。为了便于举例我们(假设)这里说的是recognized speech单词。语音识别者获得这个声波序列输入(recognized speech),然后输出单词序列。但现实(处理)中极可能涌现一些(和输入序列 比如recognized speech)发音容易混杂的句子。

So, another example sentence might be, wreck a nice beach. It's a famous example from the speech processing community. And the issue here is that these two sentences are quite similar from an acoustic point of view. And if you simply look at a measure of how compatible this sentence is with this acoustics versus this sentence, it's quite possible you might confuse these two sentences, and this is just one example sentence.  In practice, there are many, many, many other possibilities which might have a reasonable degree of, of fit with the acoustic input and might be quite confusable with the true sentence recognized speech in this case. Now, if we have a language model, we can actually evaluate a probability, p, of each of these sentences. And a language model adds some very useful information to this whole process, which is the fact that this sentence, recognize speech, is probably more probably than the sentence wreck a nice beach.  [laugh] So the, the, the language model is going to provide us additional information in terms of the likelihood or probability of different sentences in a language, and again, there are going to be many others down here with which some of them which might look acoustically like a, like a very good match to the input, but which are completely unlikely as sentences in English. So, in practice, modern speech recognizers use two sources of information. Firstly, they have some way of evaluating how well each of these sentences match the input from an acoustic point of view. But secondly, they also have a language model which gives you a, essentially a prior probability over the different sentences in the language. It can be very useful in getting rid of these kind of confusions.

每日一道理
自己把自己说服了,是一种理智的胜利;自己被自己感动了,是一种心灵的升华;自己把自己征服了,是一种人生的成功。

额,另外一个可能的(输入)句子是wreck a nice beach(与 recognized speech 发音很像)。这是语音处理社区一个有名的例子。现在的问题是从声波角度上看(就是去看这两个句子的语音信号图)这两个句子非常相似。如果大家仅仅简略的存眷着如何衡量这个声波和句子的兼容性,大家极可能被这两个句子弄晕(wreck a nice beach 与 recognized speech他们的语音信号图太像了)。而且这仅仅只是一个小例子,现实中在一个公道(误差)范围内有很多很多与输入声波相容的可能的句子,真正的句子(recognized speech)很容易和它们混杂。现在如果我们有一个语言模型,我们就能够评估每一个句子的可能性p。语言模型可以为上面的处理过程加入很多有效信息:事实上句子recognize speech比句子wreck a nice beach更具有可能性。(recognize speech比wreck a nice beach更像一个句子)。语言模型会从概率上对语言中不同的句子(停止辨别),提供额外信息给我们(帮助我们停止语音识别)。上面例子中有很多与输入(语音信号图)非常匹配但完全不可能涌现的英文句子。实践中,当代语音识别者应用两种信息,一个是他们有很多种方法从声波方面评测句子与输入(声波)有多匹配。另外,他们也有语言模型提供语言中不同句子的先验概率,这个对解脱容易混杂的情况很有帮助。
语言模型和自然语言处理
Okay, finally, let's talk about a kind of very naive method for language modeling, just to get us off the ground as a though experiment. So, say, we have N training sentences. Maybe a few million sentences from the New York, New York Times, for example. And for any sentence, X1 up to Xn, I'll just define c of X1 through Xn to be the number of times that, that sentence is seen in our training example, okay? A very simple estimate is then the following, where we define p to be simply c over N, okay? So, we simply count the number of times the sentences being seen and divide by the total number of sentences seen in our training corpus. And this is a language model, you can verify that p is always greater and equal to zero. And also if you sum over all sentences, p will sum to one. It's a perfectly well-formed language model. But it has some very, very clear deficiencies. Most importantly, it will assign probability 0 to any sentence not seen in our training sample. And we know that we're continuiusly seeing new sentences in a language. So, this model really has no ability to generalize to new sentences. So, the most important question in this lecture is essentially, how can we build models to improve upon this naive estimate and in particular, models which generalize well to new test sentences.

好的,最后,我们谈谈一种朴素方法停止语言模型估计,通过这个实验帮我们开始深入。我们有N个训练句子,比如多是几百万来自纽约时报的句子。每一个句子用下X1到Xn表示,我定义句子在训练语估中涌现的次数为X1到Xn的c值。好的,接下来讲一个简略的估计方法,在此我们定义p值为c除以N。我们简略的数数句子在训练语估中涌现次数,然后除以训练语料的句子总数N,哈哈,这就是语言模型。你可以检验一下(语言模型两个条件),单个句子p值是大于等于0的并且如果你把所有句子p值相加,它的和为1。这是一个形式良好的语言模型。但是他有很多显著的缺陷。最大的缺陷是他们给很多训练语估中没有涌现的句子赋予0概率。我们知道我们会一直的看到新的句子,但这个模型没有能力生成新的句子。所以本课最重要的问题是我们如何去在朴素评估方法基础上更好的建模,特别是如果建立在新测试句子上泛化能力好的模型。

<第四节完>

哥伦比亚大学 自然语言处理 公开课 讲课讲稿 翻译(一):自然语言处理介绍-1

哥伦比亚大学 自然语言处理 公开课 讲课讲稿 翻译(二):自然语言处理介绍-2

哥伦比亚大学 自然语言处理 公开课 讲课讲稿 翻译(三):语言模型介绍-1

文章结束给大家分享下程序员的一些笑话语录: 腾讯的动作好快,2010年3月5日19时28分58秒,QQ同时在线人数1亿!刚刚看到编辑发布的文章,相差才2分钟,然后连专题页面都做出来了,他们早就预料到了吧?(其实,每人赠送10Q币,轻轻松松上两亿!)

--------------------------------- 原创文章 By
语言模型和自然语言处理
---------------------------------

相关文章:

腾讯天衍实验室夺世界机器人大赛双冠军,新算法突破脑机接口瓶颈

日前&#xff0c;“2020世界机器人大赛-BCI脑控机器人大赛”公布成绩&#xff0c;腾讯天衍实验室和天津大学高忠科教授团队组成的C2Mind战队&#xff0c;经过多轮赛程的激烈比拼&#xff0c;实力入围BCI脑控机器人大赛“运动想象范式”赛题决赛&#xff0c;最终成功斩获技术赛“…

免费的私人代码托管(bitbucket) 和 常用git指令

转自 http://blog.csdn.net/nzing/article/details/24452475 今天想找个免费的私人代码托管平台&#xff0c;github,googlecode, SourceForge都不行&#xff0c;后来发现bitbucket&#xff08;https://bitbucket.org/&#xff09;&#xff0c;注册时&#xff0c;如果不多于5个人…

Ajax简单示例之改变下拉框动态生成表格

1.建立一个aspx页面&#xff0c;html代码<html xmlns"http://www.w3.org/1999/xhtml"><head runat"server"><title>Untitled Page</title><script type"text/javascript">var xmlHttp; function createXML…

for语句内嵌例题与个人理解

例题1:画出一个高度为3的等腰三角形. 编写程序: #include<stdio.h> main() { int a,b,c,h; h3; \\h为高度,赋值常量3. for(a1;a<h;a) …

2020百度云秀最新成绩单,AI Cloud活跃客户数同比去年增长65%

12月17日&#xff0c;“ABC SUMMIT 2020百度云智峰会”在北京举行。大会以“智者先行”为主题&#xff0c;百度CTO王海峰展现了518新战略后百度智能云取得的最新成绩和产业智能化成果。“云智一体”成百度智能云独特的竞争力&#xff0c;在各行各业加快规模化落地。本届大会首次…

构建之法读后感part6

这个星期看完了构建之法的第六章&#xff0c;看了第六章之后了解到敏捷开发以用户的需求进化为核心&#xff0c;采用迭代、循序渐进的方法进行软件开发。在敏捷 开发中&#xff0c;软件项目在构建初期被切分成多个子项目&#xff0c;各个子项目的成果都经过测试&#xff0c;具备…

Ajax实现无刷新三联动下拉框

1.html代码<HTML><HEAD><title>Ajax实现无刷新三联动下拉框</title><meta content"Microsoft Visual Studio .NET 7.1"name"GENERATOR"><meta content"C#"name"CODE_LANGUAGE"><meta content&…

用算法改造过的植物肉,有兴趣试试么?

来源 | HyperAI超神经责编 | 晋兆雨头图 | CSDN 下载自视觉中国本月初&#xff0c;麦当劳宣布&#xff0c;将于 2021 年推出植物肉全新产品线 McPlant&#xff0c;新品品类将包括汉堡、鸡肉替代品以及早餐三明治。事实上&#xff0c;麦当劳并不是尝试植物基产品的首家快餐店&am…

浅谈软件自动化集成测试的流程

浅谈自动化集成测试相信从事软件测试专业的同行很早就知道了自动化的测试技术&#xff0c;也许大家也很想知道具体的软件自动化具体的运行实施过程。本人学识尚欠&#xff0c;目前无法对综合的软件自动化的测试进行阐述&#xff0c;但是本人通过不同的书籍对软件自动化的集成测…

web聊天室总结

前言: 最近在写一个聊天室的项目&#xff0c;前端写了挺多的JS(function)&#xff0c;导致有点懵比&#xff0c;出了BUG&#xff0c;也迟迟找不到。所以昨天把写过的代码总结了一下&#xff0c;写成博客。 项目背景 参考博客: http://www.cnblogs.com/alex3714/articles/533763…

概率图论PGM的D-Separation(D分离)

为什么80%的码农都做不了架构师&#xff1f;>>> 本文大部分来自&#xff1a;http://www.zhujun.me/d-separation-separation-d.html 其中找了一些资料发现原文中阻塞&#xff08;block&#xff09;中&#xff08;b&#xff09;部分有出路&#xff0c;黑体部分修改…

CSDN湘苗培优|高起点步入职场,快人一步!

课程了解3个培养阶段结束后&#xff0c;让你具备&#xff1a;解决问题能力、交付能力、有经验。系统基础训练&#xff08;阶段一&#xff09;•内容&#xff1a;程序逻辑基础、计算机原理、操作系统工作原理、C语言&#xff08;掌握内存的分配&#xff09;、密码学、信息论、概…

php与Ajax实例

****************AJAX的学习要有JavaScript、HTML、CSS等基本的Web开发能力**************** [AJAX介绍] Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。Web页面不用打断交互流程进行重新加裁&#xff0c;就可以动态地更新。使用Ajax&#xff0c;用户可以创建…

[转]构建基于WCF Restful Service的服务

本文转自&#xff1a;http://www.cnblogs.com/scy251147/p/3566638.html 前言 传统的Asmx服务&#xff0c;由于遵循SOAP协议&#xff0c;所以返回内容以xml方式组织。并且客户端需要添加服务端引用才能使用&#xff08;虽然看到网络上已经提供了这方面的Dynamic Proxy&#xff…

Ajax使用初步

Ajax定义为“Asynchronous JavaScript XML”的简称&#xff0c;也就是异步的JavaScript和XML处理。从原理上看&#xff0c;主要是Ajax可以通过调用HttpRequest实现与服务器的异步通讯&#xff0c;并最终在网页中实现丰富友好的用户界面Ajax使用初步&#xff0c;配置步骤1.把Aj…

AI化身监工,上班还能摸鱼吗?

来源 | 人民数字FINTECH责编 | 晋兆雨头图 | CSDN 下载自视觉中国俗话说“上班摸鱼一时爽&#xff0c;一直摸鱼一直爽。”上班族这群“时间管理大师们”往往能在上班的时间中挤出一半的时间来摸鱼&#xff1a;在距离上班时间的最后一分钟打卡&#xff0c;午饭时间未到就打开各大…

解决“安装程序无法定位现有系统分区,也无法创建新的系统分区”的方法

使用老毛桃PE格式化C盘后安装Win7出现“安装程序无法定位现有系统分区,也无法创建新的系统分区”的错误。本文给出了我遇到该情况的解决办法&#xff0c;亲身经历&#xff0c;绝非抄袭。 在网上看了好多办法&#xff0c;都无效。最后竟然用下面的方法成功了&#xff1a; 1. 使用…

Linux 上 12 个高效的文本过滤命令

在这篇文章中&#xff0c;我们将会看一些 Linux 中的过滤器命令行工具。过滤器是一个程序&#xff0c;它从标准输入读取数据&#xff0c;在数据上执行操作&#xff0c;然后把结果写到标准输出。 因此&#xff0c;它可以用来以强大的方式处理信息&#xff0c;例如重新结构化输出…

linux在多核处理器上的负载均衡原理

原文出处&#xff1a;http://donghao.org/uii/ 【原理】 现在互联网公司使用的都是多CPU&#xff08;多核&#xff09;的服务器了&#xff0c;Linux操作系统会自动把任务分配到不同的处理器上&#xff0c;并尽可能的保持负载均衡。那Linux内核是怎么做到让各个CPU的压力均匀的呢…

完全免费,简化版Plotly推出,秒绘各类可视化图表

作者 | Peter来源 | Python编程时光今天给大家推荐一个可视化神器 - Plotly_express &#xff0c;上手非常的简单&#xff0c;基本所有的图都只要一行代码就能绘出一张非常酷炫的可视化图。以下是这个神器的详细使用方法&#xff0c;文中附含大量的 GIF 动图示例图。环境准备本…

Linux 启动过程详解

说明&#xff1a;由于图片太大&#xff0c;上传博客的图片是jpg格式的有点失真&#xff0c;看不清楚&#xff0c;可以双击打开查看&#xff0c;有朋友想看高清&#xff0c;无码&#xff0c;无水印的大图&#xff08;png格式&#xff09;请下载附件&#xff01;转载于:https://b…

java web项目优化记录:优化考试系统

考试系统在进行压力測试时发现&#xff0c;并发量高之后出现了button无反应。试题答案不能写到数据库的问题&#xff0c;于是针对这些核心问题&#xff0c;进行了优化。 数据库方面&#xff1a; Select语句&#xff1a;Select * from TEB_VB_XZTRecord改为select 必须的列 form…

深度学习中的注意力机制(三)

作者 | 蘑菇先生来源 | NewBeeNLP原创出品 深度学习Attenion小综述系列&#xff1a;深度学习中的注意力机制&#xff08;一&#xff09; 深度学习中的注意力机制&#xff08;二&#xff09;目前深度学习中热点之一就是注意力机制&#xff08;Attention Mechanisms&#xff…

程序分析工具gprof介绍

程序分析是以某种语言书写的程序为对象&#xff0c;对其内部的运作流程进行分析。程序分析的目的主要有三点&#xff1a;一是通过程序内部各个模块之间的调用关系&#xff0c;整体上把握程序的运行流程&#xff0c;从而更好地理解程序&#xff0c;从中汲取有价值的内容。二是以…

hadoop源码datanode序列图

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/u/572882/blog/134796

HDU 2206 IP的计算(字符串处理)

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2206 Problem Description在网络课程上&#xff0c;我学到了非常多有关IP的知识。IP全称叫网际协议&#xff0c;有时我们又用IP来指代我们的IP网络地址&#xff0c;如今IPV4下用一个32位无符号整数来表示&#…

有规律格式化文本文件插入数据库

现有以下文本文件: *理光(深圳)工业发展有限公司(D15)(位于福田区)1.厨师1名;男;30岁以下;高中以上学历;中式烹调师中级以上&#xff0c;需备齐身份证/毕业证/流动人口婚育证明原件及复印件1份.经公司体检不合格者将不予录用&#xff0c;不合格者体检费自理.福利及待遇:工作时…

java使用uploadify上传文件

一、简介Uploadify是JQuery的一个上传插件&#xff0c;实现的效果非常不错&#xff0c;带进度显示&#xff1b;可以上传多个文件&#xff1b;详细的使用方法网上有很多&#xff0c;建议到官网参考&#xff0c;这里仅仅展示其使用的效果&#xff1b;官网&#xff1a;www.uploadi…

微软亚洲研究院成立OpenNetLab,探索以“数据为中心”AI网络研究新范式!

2020年12月18日&#xff0c;微软亚洲研究院宣布联合清华大学、北京大学、南京大学、兰州大学、新加坡国立大学、首尔国立大学等多所亚洲地区高校&#xff0c;成立OpenNetLab开放网络平台联盟。 OpenNetLab官网地址&#xff1a;https://opennetlab.org/ 通过为研究人员提供通用的…

圆角文本框的制作

把border&#xff1a;0px;outline:none;就可以清除边框。然后在外面放一个圆角div&#xff0c;文本框在div内居中的话能够&#xff0c;设置行高和text-align:center。或者也能够在背景图上放文本框。