2024年4月29日发(作者:)
自然语言和计算机编程语言的比较
周锡令
2000年3月23日
2001/2/3修改
摘要:
计算机在处理编程语言方面的巨大成功 和 在自然语言处理方面的举步
维艰 形成了巨大的反差。“比较”是观察和分析事物的有效方法,把自然
语言和人工设计的语言进行一番比较也许能给我们一些工作上的启示。
作为信息传递的媒介,目前的计算机语言 和 自然语言 虽然在外表上有
很大差异,但是在实质上的确有不少相通或者互相对应的地方。从最初的
比较简单的计算机语言(例如初期的Basic)到后来越来越复杂的Fortran,
C, C++,我们可以看到把自然语言中的一些机制逐步添加到计算给语言中
的迹象。
计算机处理自然语言遇到重大困难,而人却能应付如裕,是因为人拥
有知识(包括社会生活常识以及各种专业知识),并且具有应用这些知识
来“解读”语句的能力。
自然语言是千百年以来为人际交流的目的而发展起来的。现在,人们
越来越多地“上网”,计算机越来越成为这个语言社会中的一个重要的参
与者。人们就会自觉、不自觉地根据计算机的“能力”去总结汉语的规律,
反过来影响,甚至改造人们的语言习惯。
一方面,技术向自然语言的深层冲击,另一方面,自然语言向现代技
术靠拢,这两方面的发展趋势会和起来,将会是解决“基于语义,基于理
解的自然语言处理”这一战略任务的过程中的一个重要特征。
自然语言与编程语言之间的相似点
序言
经过几十年的全球性的努力,以机器翻译为代表的计算机自然语言处理工作始终
没有达到人们预想的境界。于是我们竟不住要问:为什么电脑处理起“编程语言”
来那样轻松自如,可以作好多非常复杂的事情;而在一句普通的自然语言面前却
显得像一个大笨蛋呢?自然语言和编程语言的本质区别到底在哪里?
自然语言和编程语言显然有很多地方不同。但是作为“语言”,两者都面临语言
使用这所需要的一些要求:
(1)有强大的表达能力(能够把事情说清楚)
(2)结构化。人的短时记忆容量不多,信息如果不分层次,无论听说还是阅读
都会造成困难。
(3)具有简洁、浓缩表达的机制(使听说双方都不觉得罗嗦)。
在这两种要求的驱动下,两种语言都会发展出一些机制,这些机制在两种语言中
的表现可能大不相同,但是会存在某种对应关系。
在文科领域有所谓“比较文学”的行当。考虑到不同民族,不同文化发源地发展
出来的文学作品既有各自的特色,又有互通的共性,可以对它们的异同加以比较。
事实证明,从这种比较中,可以得到许多有益的启示。“比较”既然是观察和分
析事物的有效方法,把自然形成的语言和人工设计的语言(计算机编程语言就是
应用最为广泛的一种人工语言)进行一番比较也许能给我们一些工作上的启示。
语言的设计者
自然语言是在无数多人群之间的碰撞和交流之间产生、发展、筛选、淘汰之后形
成的,好比是“市场经济”的产物。
计算机编程语言(以下简称“编程语言”)则是“计划经济”的产物。它所使用
的词汇、规则都是事先由一位“上帝”(语言的设计者)策划好的。
词汇及其分类
“词”是自然语言中的基石,它们是具有语义的最小独立单位。
在编程语言中对应的东西就是token。Token是编译程序中的术语,它包括外形
像英语单词的 Word,以及“=, +, -, *, /, ==,>, <, (, ), ……” 之类的符号。
从信息处理的角度来看,“词”和token都是“符号(Symbol)”,它们可以被我们
“用来”映射到各种实体或者概念上去。根据一个符号所映射到各种实体或者概
念的性质来把它们进行分类。
语言学家把自然语言中的词划分为许多类:名词、动词、形容词、副词、数词、
连接词、感叹词、………。我们应该注意到,它们不是在同一级别上的。
名词 和 动词: 是最重要的。它们直接反映了我们对世界上形形色色的事物以
及这些事物之间的相互作用。
形容词、副词、数词、则是第二级的。它们只对事物以及这些事物之间的相互作
用起修饰作用。
剩下来的连接词、感叹词、………则是第三级的。它们主要起语法的作用。(用
发布者:admin,转转请注明出处:http://www.yc00.com/news/1714397161a2438951.html
评论列表(0条)