贾里尼克的故事和现代语言处理

2024-03-17 13:50

本文主要是介绍贾里尼克的故事和现代语言处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数学之美 系列八-- 贾里尼克的故事和现代语言处理



读者也许注意到了,我们在前面的系列中多次提到了贾里尼克这个名字。事实上,现代语音识别和自然语言处理确实是和它的名字是紧密联系在一起的。我想在这回的系列里,介绍贾里尼克本人。在这里我不想列举他的贡献,而想讲一讲他作为一个普普通通的人的故事。这些事要么是我亲身经历的,要么是他亲口对我讲的。

弗莱德里克.贾里尼克(Fred Jelinek)出生于捷克一个富有的犹太家庭。他的父母原本打算送他去英国的公学(私立学校)读书。为了教他德语,还专门请的一位德国的家庭女教师,但是第二次世界大战完全打碎了他们的梦想。他们先是被从家中赶了出去,流浪到布拉格。他的父亲死在了集中营,弗莱德自己成天在街上玩耍,完全荒废了学业。二战后,当他再度回到学校时,他的成绩一塌糊涂, 全部是 D,但是很快他就赶上了班上的同学。不过,他在小学时从来没有得过 A。1949年,他的母亲带领全家移民美国。在美国,贾里尼克一家生活非常贫困,全家基本是靠母亲做点心卖钱为生,弗莱德自己十四五岁就进工厂打工补助全家。

贾里尼克最初想成为一个律师,为他父亲那样的冤屈者辩护,但他很快意识到他那浓厚的外国口音将使他在法庭上的辩护很吃力。贾里尼克的第二个理想是成为医生,他想进哈佛大学医学院,但经济上他无法承担医学院 8 年高昂的学费。与此同时麻省理工学院给于了他一份(为东欧移民设的)全额奖学金。贾里尼克决定到麻省理工学电机工程。在那里,他遇到了信息论的鼻祖香农博士,和语言学大师贾格布森 Roman Jakobson (他提出了著名的通信六功能)[注释一],后来贾里尼克又陪着太太听最伟大的语言学家乔姆斯基(Noam Chomsky)的课。这三位大师对贾里尼克今后的研究方向--利用信息论解决语言问题产生的重要影响。

贾里尼克从麻省理工获得博士学位后,在哈佛大学教了一年书,然后到康乃尔大学任教。他之所以选择康乃尔大学,是因为找工作时和那里的一位语言学家谈得颇为投机。当时那位教授表示愿意和贾里尼克在利用信息论解决语言问题上合作。但是,等贾里尼克到康乃尔以后,那位教授表示对语言学在没有兴趣而转向写歌剧了。贾里尼克对语言学家的坏印象从此开始。加上后来他在 IBM 时发现语言学家们嘴上头头是道,干起活来高不成低不就,对语言学家从此深恶痛绝。他甚至说:"我每开除一名语言学家,我的语音识别系统错误率就降低一个百分点。" 这句话后来在业界广为流传,为每一个搞语音识别和语言处理的人所熟知。

贾里尼克在康乃尔十年磨一剑,潜心研究信息论,终于悟出了自然语言处理的真谛。1972年,贾里尼克到IBM 华生实验室(IBM T.G.Watson Labs)做学术休假,无意中领导了语音识别实验室,两年后他在康乃尔和IBM 之间选择了留在IBM。在那里,贾里尼克组建了阵容空前绝后强大的研究队伍,其中包括他的著名搭档波尔(Bahl),著名的语音识别 Dragon 公司的创始人贝克夫妇,解决最大熵迭代算法的达拉皮垂(Della Pietra)孪生兄弟,BCJR 算法的另外两个共同提出者库克(Cocke)和拉维夫(Raviv),以及第一个提出机器翻译统计模型的布朗。

七十年代的 IBM 有点像九十年代的微软和今天的 Google, 给于杰出科学家作任何有兴趣研究的自由。在那种宽松的环境里,贾里尼克等人提出了统计语音识别的框架结构。 在贾里尼克以前,科学家们把语音识别问题当作人工智能问题和模式匹配问题。而贾里尼克把它当成通信问题,并用两个隐含马尔可夫模型(声学模型和语言模型)把语音识别概括得清清楚楚。这个框架结构对至今的语音和语言处理有着深远的影响,它从根本上使得语音识别有实用的可能。 贾里尼克本人后来也因此当选美国工程院院士。

