确定子句文法

转载自:https://mp.weixin.qq.com/s/dBwRTNeXKZi7Oux_wMWIYw

本章有两个主要目标:

1.  介绍上下文无关文法(CFGs)及其相关概念。

2.  介绍确定子句文法(DCGs),这是一种内置的prolog机制,用于处理上下文无关文法(以及其他类型的语法)。

 

 

1   上下文无关文法

Prolog已被用于许多目的,但是其发明者Alain Colmerauer对计算语言学很感兴趣,而这仍然是该语言的经典应用。而且,Prolog提供了许多工具,可以简化计算语言学家的生活,现在我们将开始学习以下最有用的工具之一:定义子句语法,或通常称为DCGs的语法。

DCGs是用于定义语法的特殊符号。因此,在进一步学习之前,我们最好学习一下语法。我们将通过讨论上下文无关语法(或CFGs)来做到这一点。上下文无关语法的基本概念很容易理解,但是不要误以为CFGs是玩具。他们不是。尽管CFGs的功能不足以应付所有自然语言的语法结构(即人类使用的语言),他们当然可以以一种相当自然的方式处理许多自然语言(例如英语和法语)的语法的大部分方面。

那么什么是上下文无关的语法?从本质上讲,这是一个有限的规则集合,它告诉我们某些句子在语法上(即在语法上是正确的)以及它们的语法结构实际上是什么。这是一小段英语的简单上下文无关语法:

 

s -> np vp

np -> det n

vp -> v np

vp -> v

det -> a

det -> the

n -> woman

n -> man

v -> shoots

 

这个小语法的成分是什么?好吧,首先请注意它包含三种类型的符号。有->,用于定义规则。然后是这样写的符号:s,np,vp,det,n,v。这些符号称为非终结符;我们将很快了解原因。这些符号中的每一个在语言学上都有传统的含义:s是句子的缩写,np是名词短语的缩写,vp是动词短语的缩写,det是确定词的缩写。即,这些符号中的每一个都是语法类别的简写。最后是符号:a,the,woman, man,和shoots。这些是终端符号,尽管计算机科学家可能将其称为字母,而语言学家可能将其称为词汇。我们通常只会称呼他们为单词。

该语法包含九个上下文无关的规则。上下文无关的规则由单个非终结符组成,后跟->,然后是由终结符和/或非终结符组成的有限序列。上面列出的所有九个项目都具有此格式,因此它们都是合法的上下文无关规则。这些规则是什么意思?他们告诉我们如何建立不同的语法类别。阅读->可以包含或可以构建。例如,第一个规则告诉我们,一个句子可以由一个名词短语和一个动词短语组成。第三个规则告诉我们,动词短语可以由动词后跟名词短语组成,而第四个规则告诉我们,还有另一种方法可以 建立动词短语:只需使用动词即可。最后五个规则告诉我们,a和the是决定因素,man和woman是名词,而shoots是动词。

现在考虑一下woman shoots man的那句话。根据我们的小语法,这是语法吗?如果是的话,它具有什么结构?以下树回答了两个问题:

 

在顶部,我们有一个标记为s的节点。该节点有两个子节点,一个标记为np,一个标记为vp。请注意,该图的这一部分与语法的第一条规则一致,该规则说s可以由np和vp构成。 (语言学家会说这棵树的这部分是由第一条规则许可的。)实际上,正如您所看到的,树的每一部分都由我们的一条规则许可。例如,标记为np的两个节点是根据规则许可的,该规则说np可以包含det后跟n。并且,在图的底部,女人开枪打男人的所有词都是有规则的。顺便提一下,请注意,终端符号仅装饰树底部的节点(终端节点),而非终端符号仅装饰树中较高的节点(非终端节点)。

这样的树称为解析树。解析树很重要,因为它们为我们提供了两种信息。首先,它们给我们有关字符串的信息。其次,它们给我们有关结构的信息。这是要把握的重要区别,因此,让我们仔细看看,并在此过程中学习一些重要的术语。

首先,如果给我们一串单词和一个语法,结果证明我们可以像上面的树一样构建一个解析树(即,树的顶部节点为,树中的每个节点被语法许可,并且我们给的单词字符串沿终端节点以正确的顺序列出),然后我们说该字符串是符合语法的(根据给定的语法)。例如,根据我们的小语法,a woman shoots a man的字符串是语法上的(实际上,任何合理的英语语法都将其分类为语法上的)。另一方面,如果没有这样的树,则字符串是不合语法的(根据给定的语法)。例如, 根据我们的小语法,字符串woman a woman man a shoots是不合语法的(英语的任何合理语法都将其归为不合语法的)。语法生成的语言由语法分类为语法的所有字符串组成。例如,a woman shoots a man也属于我们的小语法所产生的语言,a man shoots the woman也是如此。上下文无关识别器是一种程序,可以正确地告诉我们字符串是否属于上下文无关语法生成的语言。换句话说,识别器是一种将字符串正确分类为语法或非语法(相对于某种语法)的程序。

但是在语言学和计算机科学中&#x

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值