CLS2.5: Encoding selectional preferences in a lexical database

(词汇数据库中的选择优先性编码)

Diane Nicholls & Dominic Glennon, 1996年3月28日

(Doubtfire整理,2000年10月23日)

1. 引言

要达到生成合法句子形式的目的,句法和语义的标准都必须满足。这样的标准是通过句子中的词语内在地施加影响的。比如,动词put必须跟一个对象宾语和一个介词短语或附词短语,因此下面这样的表达就是不合法的:

* John put the book

像上述这样的对动词以及形容词的句法约束已经有很多研究成果了。而在语义约束方面的研究相对就少一些。比如动词assassinate(暗刺),在使用这个动词时,对它的主语和宾语有一些要求:主语必须是“人”,宾语必须也是“人”,而且还必须是在政治上或社会地位上非常重要的人(比如一个人不能“暗刺”他的岳母)。

上述对词语在句中出现时的搭配限制,就是我们所谓的选择优先性(selectional preference)。很显然,大多数词语都有这样的选择优先性现象。我们首先选择动词,然后是形容词的论元,来描述这种选择优先限制。理解这些限制,对一个英语学习者来说至关重要。而且,对语料库进行语义标注,这样的选择限制描述也是一个重要的资源。

由此,我们的工作就涉及到了两个重要领域:首先是为词典编纂者构造了一个重要的工具可以精化和提高词典释义。其次是提供资源,将CIDE的义项标注到语料库的词语上。

 

1.1 一个分三层的选择优先编码系统(a three-tier system for encoding preference)

 

不幸的是,以往在选择优先方面的研究表明,由于人跟机器的需求不同,上述两个目标是不兼容的。义项标注器(sense tagger),没有上下文语境推理能力,需要一个粗糙的,低水平的编码,来描述一个词语所有可能出现的(句法)位置,而无法考虑上下文。而对一个词典编纂者来说,则是希望尽可能精确地把握“某种类型”的词是否能出现在一个论元位置上。比如,当我们定义动词 steal (偷)时,词典编纂者可能把它的主体论元(subject argument)定义为 thief (贼)。如果 一个义项标注器使用这个信息,当它遇到下面这个句子:

A 10-year old boy stole an 80-year old lady's purse last Friday.

它没有办法将“old boy”确定为一个 thief,除非 boy 在优先选择描述中已经被特别地申明为是属于 thief 类的。如果真这样做的话,所有的能发出“偷”行为的名词就都要个别地申明它跟 thief 类的关系,而 boy 能发出的所有动作行为,也必须类似地加以申明。

显然,这是不能容忍的。于是一个分三个层次进行语义选择限制描述的系统就产生了。 在为义项标注器进行语义优先选择描述时,我们建立了一个有35个类的分类系统,覆盖词库中所有的词条。第一步是将词库中所有的名词归入到这些语义类中。40000个名词由一个熟悉上述分类和分类标准的小组来进行归类工作。同样也是这个小组再对词典中的动词进行编码处理,指明动词可能的论元所属的类——这就是在最高的类(class)的层次上进行语义选择约束第二个层次是由编写词典的词典学家(lexicographer)完成的。这个层次不是在类的层面上进行语义选择约束,而是以自然语言来描述(description)可能出现在那些论元位置上的名词的情况最后一个层次是对出现在给定动词的特定论元位置的高频词项加以记录,这是所谓的特定词描述层次(specifics)

由此,对动词assassinate的语义编码就呈现为如下形式:

===============================Selectional_preference===========================

Headword  

assassinate

Field  

DEF 1

Text

Grammar  

T

SELECTIONAL  

PREFERENCE

Position  

Class  

Description Specifics

SUBJ

Human  

assassin  terrorist, fanatic

OBJ

Human

important/influential_per president, prime minister
Order      
Notes      

编码人员所采用的语义分类系统如下所示:

1.2 语义优先选择描述所基于的语义分类系统(Semantic classes for selectional preference coding)

_=Anything

Animate
     |
     |_ Human (+gods etc.)
     |      |
     |      |_ Group (+institutions)
     |
     |_ Animal (+dragons etc.)
     |
     |_ Plant
     |
     |_ Body Part (+plant part)

 

Inanimate
     |
     |_ Object
     |      |
     |      |_ Device
     |      |_ Instrument (measuring, musical etc.)
     |      |_ Money
     |      |_ Vehicle
     |      |_ Container
     |
     |_ Places
     |      |
     |      |_ Building (all constructions)
     |
     |_ Substances
     |
     |_ Solid
     |_ Liquid
     |     |
     |     |_ Drink
     |
     |_ Gas
     |_ Food
     |_ Clothing
     |_ Energy


