自然语言理解为什么这么难?

Posted 待字闺中

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自然语言理解为什么这么难?相关的知识,希望对你有一定的参考价值。

【摘要】基于人类语言交流的基本框架模型,分析导致自然语言理解困难的主要原因,并给出一些具体示例说明计算机在理解人类语言时会遇到的具体挑战。想要摘取AI皇冠上的那颗明珠,任重而道远。
注:刘群老师是国内知名的NLP(自然语言处理)和机器翻译领域的顶级学者,本文很多例子来自于刘老师在微博上发起的话题“#自然语言理解太难了#”,这里对刘老师和分享这些案例的网友表示感谢。

一、引言

本文我们探讨自然语言理解的问题。先看个例子,这是发生在导师和学生之间的简短对话,大家感受一下。

注意到这个对话里有两个关键的实体,一个是“文章,一个是“马伊琍。导师所说的“文章”指的是论文,而学生以为老师说的是指“马伊琍的老公。双方的理解正好发生了错位。

下面这个例子就更值得回味了。大家可以想象一下当时两个人的内心,双方都在小心翼翼地维护着自己脆弱的尊严。

自然语言理解为什么这么难?

二、基本框架和难点分析

语言交流的基本框架和信息失真问题

人与人之间的语言交流是一个怎样的过程呢?下图是一个基本框架,图中左边是导师,右边是他的学生。导师将他的“本来的意思通过他的表达后变成了自然语言:“文章的事情怎么样了”,然后发送给了学生。

自然语言理解为什么这么难?

一个完美的语言交流应该达成这样的结果:这个学生理解后的意思,应该完全等同于导师本来的意思。我们知道,人在进行交流的时候,虽然双方发送或接收的都是文字符号,但这些符号背后是有大量的背景知识在做支撑的。但是,每个人对世界的认知和所掌握的背景知识是差异很大的,这会造成双方对同样的文字符号的理解上的偏差,同时双方当时所处的上下文环境、双方的语言表达能力和理解能力的差异也会造成信息的进一步失真。

比如,当我们提到“特斯拉”这三个字时,背后隐含的背景知识就涉及到自动驾驶、电动汽车、汽车、马斯克等等相关的网状知识(这个网状知识是通过我们几十年的学习、工作和日常生活积累且会不断扩充的印记在脑中的信息,而且可以持续横向扩展和纵向深入),而如果没有这些背景知识的支持,“特斯拉”这三个字就只能是没有任何意义的三个汉字而已,“字都认识,但连在一起就不懂了”。

你们看,仅仅是人与人之间的语言交流,都存在这样的问题,如果这里的学生是计算机,是不是就更难了?这里面涉及到一个关键性的问题:人类的常识性知识、专业性知识等等,如何表示、如何存储、如何构建成可被计算机程序所利用的知识库,这个工作的难度是非常巨大的。最近几年学术界和工业界都流行知识图谱技术,但是,知识图谱中的知识,说到底也只是知识的符号化和图谱化表示,计算机真的“理解了这里面的知识么?人类的知识是否能不失真地被符号化和图谱化?这是一个问题,值得大家思考。

自然语言理解的一些具体挑战

除了背景知识的差异带来的障碍,还有一些具体的问题会进一步造成自然语言理解上的困难。我们还是以中文为例,举一些有趣的例子。看了这些例子后,大家可以尝试以程序员的角度思考下:计算机怎么去解决这样的问题?

  • 中文的切分歧义问题
这种问题非常普遍,不仅仅对中文NLP造成了非常大的困难,甚至有时我们自己也会有困惑。比如这个例子中,我们应该不会理解成是“广东 省长 假 成绩单 亮眼”,而是“广东省 长假 成绩单 亮眼”。但是,从计算机的分词角度来看,你不能说第一种结果就不对。
自然语言理解为什么这么难?
下面这句话 “小明吃了麻婆豆腐,被麻婆一刀捅死。 ” 只有看完下半句,你才能真正理解上半句说的“麻婆豆腐并不是一个菜,“吃豆腐也有了特别的含义。
  • 旧词新义问题

着社会的发展,语言会进化,有些词的含义会发生变化。 比如这个例子:

自然语言理解为什么这么难?

      再比如下面这个例子,“娘”这个字前后的意思是不一样的,当然这里可能只是幽默性的调侃。但是计算机能理解这样的幽默吗?

自然语言理解为什么这么难?

  • 一词多义问题

      比如,“钢笔没水了”这个句子中的水,指的是墨水,ink。但谷歌翻译理解成了普通的水,water。除了“水”这个词的含义在不同搭配或上下文语境下的含义不同之外,这个例子也反映了机器翻译还缺乏相应的常识。

自然语言理解为什么这么难?

  • 正说反说都一样
还有一些表达,正着说和反着说居然意思是一样的,最经典的例子就是“完胜”和“完败”,“中国队完胜美国队”、“中国队完败美国队”,意思是一样的。 下图列举了一些常见的生活用语。

自然语言理解为什么这么难?

  • 语言表达的地区差异及繁简体转换问题
不同的地区对同一个实体存在表达上的差异。 比如,中国大陆的内存条,在台湾叫记忆体。所以,如果台湾要播放大陆的电视剧,通常要先将字幕从简体转换为繁体,这种工作通常交给计算机来自动完成,然后你就可能会看到下图这样非常搞笑的结果,“海内存知己”变成了“海记忆体知己”。 这个例子既体现了中文的切分歧义问题,也反映了计算机进行中文繁简体自动转换时会遇到的挑战。

自然语言理解为什么这么难?

三、自然语言理解:任重道远

通过前文所述,大家应该可以感受到,自然语言理解真的是任重道远。人类的常识问题、专业知识、语言上下文环境、各种歧义问题、语言进化问题、语言的地区差异问题等等,都是摆在NLP面前的一个个不小的挑战,甚至有时连人类自己也感到困难,进而影响我们日常的交流。

在我看来,在我们对人类自身的大脑运行机理不能完全掌握之前,想要计算机像人类一样理解自然语言,是很不现实的。为什么大家都说NLP是AI皇冠上的明珠,我想原因也就在这里。最后,再放一个调侃性的图片,大家乐一乐。


如果大家觉得此文对你有所启发,欢迎关注我的视频号,我会不定期的分享一些科普小知识,以及关于大数据、AI、数据智能、数字化产品技术等方面的探讨和思考。


以上是关于自然语言理解为什么这么难?的主要内容,如果未能解决你的问题,请参考以下文章

Python入门难吗?30年前的编程语言,为什么现在这么火?

Python入门难吗?30年前的编程语言,现在为什么这么火?

C++想要提高,为什么这么难?

提供一个可以成功运行的样本是这么困难,还是只有弹簧这么难自然使用?

C++这么难,为什么我们还要学习C++?

C++这么难,为什么我们还要学习C++?