查看原文
其他

当你说出“我喜欢ta”时,计算机会怎么想?

望墨溢 科学大院 2023-06-10


“我爱科学大院”,这句话一定不难理解,且十分通顺。但是,对人类而言通顺的句子,计算机能够理解么?这就是自然语言处理(Natural Language Processing, NLP)问题,即令机器理解人类语言。


自然语言处理包括很多内容,为简单起见,大院er只为大家介绍计算机如何判断一句话是否通顺,且没有错别字。


如何判断一句话是否通顺?


最初,科学家尝试用句法分析(Syntactic Parsing)和语义分析(Semantic Analysis)的方法,来实现自然语言处理,也就是从语法角度来分析一句话。例如,“我爱科学大院”是典型的主(我)+谓(爱)+宾(科学大学)结构。


但是,语义分析面临着三个问题:



1)对较短的简单句而言,解析出的语法信息还比较少;而对于较长的复杂句而言,解析出的语法信息可能非常多,甚至比句子本身的信息还多。


例如,“北京时间2022年5月4日,小明告诉我他非常喜欢一个知名的、紧跟前沿、通俗易懂的科普公众号——科学大院”。这句话包含了状语、主语、谓语和宾语从句,宾语从句又包含了主语、谓语、定语、宾语和同位语。


(复杂句:别分析了,你还是死记硬背吧)



2)语义分析法要求句子必须严格遵守语法要求,而实际上,我们日常用语很难保证这一点。


例如,“科学大院这个公众号我很喜欢”,严格来讲,这句话是有语病的(宾语前置),但并不影响我们的理解,类似的“病句”在日常生活中很常见。


(这个病句影响理解么?不影响~)



3)一词多义的现象很常见,给语义分析带来了巨大的困难。


例如,“我给你推荐了这么有意思的科学大院,这你不意思意思”。前半部分的“意思”是趣味,后半部分的“意思”是礼物、奖励。我们对这些词很熟悉,但计算机很难理解一词多义。


(计算机:what are u bb?)


因此,自然语言处理的语义分析法就走到了尽头。后来,IBM华生实验室提出一种新的自然语言处理方法——统计法,真正实现了自然语言处理,至今仍是我们在使用的方法之一。


统计法处理句子依照一个较为严格的顺序,下面大院就给各位读者一一介绍。



1)我们收集足够多的语言材料,即语料库(Corpus),例如1亿个人说过话,每人10句,总计10亿句话。



2)统计不同词出现的频率,以及这个词出现后,另一个词出现的频率……例如,“我”出现的频率为10%,“我”出现之后“爱”出现的频率为3%……


伯努利大数定律(Bernoulli Law of Large Numbers)告诉我们,当统计样本足够多时(10亿足够多),统计频率就无限接近概率。因此,上述频率就可被视作概率。


(大数定律)



3)然后,就可计算一句话出现的概率。


设一句话为“ABCD”,根据全概率公式(Full Probability Formula),这句话出现的概率P{ABCD}= P{A}P{B|A}P{C|A,B}P{D|A,B,C},其中P{A}是“A”出现的概率,P{D|A,B,C}就是以“ABC”出现为条件,“D”出现的条件概率(Conditional Probability)。


(全概率公式)


现在我们考虑P{我爱科学大院}=P{我}P{爱|我}P{科学大院|我爱}。在步骤2)的统计中,这些概率就已经得到。



4)于是就得到了一句话的概率P{我爱科学大院},如果这个概率大于某个门限,就认为这句话通顺,即出现的概率足够大;反之,认为这句话不通顺,即出现的概率太小。


(统计法流程图)


但是,上述统计法面临一个问题,那就是条件概率的计算。不难理解,当前面只出现1、2个词时,后续词的条件概率比较准确,例如P{爱|我};当前面出现了较多词时,后续词的条件概率就有较大误差了,例如P{非常|小明告诉我他}


这主要是由于前面出现了较多词,导致语料库里对应的数据太少,不满足大数定律的条件(样本数足够多),这时再把统计频率作为概率,就会出现较大误差。


马尔科夫链


后来,人们借鉴了马尔可夫链(Markov Chain)的思想,解决了这一问题。马尔可夫链假设一个状态(词)的概率只与上一个状态(词)有关,与更早的状态(词)无关。


例如,对“小明告诉我他非常喜欢科学大院”这句话而言,我们可以假设“科学大院”出现的概率只与前一个词“喜欢”有关,与更早的词无关,因此P{科学大院|小明告诉我他非常喜欢}= P{科学大院|喜欢}


(马尔可夫:老夫教你科学地偷懒)


这样一来,就将完整的、计算困难的P{科学大院|小明告诉我他非常喜欢},转换为近似的、计算简单的P{科学大院|喜欢},其他词的概率计算也可以相应简化。


对于“ABCD”这句话而言,它出现的概率P{ABCD}就可以简化为

当然,马尔可夫链的假设,势必会带来误差,因此有人提出N阶马尔可夫链(N-Order Markov Chain),顾名思义,就是一个词出现的概率与之前的N个词有关,与再之前的词无关。例如,设N=2,那么就有P{科学大院|小明告诉我他非常喜欢}= P{科学大院|非常喜欢}