Abstract
  |
  |_ Time
  |
  |_ Measurement (+Amounts/levels)
  |
  |_ Sound
  |
  |_ Activity (actions, movements)
  |
  |_ Quality (+ability, colours)
  |
  |_ Sensations (+emotions, feelings)
  |
  |_ Event
  |
  |_ Communication (+Language, symbols, communicated things etc.)
  |
  |_ Process
  |
  |_ Belief (+knowledge, systems, science, disciplines, styles)
  |
  |_ State (+conditions, diseases)

 

在上述分类体系中,“事物”(entities)被分成三个大领域:Animate(有生物), Inanimate(无生物)和Abstract(抽象物)。经常会出现这样的情况,一个名词会有多个语义节点,比如fish,既可以是“有生物”,又可以是“食物”;Leech(蚂蟥,寄生虫,吸血鬼)既属于“有生物”,又属于“人”,因为在比喻的意义上,Leech可以指某种人(parasitic person); windmill既可以是一个“建筑物”(Building),也可以是一个“装置”(Device)—— 风车磨坊 / 风车

尽管上述分类系统中的大多数类都是自明的(self-evident),但抽象物这个类里的语义小类对编码者而言仍然涉及到概念问题。各人对抽象概念的理解都会不同,比如acitivity和process之间的区分。为了尽可能避免由于编码者主观判断造成的不一致问题,这些概念都有必要进行仔细的定义。附录A对这些概念进行了概要描述,并配上了例子。

1.3 在语义类的层次上对动词语义搭配限制进行编码(Procedures for the top-level coding of verbs)

1.3.1 Lexicon sets(词汇集合)

动词被按照语义上的相似程度分成一堆堆的词汇集合(lexicon set)。比如,abandon, abdicated, forego, relinquish (中文意思:放弃,舍弃)这些动词属于这样的语义类“giving up verbs”(“放弃类动词”),该类有49个成员。对同一个语义类中的这些成员来说,它们的主语大致是一样的,而且适用的语法模式也是相同的。

1.3.2 Coding argument positions and behaviours(对论元位置和语法行为进行编码)

在selectional_preference窗口的“Position”字段,编码者要标注动词论元对名词的语义类约束信息,包括 SUBJ(主体,主语),OBJ(客体,宾语),PREP(是否有介词短语论元),以及对介词是否有特定的要求。如果OBJ或介词短语是可选的(不是必用的),就把它放在开放括弧里(只有左括弧,没有右括弧)。比如动词 eat 的编码形式就是:

