现有的编程语言当中,哪些和自然语言更接近?

 我来答
梨帅8198
2017-12-11 · TA获得超过493个赞
知道答主
回答量:256
采纳率:98%
帮助的人:57.1万
展开全部

用自然语言来编程,并不是一个重要方向。因为,编程,是解决问题,是一个从问题空间到解答空间的映射过程。重要的是,如何来做这个映射的。人思考问题,是抽象而完整的,解决问题时,意图也是完整的,但是如果描述为语言,则是片面的。比如,“桌子”这个物体,想像中是完整的,但语言来描绘,则是“桌面和四条桌腿”,是割裂的。这是说,语言本身不是解决问题的方法,如何完整地去描述,才是重点。因此比编程语言(甚至人类语言)更重要的,是我们怎么看待和模型化问题的。计算机语言的进化,也是朝更接近人类脑袋思考问题时的“建模”方式去靠近,并不是朝人类语言本身去靠近。比如面向对象的语言(如c++),并不是提供了“更自然的语言”,而是提供了能够用更接近人类自然思维的方法来表达事物的方法。因此,更“自然”的映射方法,比用更“自然”的“语言”来得重要得多。计算机语言的发展,追求的是前者而不是后者。现实中,高手可以用汇编语言写出非常优美的面向对象的系统出来,而新手往往用C++写出混乱不堪的代码团。常见的计算机语言中最接近自然语言的应该是SQL,他至少本身就是一句能读懂的英语。但是这个和人类语言差距其实还是很大,这与人思考描述问题的方式及计算机能理解的表达形式间的鸿沟有关。

282640urZSea
2017-12-11 · TA获得超过431个赞
知道答主
回答量:296
采纳率:96%
帮助的人:55.7万
展开全部

首先,自然语言区别于编程语言很大的两个特点就是随机性(stochastic)和模糊性(ambiguous)。这一票足够否决所有的编程语言。无论是词汇分析(lexical analysis),还是句法分析(parsing)。所以基本所有可以实际应用在自然语言处理的语法模型都是有概率的。

其次,自然语言受限制与编程语言受限制不在一个层面。理论计算机经常提到的乔姆斯基体系(Chomsky hierarchy),说的就是各种形式语言的限制以及表达能力。我个人认为最接近自然语言的,是其中限制最少的语言,也就是0型,也就是图灵机可以识别的递归可枚举语言(Recursively Enumerable)。而编程语言主要是在上下文无关语法(context-free)和正则语法(regular)的层面。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沉夜孤星cektfef3cff4
2017-12-11 · TA获得超过279个赞
知道答主
回答量:276
采纳率:94%
帮助的人:54万
展开全部

自然语言本身具有很强的歧义性,同样的语句在不同的环境下表达的意思可能是不同的。以英语为例,“bank”既是银行又是河岸。而计算机语言更多的是要求精确性。另外,计算机编程的目的是对事物进行一种抽象表达,按逻辑实现特定功能。而自然语言的目的是在所有层面表达任何事务及抽象概念。两者目的的不同决定了两者是不通用的。可以认为计算机语言是语言的一种分支,就像是口语与书面语并不相同。计算机语言就是我们对计算机说话时所用的语言,既然目的是进行沟通,我们自然要考虑到对方能够听懂的方式及常用的逻辑。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式