贾里尼克和波尔,库克以及拉维夫对人类的另一大贡献是 BCJR 算法,这是今天数字通信中应用的最广的两个算法之一(另一个是维特比算法)。有趣的是,这个算法发明了二十年后,才得以广泛应用。IBM 于是把它列为了 IBM 有史以来对人类最大贡献之一,并贴在加州 Amaden 实现室墙上。遗憾的是 BCJR 四个人已经全部离开 IBM,有一次IBM 的通信部门需要用这个算法,还得从斯坦福大学请一位专家去讲解,这位专家看到 IBM 橱窗里的成就榜,感慨万分。

贾里尼克和 IBM 一批最杰出的科学家在九十年代初离开了 IBM,他们大多数在华尔街取得了巨大的成功。贾里尼克的书生气很浓,于是去约翰霍普金斯大学建立了世界著名的 CLSP 实验室。每年夏天,贾里尼克邀请世界上 20-30 名顶级的科学家和学生到 CLSP 一起工作,使得 CLSP 成为世界上语音和语言处理的中心之一。

贾里尼克治学极为严谨,对学生要求也极严。他淘汰学生的比例极高,即使留下来的,毕业时间也极长。但是,另一方面,贾里尼克也千方百计利用自己的影响力为学生的学习和事业创造方便。贾里尼克为组里的每一位学生提供从进组第一天到离开组最后一天全部的学费和生活费。他还为每一位学生联系实习机会,并保证每位学生在博士生阶段至少在大公司实习一次。从他那里拿到博士学位的学生,全部任职于著名实验室,比如IBM, 微软,AT&T 和 Google 的实验室。为了提高外国人的英语水平,贾里尼克用自己的经费为他们请私人英语教师。

贾里尼克生活俭朴,一辆老式丰田车开了二十多年,比组里学生的车都破。他每年都邀请组里的学生和教授到家里做客,很多毕业了的学生也专程赶来聚会。在那里,他不再谈论学术问题,而会谈些巩俐的电影(他太太是哥伦比亚大学电影专业的教授),或是某著名教授被拉斯韦加斯的赌馆定为不受欢迎的人等等。但是他聚会的食物实在难吃,无非是些生胡萝卜和芹菜。后来贾里尼克掏钱让系里另一个教授承办聚会,那个教授每次请专业大厨在家作出极丰盛的晚宴,并准备许多美酒,从此这种聚会就转移到那个教授家了。

除了巩俐的电影,贾里尼克对中国的了解就是清华大学和青岛啤酒了。他有时会把两个名字搞混,有两次被香港科技大学的 Pascale 冯教授抓住。

贾里尼克说话心直口快,不留余地。在他面前谈论学术一定要十分严谨,否则很容易被他抓住辫子。除了刚才提到的对语言学家略有偏见的评论,他对许多世界级的大师都有过很多“刻薄”但又实事求是的评论,这些评论在业界广为流传。贾里尼克在四十多年的学术生涯中居然没有得罪太多的人 ,可以说是一个奇迹。

注释一:

贾格布森的通信模型
1 上下文
2
信息
3

发送着 --------------- 4 接收者
5

信道
6 编码

固定链接  |

这篇关于贾里尼克的故事和现代语言处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Python异常处理之避免try-except滥用的3个核心原则

《Python异常处理之避免try-except滥用的3个核心原则》在Python开发中,异常处理是保证程序健壮性的关键机制,本文结合真实案例与Python核心机制,提炼出避免异常滥用的三大原则,有需... 目录一、精准打击:只捕获可预见的异常类型1.1 通用异常捕获的陷阱1.2 精准捕获的实践方案1.3

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Python动态处理文件编码的完整指南

《Python动态处理文件编码的完整指南》在Python文件处理的高级应用中,我们经常会遇到需要动态处理文件编码的场景,本文将深入探讨Python中动态处理文件编码的技术,有需要的小伙伴可以了解下... 目录引言一、理解python的文件编码体系1.1 Python的IO层次结构1.2 编码问题的常见场景二

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块