SUBJ Human/Animal
(OBJ Food

这表示 eat 这个动词实际上有及物和不及物两种用法。

而像“Columbus sailed (across) the Atlantic.”这个句子,只有介词是可选的,就将介词放入到封闭的括弧里(左右括弧都有):

SUBJ   Human/Vehicle
(across)   Place

如果有两个以上的语义类可以适用于同一个特定论元,就用斜线 / 分隔开(上面 eat和 sail两个动词的 主体论元 描述就都使用了斜线)。不过需要注意主客体论元的语义约束都是多选时的情况,不能简单的罗列,比如下面这样的描述是不妥的:

SUBJ Human/Object
OBJ Abstract/Human

因为这实际上允许了  Object VERB Human 这样一种配列形式。

以 raise (养育) 为例,[人] 可以 养育 [人 | 动物 | 植物](有生物,animate),但 [动物] 只能养育 [动物],这就需要分离为两个义项来描述:

Selectional Preferences
----------------------------------------------------------
1 |DEF |1 |T |Human RAISE Animate
2 |DEF |2 |T |Animal RAISE Animal
3 |DEF |3 |T |to take care of until completely grown

如果一个动词能带两个对象,而且有两种表现形式:双宾语形式(John gave Mary the book)和带介词短语的结构形式(John gave the book to Mary),那么就只描述后一种结构,而前一种结构可以相应地自动生成。

编词典者总是对动词的主动语态(active)用法进行编码,尽管有些例句是被动态(passive),甚至总是以被动态的语法形式出现。在这样的情形下,就由义项标注器的句法分析部分来自动地完成转换。

如果是对动词短语(multi-word unit)进行语义搭配选择限制描述,就将该短语看作一个动词来加以刻画。比如:如果“put [ obj ] down for”在CIDE中作为一个短语动词(phrasal verb)处理,那么它的编码就是:

SUBJ Human/Group
OBJ Human/Group
OBJ Measurement/Money

如果上述义项落在动词“put”上(不是落在整个短语上),那么介词“down”和“for”就跟一般的论元一样处理:

SUBJ Human/Group
OBJ Human/Group
down
for
Measurement/Money

 

1.3.3 Identifying typical subjects and objects of verbs(确认动词的典型主体和客体)

编码者可以基于CIDE,通过内省的方式(包括他们自己对例句的知识和百科知识以及语言直觉),来确定动词的典型主体和客体。比如,对动词assassinate,像上文例子中所显示的那样,只有[+人]才能assassinate,也只有[+人]才能被assassinate。一般来讲,编码者必须在[Animate],[Inanimate], [Abstract]中为一个动词的主体和客体论元选择一个语义类约束,但也不排除没有限制的情况,即所有类均可(anything class),这时就以“-”表示,比如动词“like”的情形即是如此。根据CIDE,like的客体(object)可以是someone,也可以是something。编码者可以根据自己的直觉将like一词的Object取值为 - 。

1.3.4 Identifying sense differences using selectional preferences(通过语义选择优先差异来确认多义词的义项)

实例可能显示原先的词典释义需要重新加以考虑,语义选择优先编码实际上为词典编纂者提供了重要的帮助,使得人们能够更好地考虑词语义项分合的问题。比如下面是动词 remove 的情况:

Selectional preference
---------------------------------------------------------------
1 DEF 1 T Human/Group REMOVE - (from* 1* 0 -)
2 DEF 2 T Substance REMOVE - (from* 1* 0 -)
3 DEF 3 T to take (something) away (from a place)
4 EG 1   The men came to remove the rubbish (<CL> from <>
5 EG 2   She angrily asked him to remove him <CL> self 
6 EG 3   This detergent will remove all stains from you
7 EG 4   She had her legs waxed to remove unwanted hail
8 EG 5   It got so hot that he removed his tie and jack
9 EG 6   Communication REMOVE Sensations (about* 1* 0 -
10 EG 7   They decided to remove their son from the scho

例1,2,5,7显示 remove 的编码应该是:

Human/Group/Animal remove Animate/Inanimate (from Place)

例3,4显示 remove 的编码应该是:

Substance remove Object (form Place)

例6的词汇化的例句如:

your opinion has removed <G> got rid of my last doubts / fears

这就对应者这样的编码:

Communication remove Sensations

上述这些意义差别提醒词典编纂者 动词 remove 的这个义项在将来修订词典时可能应单独加以考虑,重新安置(relocation)。

2 Applications (应用)

2.1 The CLS sense tagger  (CLS 义项标注器)

给定下面这个英语句子:

The head asked the pupil a question

义项标注器对上句中各个名词面临多选的问题,比如对Head,就可能是 Head<Body Part>; Head<Mind>; Head<Top Part>; Head<Leader>; Head<Device>。对Pupil,就可能是Pupil<Student>; Pupil<Eye>。 对Question,就可能是Question<Asking>; Question<Problem>。 义项标注器需要对句子进行句法分析,得出这个句子是一个双宾语构造(double-object consturction)。不过这个信息对于准确标注其中词语的义项还是不够的。 

我们来看 动词 ask 的语义选择编码情况:

===============================Selectional_preference===========================

Headword  

ask

Field  

EG 1

Text *She asked me a question./<L>fml<> She asked a question<CL> of<> me.*
Grammar + two objects

SELECTIONAL  

PREFERENCE

Position  

Class  

Description Specifics

SUBJ

Human/Group  

   

OBJ

Communication

   
of *14* 0 Human/Group    

根据句中名词不同义项所属的不同语义类可以进行正确的语义标注。下面是这些名词义项的不同语义类(黑体)

Head<Body Part> = Body part
Head<Mind> = State
Head<Top Part> = Object
Head<Leader> = Human
Head<Device> = Device

Pupil<Student> = Human
Pupil<Eye> = Body part

Question<Asking> = Communication
Question<Problem> = Abstract

基于上述语义知识,义项标注器能够将上面这个例句的名词义项进行正确的标注:

The head <LEADER> asked the pupil <STUDENT> a question <ASKING>

上述处理过程可参见附录B图示。

 

2.2 Lexicography (词典编纂)

语义选择限制编码对词典编纂显然也是一个有用的工具,比如上面例子 remove 的义项分析。

 

3 The way ahead(未来之路)

一旦CLS语料库成功地进行了分析处理(parsed),我们将可以自动地抽取动词的主体(subject)和客体(object),并在语义类的层面上对动词进行语义选择优先性描述。

将来还需要进一步调整我们的语义分类树,加入新的类,并对现有的类进行细分。