NLP发展史
自然语言处理早期发展史
自然语言处理的发展史其实也是机器翻译的发展史,上世纪40年代,先进的国家尝试研究机器翻译,基于对机器翻译的热情,开始研究语言与计算机相结合的这些工作的研究,基于时代环境,计算机发展,国际局势等各方面因素的共同作用,希望用计算机来做翻译工作,不同学者都提出了相应的方法,可能当时的方法现如今都不是主流的方法,但是这些摸索的过程对我们如今的研究也是有很多的借鉴意义的。我们现在提出的一些论文,有的也是借鉴了我们上个世纪的一些研究思路。
1954年1月7日,在IBM纽约总部,Georgetown-IBM实验启动了,IBM的701型计算机将60个俄语句子自动翻译成英语,这是历史上首次机器翻译。
最早期的翻译是基于规则
机器翻译所用的规则主要是词语,句法,短语规则和转化生成语法
机器翻译分三类:
- 直接翻译:不涉及深层次的语法的分析,上面的实验基本上就是应用的这个方法
不同语言并不完全存在一一对应性 - 结构转换翻译:分析源语句的特点--->转化成源语句的深层次结构---->转化为目标语深层次结构--->目标语句子
- 引申:使用中间语,也是基于规则
基于记忆
利用源语句与目标语句的对应语料库来完成翻译,这是有京东大学Makoto Nagao在1984年提出的一种基于实例的机器学习方法。
优点:操作简单,扩充简单,翻译质量有保证
缺点:需要非常庞大的语料库,前期的搜集整理工作量非常大。
之后,又有一个日本的学者Satoshi Sato基于实例的方法又提出了基于记忆的机器翻译方法,其思想也很简单,将已经翻译过的句子扩充到语料库中。这样随着翻译系统的不断使用,翻译能力就会逐步增强了,类似于人类有了一个记忆的功能
基于统计
1990年Peter F Brown发表了一篇经典之作《A Statical approach to machine Translation》,正式拉开了统计机器翻译时代序幕。
这个方法并不了解整体的规则和语言学,完全摒弃了繁杂的规则设置,只依据大量的语言资源,从统计学的角度来理解其中一一对应的模式,总记下来一句话就是:如果大家这么翻译,那我也这么翻译。
google的统计翻译内幕,会统计概率,也会反向统计
IBM Model
IBM Model是统计机器翻译非常代表性的Model
贝叶斯定理
P(A|B) P(B) = P(B|A) P(A)
P(A|B) = P(B|A) * P(A) / P(B)
P(译文|原文) = P(原文|译文) * P(译文) / P(原文)
给定原文即 目标
P(译文|原文) 正比于 (原文|译文) * P(译文)
从自然语言处理角度来看,也就是
P(译文|原文) 正比于 翻译模型*语言模型
语言模型:即估计摸一个句子在语言中出现的概率问题,用于估计此句子是否符合自然语言特征。
例如P(I am a student?) 这个句子在英语中出现的概率越大,表明这越像是一句英语(人话)。
如果我们使用某一句子的出现的频次在作为衡量一个句子是不是人话并不十分合理,因为并没有一个足够庞大的语料库能够涵盖所有的语句,所以我们使用以此组为单位,计算词组的频次,即N-gram模型。
翻译模型:语言间的对应关系
贝叶斯定理还可以应用于:
- 聊天机器人 B(用户输入的问题)A(机器回答)
- 语音转文字 B(语音) A(文本)
- 搜索引擎 B(用户输入的关键词)A(机器给出的答案)
P(A|B) P(B) = P(B|A) P(A)
P(B|A) 表示两者之间对应的准确性,P(A) 代表答案的流畅性