
1
第8章自然语言理解
8.1 语言及其理解的基本概念
8.2 词法分析
8.3 语法分析
8.4 语义分析
自然语言是指人类日常交流所使用的语言。自然语言理解主要研究如何使计算机能够理解和生成自然语言。自然语言理解既是人工智能研究较早的一个领域,同时也是现代计算机的一个必备特征。
3
其主要任务是要找出词汇的各个词素,从中获得语言学信息,并确定单词的词义。以英语为例,其词法分析的基本算法如下:repeat
look for word in dictionary
if not found
then modify the word
until word is found or no further modification possible 其中,word 是一个变量,其初始值就是当前词。
例8.1用上述算法分析catches 。
解:其分析过程如下:
catches 词典中查不到
catche 修改1:去掉s
catch 修改2:去掉e
可以看出,在修改2时就查到了catch 。当然,这只是一个很简单的例子,完整的词法分析还应该包括复合词的切分等。8.2 词法分析
4
8.3 句法分析
句法分析是对句子和短语的结构进行分析,其最大单位是一个句子。分析的目的是要找出词、短语等的相互关系,以及他们在句子中的作用等,并用一种层次结构加以表达。这种层次结构可以是句子的成分关系、,也可以是语法功能关系。
8.3.1 句法规则的表示方法
8.3.2 自顶向下与自底向上分析
6上下文无关文法(Context-free Grammars)是乔姆斯基提出的一种对自然语言语法知识进行形式化描述的方法。在这种文法中,语法知识是用重写规则表示的。作为例子,下面给出了一个英语的很小的子集(图8.4)。语句→句子终标符
句子→名词短语动词短语
动词短语→动词名词短语
名词短语→冠词名词
名词短语→专用名词
冠词→the
名词→professor
动词→wrote
名词→book
动词→trains
专用名词→Jack
终标符→..
这就是一个英语子集的上下文无关文法
在该文法中,“语句”是一个特殊的非终极符,称为起始符。上下文无关文法(1/2)
The professor
trains自顶向下分析法
自顶向下分析,是指从起始符开始应用文法规则,一层一层地向下产生分析树的各个分支,直至生成与输入语句相匹配的完整的句子结构为止。
例如,图8-4所示的上下文无关文法,采用自顶向下分析方法对语句:
The professor trains Jack .
进行分析的过程是:
首先从起始符“语句”开始,正向运用规则:
语句→句子终标符
把分析树的根节点“语句”替换为它的两个子节点“句子”和“终标符”。
然后再对新生成的节点“句子”使用规则:
句子→名词短语动词短语
将其替换为两个子节点“名词短语”与“动词短语”。
对于“名词短语”,有两条规则可用,若按规则的排列顺序,则选用名词短语→冠词名词
将“名词短语”被替换为“冠词”和“名词”,生成两个新节点。对“冠词”使用规则:冠词→The
对名词使用规则:
名词→professor
以此进行…,得到如图8.8所示的自顶向下的分析树(略)。
10为了提高分析效率,可采用自顶向下与自底向上相结合的分析方法。
128.4 句义分析
语义分析就是要识别一句话所表达的实际意义。即弄清楚“干什么了”,“谁干的”,“这个行为的原因和结果是什么”以及“这个行为发生的时间、地点及其所用的工具或方法”等。
原因是语法分析,仅是在句法范围内根据词性信息来分析自然语言中句子的文法结构的。由于它没有考虑句子本身的含义,也就不能排除像The paper received the professor
这种在语法结构上正确,但实际意义上错误的句子。
目前,用于语义分析的技术比较多,本节仅简单介绍语义文法和格文法。
8.4.1 语义文法
8.4.2 格文法
8.4.1 语义文法
语义文法是在上下文无关文法的基础上,将“名词短语”、“动词短语”、“名词”等这些不含有语义信息的纯语法类别,用所讨论领域的专门信息,像“山”、“水”、“动物”、等这些具有很强语义约束的语义类别来代替。利用语义文法进行语义分析,就可以排除像“论文收到教授”这类无意义的句子。
例如,下面是一个关于舰船信息的语义文法的例子:
S →PRESENT the ATTRIBUTE of SHIP
PRESENT →what is | can you tell me
ATTRIBUTE →length | class
SHIP →the SHIPNAME | CLASSNAME class ship
SHIPNAME →Huanghe| Changjiang
CLASSNAME →carrier | submarine
在上述重写规则中,用大写英文字母的单词表示非终极符,小写英文字母表示终极符,竖线表示“或”的意思。
利用上述语义文法进行语义分析,可以从语义上识别以下的输入:
what is the length of the Huanghe?
Can you tell me the class of the Changjiang?
13
14
格和格框架(1/3)
格文法是以句子的中心动词为主导,并用格来表示其它成分与此中心动词之间的语义关系的一种描述方法。
“格”这个词来源于传统语法,但它与传统语法中的格有着本质不同。在传统语法中,格仅表示一个词或短语再句子中的功能,如主格、宾格、等,反映的也只是词尾的变化规则,故称为表层格。在格文法中,格表示的是语义方面的关系,反映的是句子中所包含的思想、观念等,故称为深层格。“格”是一个一般的概念,相对于中心动词的不同语义关系,格可以分为许多种。例如,在句子
John gave the book to Sally
中,相对于中心动词gave ,
John 是这个行为的发出者,称为动作格;
the book 是行为作用的对象,称为受动格;
Sally 是行为作用对象所到达的目标,称为目标格。
15
格和格框架(2/3)
一套正确的深层格究竟应包括多少个格,以及这些格的明确含义是什么,目前尚无定论。
下面给出一个描述行为的句子,它所涉及的深层格主要有:Agent (施事),动作主格,指行为的施动者;
Object (受事),受动者格,指行为作用的对象;
Co-Agent (共施事),帮助者格,指行为施动者的合作者;
Instrument (工具),工具格,指施事者或共施事者实现行为中所使用的对象;
Time (时间),时间格,指行为发生的时间;
Source (来源),来源格,指行为作用对象移出的位置;Goal (目标),目标格,指行为作用对象到达的位置;Trajectory (轨迹),轨迹格,指从来源到目标所经过的路径。
16
格框架是一种用来描述句子深层格的框架。
在格文法中,每个句子都联系着一个格框架。其中,框架名可以是相应句子的中心动词,框架的槽可分别对应于相应句子的各个深层格,每个槽的槽值为该深层格在相应句子中所代表的语义成分。
例如,前述句子分析结束时所得到的实际格框架为:
[GAVE
Agent: John
Object: the book
Source: John
Goal: Sally
]
8.4.2 格文法
格和格框架(3/3)
17作业题
8.2 对下列每个语句给出文法分析树:
(1) John wanted to go the movie with Sally.
(2) John wanted to go to the movie with Robert Redford.
(3) I heard the story listening to the radio.
(4) I heard the kids listening to the radio.
