会员中心 |  会员注册  |  兼职信息发布    浏览手机版!    精选9.9元!    人工翻译    英语IT服务 贫困儿童资助 | 留言板 | 设为首页 | 加入收藏  繁體中文
当前位置:首页 > 机翻技术 > 机器翻译 > 正文

逻辑程序设计

发布时间: 2023-09-01 09:26:43   作者:etogether.net   来源: 网络   浏览次数:
摘要: PROLOG被证明是一种有用的工具,它建立在合一和搜索的概念基础上,这样,它提供了很多人工智能应用所必需的基本构造单元。


很多自然语言处理应用程序都是用编程语言PROLOG实现的,或者用建立在PROLOG上的某种扩充来实现。PROLOG被证明是一种有用的工具,它建立在合一和搜索的概念基础上。这样,它提供了很多人工智能应用所必需的基本构造单元。


PROLOG建立在霍恩子句(Horn clause)的概念基础上,霍恩子句可以定义为一个逻辑蕴涵式,蕴涵式的左侧是单一的简单命题。这样,PROLOG中的表达式:


friendly(fido1) :- dog(fido1) well-fed(fido1)


对应于断言:Fido是友好的,如果它是一条狗而且它吃饱了。这在一阶谓词演算中表达如下:


(Dog (Fido1 ) & Well-Fed(Fido1))⊃ Friendly( Fido1)


当然,更有用的规则会使用变量,以便应用于一系列的实体。一个关于“吃饱了的狗是友好的”一般性语句表达如下,其中,变量用一个大写字母开头的符号表示:


1. friendly(X) :- dog(X) well-fed(X)


这等价于一阶谓词演算中的断言Vx(DOG(x)&WELL-FED(x))⊃FRIENDLY(x)。在PROLOG中,它的解释是过程性的:对任何实体x,要证明x是友好的,可以证明x是一条狗,而且x吃饱了。


没有右侧的霍恩子句称为事实。要声明Fifi是一条狗而且它吃饱了,可以加入以下事实:


2.  dog(fifi) :-

3. well-fed(fifi) :-


使用子句1,子句2和子句3,PROLOG现在可以如下证明Fif是友好的:


Goal: Friendly(fifi)


使用合一算法,子句1被具体化以便用于这个目标(也就是说,变量X被绑定到ffi)


4. friendly(fifi) :- dog(fifi) well-fed(fifi)


为了根据这条规则给出目标的证明,需要证明以下子目标:


5. Goal: dog(fifi)

6. Goal: well-fed(fifi)


由于这些子目标就是子句2和子句3的断言,其证明是不言而喻的,所以初始的目标得到证明。


一般地,很多不同的规则可以应用于一个目标。可以逐个尝试它们,直到有一个成功。作为另外一个例子,考虑以下公理:


所有的鱼都生活在海里。


7. live-in-sea(X) :- fish(X)

所有的鳕都是鱼。


8. fish(X):-cod(X)

所有的鲭都是鱼。


9. fish(X) :- mackerel(X)

鲸生活在海里。


10. live-in-sea(X) :- whale(X)

Homer是一条鳕。


11. mackerel(homer):-

Willie是一头鲸。


12. whale(willie) :-


给定这些公理,系统可以证明Willie生活在海里,证明中使用的方法称为回溯搜索。它使用深度优先搜索策略来系统地搜索每一种可能的子句应用序列,用以检查目标是否确立。


图1显示了一个典型的PROLOG搜索,根据前面给定的子句,目标是:


live-in-sea(willie)


感觉PROLOG最好的办法就是运行系统,并使用跟踪工具来精确地观察它是如何工作的。


PROLOG系统在大多数类型的工作站和个人计算机上都可以得到。


图1.png

图1 live-in-sea(willie)的证明



责任编辑:admin



微信公众号

  • 上一篇:韵律和语调的机器处理
  • 下一篇:搜索算法介绍


  • 《译聚网》倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请30天内提供版权疑问、身份证明、版权证明、联系方式等发邮件至info@qiqee.net,我们将及时沟通与处理。


我来说两句
评分: 1分 2分 3分 4分 5分
评论内容:
验证码:
【网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。】
评论列表
已有 0 条评论(查看更多评论)