(N=2时的马尔科夫链)


N越大,结果越准确,但所需的概率越难计算。在自然语言处理中,N一般不超过3,也就是认为一个词出现的概率只与前3个词有关。继续增大N,并不会使性能显著提升,却会使计算复杂度大大增加。


统计法真正意义上实现了自然语言处理,它避免了语义分析法的各种问题,使得自然语言处理真正走向了应用。


纠错与划分


再问大家一个问题,如果我的句子中有错别字,怎么自动纠错。例如,我用拼音输入了“我挨科学大院”,不难想象,概率P{我挨科学大院}一定非常小(估计只有本文出现过)。接下来,以N=1的马尔科夫链为例,进行说明


首先,我们需要判断错别字的位置。不难想象,P{我}P{挨|我}都不小,但P{科学大院|挨}会出现断崖式减小,那么就可判定“挨”字为错别字(错别字会导致概率骤降)。


(“挨|我”:总觉得,我的概率大是一件悲伤的故事)


然后,在“挨”的同音字里寻找X,使得P{我X科学大院}= P{我}P{X|我}P{科学大院|X}最大。例如X=“爱”,那么就可以判断,我们本想输入“我爱科学大院”,实际却将“爱”错打成了“挨”。


(科学大院:我就说,我前面怎么可能是“挨”这个悲伤的词)


当然,如果我们使用五笔输入法,那就不是在“挨”的同音字中纠错,而是在与“挨”的字型相似的字中纠错。


最后,自然语言处理还面临一个问题,那就是句子的划分,不同的人对同一个句子可能有不同的划分。


例如,前面的内容默认将“我爱科学大院”划分为“我”+“爱”+“科学大院”(3个词),但实际上,将其划分为“我”+“爱”+“科学”+“大院”(4个词),在语法上也是正确的。


(谁敢说我语法错误?)


不难发现,这种划分上的差异,主要源自专有名词。也就是说,我们既可以将“科学大院”视作一个专有名词,也可以将其视作两个普通词的连接。类似的词还有很多:清华大学、北京烤鸭、苹果手机……


把专有名词分解成两个普通词的连接,那句子的概率就会很小(一般“科学”后是不跟“大院”的)。因此,我们在做句子划分时,总是按照词数最少的原则来划分,即把专有名词视作一个词,而不是将其拆分。


接下来为大家介绍一点点课外知识,前面的概念还没有消化好的读者不要贪多哦~


点击展开

从纠错看反馈


借由自然语言处理问题,为大家介绍反馈(Feedback)的概念。反馈,是指系统的输出回传至输入端,并参与对输入的处理,进而再影响系统输出的过程。


例如,在自动纠错中,输入为“我挨科学大院”,输出为这句话的概率。当系统发现这句话的概率非常小时,会反过来检查输入,发现“挨”字是错别字,然后自动纠错,最终输出正确的句子“我爱科学大院”的概率。



根据对输出的影响,反馈可分为正反馈(Positive Feedback)和负反馈(Negative Feedback)两种。正反馈增强输出,使得系统趋于不稳定;负反馈减弱输出,使系统趋于稳定。


举例来讲,自然语言的自动纠错,就是一种典型的负反馈,使得输出的概率趋于最大值;还有空调、热水器等,使得室温、水温收敛至预设值。


(负反馈保证了稳定)


相对于负反馈,正反馈系统较少,典型的有振荡器(将稳定的直流电转换为震荡的交流电)、生理和心理的成瘾(不断地适应、不断地寻找更强的刺激)。


结语


随着各种人工智能技术的突飞猛进,NLP的应用越来越广泛。它早已渗透到我们生活的各种场景。


由于涉及到语言学、计算机科学、数学,自然语言处理其实是一门很复杂的学问。让每个人都能熟悉背后的深刻原理十分困难。


大院er希望在读完这篇文章后,读者朋友们在和智能助手对话时能够想到“哈哈,它才听不懂我说的话,它靠的是统计学”。


参考文献:

[1] 吴军. 数学之美(第3版). 北京: 人民邮电出版社.

[2] 盛骤, 谢式千等. 概率论与数理统计(第4版). 北京: 高等教育出版社.

[3] Alan V. Oppenheim著, 刘树棠译. 信号与系统(第2版). 西安: 西安交通大学出版社.




版权说明:未经授权严禁任何形式的媒体转载和摘编,并且严禁转载至微信以外的平台!



文章首发于科学大院,仅代表作者观点,不代表科学大院立场。转载请联系cas@cnic.cn

推荐阅读

“AI,告诉我,我家宠物究竟在想什么?” >>

人工智能取代人类?先搞定汉语再说吧 >>

外国人为什么说不好中文?原因只有一个 >>

看 到这 样的标 题你是 不是很难受?>>



科学大院是中科院官方科普微平台,由中科院科学传播局主办、中国科普博览团队运营,致力于最新科研成果的深度解读、社会热点事件的科学发声。


转载授权、合作、投稿事宜请联系cas@cnic.cn


大院er拍了拍你:不要忘记 

点亮这里的 赞 和 在看 噢~ 


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存