I.1 词义
义项(sense,或 word sense)是对一个词某一方面意义的离散表示。大体沿用词典编纂传统,我们用上标表示每个义项:bank1 与 bank2,mouse1 与 mouse2。放到语境中,不同含义很容易看出来:
mouse1:……1968 年,一只控制计算机系统的鼠标。
mouse2:……一种像老鼠一样安静的动物。
bank1:……银行可以把投资保存在托管账户中……
bank2:……随着河流东岸的农业蓬勃发展……
I.1.1 定义词义¶
怎样定义一个词义的含义?第 5 章介绍了标准的计算方法:把词表示为嵌入,即语义空间中的一个点。word2vec 或 GloVe 等嵌入模型的直觉是,一个词的意义可以由其共现情况来定义,也就是统计哪些词经常出现在它附近。但这并没有告诉我们如何定义一个词的某个义项。正如第 9 章所见,BERT 等上下文嵌入更进一步,提供了表示词在文本语境中意义的嵌入;我们还会看到,上下文嵌入正是现代词义消歧算法的核心。
不过首先需要考察词典和叙词表定义义项的其他方式。其中一种方式基于这样一个事实:词典或叙词表会为每个义项给出称为释义(gloss)的文字定义。下面是 bank 两个义项的释义:
接受存款并将资金投向放贷活动的金融机构;
倾斜的土地(尤其是水体旁的斜坡)。
释义并不是形式化的意义表示;它们只是写给人看的。以下是 American Heritage Dictionary(Morris, 1985)中 right、left、red 和 blood 的部分定义:
right adj. 位于更靠近右手之处,尤指面对与观察者相同方向时处在右侧。
left adj. 位于身体的这一侧,比右侧更近。
red n. 血液或红宝石的颜色。
blood n. 在动物的心脏、动脉和静脉中循环的红色液体。
请注意这些定义中的循环性。right 的定义两次直接引用了它自身;left 的词条则在短语“身体的这一侧”中含有隐含的自指,这里所说的想必就是左侧。red 与 blood 的词条在定义中相互引用。对人而言,这样的词条依然有用,因为词典使用者已经对其他这些词有足够的理解。
尽管释义具有循环性,也缺乏形式化表示,它们对词义的计算建模仍然有用。这是因为释义本身就是句子,而我们可以从句子计算句子嵌入,从中获取有关该义项含义的信息。词典还常常在释义旁给出例句,这些例句同样可以帮助构建义项表示。
叙词表定义义项的第二种方式与词典定义类似:通过一个义项同其他义项的关系来定义它。例如,上面的定义清楚表明,right 和 left 是同类词元,彼此之间存在某种交替或对立关系。同样,我们可以推知 red 是一种颜色,blood 是一种液体。这类义项关系(如 IS-A 或反义关系)会明确列在 WordNet 等在线数据库中。只要这类关系的数据库足够大,许多应用就能对词义执行复杂的语义任务(即使它们其实仍然分不清左和右)。
I.1.2 词有多少个义项?¶
词典和叙词表给出离散的义项列表。相比之下,嵌入(无论静态还是上下文化)提供的是连续、高维的意义模型,并不会将意义划分成离散义项。
因此,创建叙词表离不开一套标准,用来判断一个词的不同用法何时应该表示成不同的离散义项。如果两个义项拥有彼此独立的真值条件、不同的句法行为和独立的义项关系,或者表现出互不相容的意义,我们就可以把它们视为离散义项。
来看《华尔街日报》(WSJ)语料库中动词 serve 的以下用法:
(I.1) They rarely serve red meat, preferring to prepare seafood.(他们很少供应红肉,更愿意烹制海鲜。)
(I.2) He served as U.S. ambassador to Norway in 1976 and 1977.(1976 年和 1977 年,他担任美国驻挪威大使。)
(I.3) He might have served his time, come out and led an upstanding life.(他本可以服完刑,出狱后过正直的生活。)
“供应红肉”的 serve 与“服刑”的 serve 显然有不同的真值条件和预设;“担任大使”的 serve 则具有独特的次范畴化结构 serve as NP。这些启发式标准表明,它们很可能是 serve 的三个不同义项。判断两个义项是否不同的一种实用方法,是在同一个句子中并列一个词的两种用法;这种把彼此冲突的解读并列起来的修辞称为轭式搭配(zeugma)。请看:
(I.4) Which of those flights serve breakfast?(哪些航班供应早餐?)
(I.5) Does Air France serve Philadelphia?(法国航空有飞往费城的航班吗?)
(I.6) ?Does Air France serve breakfast and Philadelphia?(?法国航空供应早餐和费城吗?)
我们用问号(?)标记语义上不合格的例子。人为构造的第三个例子(一个轭式搭配)读起来很奇怪,说明无法合理地让 serve 的同一个义项同时适用于 breakfast 和 Philadelphia。这可以作为证据,表明这里的 serve 有两个不同义项。
词典往往采用许多细粒度义项来捕捉细微的意义差异。考虑到词典的传统作用是帮助语言学习者,这种做法很合理。出于计算目的,我们通常不需要如此细致的区分,因此常把义项分组或聚类;本附录中的一些例子已经这样处理。事实上,把实例聚类为义项,或者把义项聚类成更粗粒度的类别,本身就是一项重要的计算任务,我们将在 I.7 节讨论。