自然语言理解为什么这么难?
Posted 待字闺中
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自然语言理解为什么这么难?相关的知识,希望对你有一定的参考价值。
一、引言
本文我们探讨自然语言理解的问题。先看个例子,这是发生在导师和学生之间的简短对话,大家感受一下。
注意到这个对话里有两个关键的实体,一个是“文章”,一个是“马伊琍”。导师所说的“文章”指的是论文,而学生以为老师说的是指“马伊琍”的老公。双方的理解正好发生了错位。
下面这个例子就更值得回味了。大家可以想象一下当时两个人的内心,双方都在小心翼翼地维护着自己脆弱的尊严。
二、基本框架和难点分析
语言交流的基本框架和信息失真问题
人与人之间的语言交流是一个怎样的过程呢?下图是一个基本框架,图中左边是导师,右边是他的学生。导师将他的“本来的意思”通过他的表达后变成了自然语言:“文章的事情怎么样了”,然后发送给了学生。
一个完美的语言交流应该达成这样的结果:这个学生理解后的意思,应该完全等同于导师本来的意思。我们知道,人在进行交流的时候,虽然双方发送或接收的都是文字符号,但这些符号背后是有大量的背景知识在做支撑的。但是,每个人对世界的认知和所掌握的背景知识是差异很大的,这会造成双方对同样的文字符号的理解上的偏差,同时双方当时所处的上下文环境、双方的语言表达能力和理解能力的差异也会造成信息的进一步失真。
比如,当我们提到“特斯拉”这三个字时,背后隐含的背景知识就涉及到自动驾驶、电动汽车、汽车、马斯克等等相关的网状知识(这个网状知识是通过我们几十年的学习、工作和日常生活积累且会不断扩充的印记在脑中的信息,而且可以持续横向扩展和纵向深入),而如果没有这些背景知识的支持,“特斯拉”这三个字就只能是没有任何意义的三个汉字而已,“字都认识,但连在一起就不懂了”。
自然语言理解的一些具体挑战
除了背景知识的差异带来的障碍,还有一些具体的问题会进一步造成自然语言理解上的困难。我们还是以中文为例,举一些有趣的例子。看了这些例子后,大家可以尝试以程序员的角度思考下:计算机怎么去解决这样的问题?
-
中文的切分歧义问题
旧词新义问题
再比如下面这个例子,“娘”这个字前后的意思是不一样的,当然这里可能只是幽默性的调侃。但是计算机能理解这样的幽默吗?
-
一词多义问题
比如,“钢笔没水了”这个句子中的水,指的是墨水,ink。但谷歌翻译理解成了普通的水,water。除了“水”这个词的含义在不同搭配或上下文语境下的含义不同之外,这个例子也反映了机器翻译还缺乏相应的常识。
-
正说反说都一样
-
语言表达的地区差异及繁简体转换问题
三、自然语言理解:任重道远
通过前文所述,大家应该可以感受到,自然语言理解真的是任重道远。人类的常识问题、专业知识、语言上下文环境、各种歧义问题、语言进化问题、语言的地区差异问题等等,都是摆在NLP面前的一个个不小的挑战,甚至有时连人类自己也感到困难,进而影响我们日常的交流。
如果大家觉得此文对你有所启发,欢迎关注我的视频号,我会不定期的分享一些科普小知识,以及关于大数据、AI、数据智能、数字化产品技术等方面的探讨和思考。
以上是关于自然语言理解为什么这么难?的主要内容,如果未能解决你的问题,请参考以下文章
Python入门难吗?30年前的编程语言,为什么现在这么火?
Python入门难吗?30年前的编程语言,现在为什么这么火?