人工智能为什么看不懂数学题目?浅谈中文自然语言处理

还记得小时候的数学题目吗?究竟要怎么从打字员能在20分钟打出1120个字,推算出30分钟他能够打几个字呢?仔细地雕琢题目,或许不用太久的时间你就能理解并推理答案。然而,近年来有鉴于科技的长足发展,我们开始对电脑寄予厚望,希望它也能像你一样快速推敲题意、运算解答,这就是最近很流行的「人工智能」。

有种在地球上存在许久的自然语言,在外国人心中,它的难度直逼天际,光是发音就有四个声调,还有同音字、破音字,更不要说字体繁复,一笔一划都难以在短时间内学成,它是「中文」,一种有时候连身为中国人的我们都可能摸不着头绪的语言。

而当我们还是小学生时,做数学题目也常常碰到中文理解所造成的瓶颈,有时不是不会算,而是一开始题目就看错,老师跟学生都欲哭无泪。这同时也是人工智能最大的难题:了解自然语言。

中文理解的困难在哪里?

然而,中文刚好是一种文法宽松的语言。断词、词序、标点符号、省略字词,都可能造成电脑「阅读障碍」。

中文与英文不同,一句话是用好几个独立的字组成,因此「断词」就变得很重要,例如「一台大冰箱」,电脑可能会没断好,以为有「台大」这个词。或是「椅子几张才够?」电脑可能会误判,以为「张才」是人的名字,这些问题都可能让电脑不懂语句的意涵。

除了断词,中文的「词序」也有很多种排列组合,比如说「衣服该洗了」,也能写做「该洗衣服了」,而这样的文法也能套用在好几种事物上,不单单限制在「洗衣服」,做作业、修电脑、交报告…...,有太多种变化,但电脑若只能了解其中一种词序,在阅读上就受到了很大的限制。

另外,现代中文语句随处可加逗号,或省去句号。「苹果20个,每个10元,分装成5盒,请问一盒苹果多少钱?」前面三句可以改写成「每个10元的苹果20个分装成5盒」。又或者「上海哪里有可以唱卡拉OK的餐厅?要离地铁站近的,但也不要太贵。」可以写成一句「上海哪里有可以唱卡拉OK、离地铁站近、也不太贵的餐厅?」这个问题对人类非常简单,因为我们知道「离地铁站近」,「不太贵」都是在描述「餐厅」的,但这样「分段」的写作方式,却容易让电脑不知道意思到哪里才结束。

中文也经常省略重复的词,这样的情况也经常出现在题目里,让小学生满头问号,比如「1棵苹果树会结5颗苹果,农夫种了3棵,请问会收成几颗?」这样「棵」来「颗」去,又把名词省略,让很多明明会算数学的小学生,由于常识积累不够,而败倒在中文的博大精深之下。

▲机器人解题需模拟人类的联想能力(图/Clarisse Croset,Unsplash)
▲机器人解题需模拟人类的联想能力(图/Clarisse Croset,Unsplash)

人工智能的联想力

中文里有这么多让小学生痛苦万分、并让电脑在分析语句时容易触发的地雷,那么,电脑该如何有效率的分析与推理呢?答案就是解题时的「联想」。

解数学题时,触类旁通非常重要,否则只是在背算式。因此可以让电脑先学会题目A,在解相同架构的题目B时,则利用联想的能力,让两个题目「等同化」。请看以下举例。

半打球卖48元;
幼稚园有五个小班共有50人;
打字员每20分钟可以打1120个字。

如果我们将数字的部分用A,B代替,就可以更突显出这三个句子的相似性:

半打球卖48元(B个球卖A元);
幼稚园有五个小班共有50人(B个小班有A个人);
打字员每20分钟可以打1120个字(B分钟打A个字)。

由于上述事件的名词不同,对应的动词也不一样,但其实稍微对应,就能看出题目之间的共同点。

B个球「卖」A元;
B个小班「有」A个人;
B分钟「打」A个字。

或是更简单的表达:

单位价格(元/球);
单位人数(人/班);
单位字数(字/分钟)。

如果我们用「单位值」C代表相应的数字,就可以得到A / B=C。的确,我们看这三题后面的问句,会发现都在问C等于多少,这是最基础的「推理」。

一旦小学生了解这层推理,后面的变化题也就不是件难事了。比如可以变化如下:

打字员每20分钟可以打1120个字,若连续打字半个小时,可以打几个字?

从「基础推理」我们可以得知每分钟可以打1120 / 20=56字。所以,半小时(=30分钟)可以打56 x 30 = 1680 字。

在解答这个变化题的过程中,我们其实回答了两个问题:打字员每20分钟可以打1120个字,每分钟可以打几个字?若连续打字半个小时,可以打几个字?

这两个问题具有逻辑上的连续性,学生会先经过「基础推理」的步骤,解决第一个问题:「打字员」每分钟可以打几个字,再回答第二个问题。而对于较熟练的学生,这个「基础推理」的步骤已经变成一种「常识」,即使题目没有问第一个问题也会先作。

那么,该如何让电脑动起来呢?首先,我们告诉机器在不同的上下文,用合适的动词、名词。其次,对语言熟练的人经常会跳过「基础推理」的常识部分,所以机器必须自行补足这些漏掉、言而不喻的部分,才能看懂后面的话语。

▲机器解题需补足人类世界的常识(图/Jessica Lewis,Unsplash)
▲机器解题需补足人类世界的常识(图/Jessica Lewis,Unsplash)

就现代而言,人工智能的发展离这样的能力还有相当的距离,前述的「在不同的上下文,要用合适的动词、名词」,是「联想」的要件。我们在作文的时候,经常需要参考别人在不同情境下所写的句子、段落,修改之后纳为己用,就是在训练自己的联想力。而这种能力对于电脑来说,仍处于困难的阶段,但若有朝一日,真的让电脑「学会」「联想」,未来电脑理解自然语言的能力必可大幅提升。

「常识」本身就是一个日积月累、漫无边际的学习之旅,因此需要通过大家对机器喂养,才能加快机器对世界的认知。

微信扫码关注公众号获取最新消息

原创文章,作者:108黑科技,如若转载,请联系我们:thinkou@126.com 并注明出处:https://www.108hei.com/archives/1970

微信公众号