知识卡片

语言理解的三层分析与"翻译成功"不等于"理解"

专业/工作 · 1295.e

内容

早期研究者曾误以为,既然程序设计语言能被成功翻译成机器语言,自然语言理解也很快能实现——这个误判混淆了两种截然不同的语言:程序设计语言的每条语句只有一种语法结构和一种确定含义,而自然语言的同一个句子会因上下文和语境不同而有多种含义。要真正理解一句自然语言,需要三层分析:句法分析确定词语的语法角色(谁是主语);语义分析确定词语的语义角色(谁是动作发出者,不一定等于语法主语,”Mary 给了 John 一张贺卡”和”John 从 Mary 那收到一张贺卡”语法主语不同但语义完全相同);上下文分析则要引入句子之外的背景信息才能消歧(”the bat fell to the ground”里的 bat 是球棒还是蝙蝠,取决于是在讲棒球比赛还是洞穴探险)。发散:格雷斯·赫珀当年用德语演示编译器时,曾让管理者误以为”机器在学德语”,这个历史插曲恰好印证了这里的教训——形式语言的翻译只需要处理确定的语法结构,而自然语言的理解需要额外调用大量存储在人脑里、却极难教给机器的”世界知识”,这正是[[ASCII 的局限与 Unicode+UTF-8 的解法]]这类形式系统能被彻底解决、而自然语言理解至今仍是开放难题的根本原因。

参考来源

《计算机科学概论》第11章《人工智能》