一、统计语言模型
自然语言从它产生开始,逐渐演变成一种上下文相关的信息表达和传递的方式,因此让计算机处理自然语言,一个基本的问题就是为自然语言这种上下文相关的特性建立数学模型,它便是自然语言处理中常说的统计语言模型。
下面我们来做一道小学一年级的语文题,将下列词语排列成一个句子:
一只 弟弟 天上 在 看见 小鸟 飞
这是一个非常简单的句子,只要你认识这几个字,即便是没有上过学,也能轻而易举的回答正确——弟弟看见一只小鸟在天上飞。
在组织这样一个句子的时候,人们会自觉或不自觉的运用其中的语法规则,尤其是在我们学习一门非母语的时候,语法就显得更重要,相信你也有过在学校背英语单词和语法的经历。
计算机是如何在做这样一道题呢?在20世纪70年代以前,计算机科学家坚持认为应该借鉴人类学习语言的方法,让计算机也通过语法分析来进行自然语言处理,但这条路很快便走到了尽头,通过这种方法计算机只能处理一些非常简单且没有上下文的句子,而且计算量还很大。
研究自然语言处理的科学家一直在“鸟飞派”的错误逻辑中徘徊了20多年,直到上世纪70年代,德里克·贾里尼克换了一个角度,用一个简单的统计模型就漂亮地解决了这个问题。
贾里尼克的出发点很简单,既然计算机不能通过语法分析进行自然语言处理,那干脆发挥它的强项,让计算机做一些统计数据的工作,一个句子是否合理,只要看看它出现的概率大小不就可以了吗?
这很容易理解,在人类的语言中或者语料库中,“弟弟看见一只小鸟在天上飞”出现的概率一定比“飞一只看见在弟弟天上小鸟”要高很多。而这样的概率统计只需要用数学公式表示出来,输入到电脑中,困扰科学家几十年的问题就解决了。
就这样,复杂的自然语言处理就变成了一个简单的数学模型——统计语言模型。
数学的魅力就在于可以把复杂的问题简单化,虽然抽象的理论平常人很难全部理解,但还是能感受到科学家用最简单的数学模型解释世界的魔力,那是科学的艺术。
这两天黑洞很火,虽然用光一样的速度都无法逃脱黑洞,但黑洞却始终也无法逃出爱因斯坦的方程式。
二、分词
在自然语言处理中,词是表达语义的最最小单位。对于西方的拼音文字语言来说,词之间有明确的分界符,统计和使用语言模型非常直接。但对于亚种语言,尤其是中文来说,词之间没有明确的分界符。因此,在进行自然语言处理之前,必须对句子进行分词。
所谓分词,可以简单理解为把上文的语文题倒过来做,把一个句子拆分成一个个独立有语义的词语。最早的分词方法是“查字典”,把一句话从左到右扫描一遍,只要是字典里有的词语就标出来,这种简单的方法可以解决七八成以上的问题。
但是,当计算机遇到有歧义的语言时,准确率就会大大折扣,这个问题到最后也是依靠统计语言模型解决的,解决这个问题的是当时在清华大学电子工程系工作的郭进博士。
如果,只让我看着文中的概率公式,大概率会睡着吧,还好配合吴军老师的文字,加上自己的好奇心,读起来还是津津有味的。
祝春安。
网友评论