I.5 其他 WSD 算法与任务
I.5.1 基于特征的 WSD¶
基于特征的 WSD 算法极其简单,其表现却几乎可以媲美上下文语言模型算法。表现最佳的 IMS 算法(Zhong and Ng, 2010)在加入嵌入后(Iacobacci et al., 2016;Raganato et al., 2017b),使用 SVM 分类器为每个输入词选择义项,并采用以下简单的上下文词特征:
词性标签(目标词左右各 3 个词的窗口,以句子边界为止);
位于目标词左右各 3 个词窗口中特定位置的词或长度为 1、2、3 的 n 元语法搭配特征(例如,恰好位于右侧一个词的位置,或从左侧第三个词开始的两个词,等等);
嵌入的加权平均值(目标词左右各 10 个词窗口内的所有词,权重随距离呈指数衰减)。
考虑下面这个《华尔街日报》句子中的歧义词 bass:
(I.18) An electric guitar and bass player stand off to one side,(一名电吉他兼贝斯手站在一旁,)
如果使用一个较小的、左右各 2 个词的窗口,标准特征向量可能包含词性、单元语法和二元语法搭配特征,以及嵌入的加权和 ,即:
这会得到以下向量:
[guitar, NN, and, CC, player, NN, stand, VB,
guitar and, player stand,
g(E(guitar), E(and), E(player), E(stand))]I.5.2 作为 WSD 基线的 Lesk 算法¶
生成 SemCor 这样的义项标注语料既困难又昂贵。另一类 WSD 算法称为基于知识的算法,它们完全依赖 WordNet 或其他类似资源,不需要有标签数据。虽然有监督算法通常表现更好,但如果某种语言或领域有叙词表或词典,却没有义项标注语料库,就可以使用基于知识的方法。
Lesk 算法是最早、也最强大的基于知识的 WSD 方法之一,是一种很有用的基线。Lesk 实际上是一族算法:它选择词典释义或定义与目标词上下文共享词数最多的义项。图 I.10 给出该算法最简单的版本,通常称为简化 Lesk 算法(Simplified Lesk algorithm;Kilgarriff and Rosenzweig, 2000)。
以 Lesk 算法的实际工作过程为例,考虑消解下面语境中的 bank:
(I.20) The bank can guarantee deposits will eventually cover future tuition costs because it invests in adjustable-rate mortgage securities.
(这家银行能够保证存款最终足以支付未来的学费,因为它投资于可调利率抵押贷款证券。)
并给定 WordNet 中的以下两个义项:
function SIMPLIFIED-LESK(word, sentence) returns best sense of word
best-sense ← word 的最高频义项
max-overlap ← 0
context ← sentence 中词的集合
for word 的每个 sense do
signature ← sense 的释义和例句中词的集合
overlap ← COMPUTE-OVERLAP(signature, context)
if overlap > max-overlap then
max-overlap ← overlap
best-sense ← sense
return best-sense图 I.10 简化 Lesk 算法。COMPUTE-OVERLAP 函数返回两个集合共有的词数,并忽略功能词或停用词表中的其他词。原始 Lesk 算法以一种更复杂的方式定义语境。
| 义项 | 释义 | 例句 |
|---|---|---|
| bank1 | a financial institution that accepts deposits and channels the money into lending activities | “he cashed a check at the bank”; “that bank holds the mortgage on my home” |
| bank2 | sloping land (especially the slope beside a body of water) | “they pulled the canoe up on the bank”; “he sat on the bank of the river and watched the currents” |
义项 与 (I.20) 的语境有两个非停用词重合:deposits 和 mortgage;bank2 则没有任何词重合,因此选择 bank1。
简化 Lesk 有许多显而易见的扩展。例如,可以用 IDF(逆文档频率,第 5 章)给重合词加权,从而降低功能词等高频词的权重;表现最好的做法是使用词嵌入余弦相似度来计算定义与语境的相似度,而不是使用词汇重合数(Basile et al., 2014)。Lesk 的现代神经扩展使用定义来计算义项嵌入,这些嵌入可以直接取代基于 SemCor 训练的嵌入(Kumar et al., 2019;Luo et al., 2018a;Luo et al., 2018b)。
I.5.3 语境中词评估¶
与第 5 章介绍的无语境词相似度任务相比,词义消歧对词义的评估要细致得多。回想一下,LexSim-999 等任务要求系统匹配人类对两个词在无语境条件下相似度的判断(例如,cup 与 mug 有多相似?)。我们可以把 WSD 看作一种上下文化的相似度任务,因为我们的目标是区分 bass 在一个语境(演奏音乐)中的意义与在另一个语境(钓鱼)中的意义。
介于两者之间的是语境中词(word-in-context)任务。在这里,系统得到两个句子;它们包含同一个目标词,但句子语境不同。系统必须判断目标词在两个句子中使用的是同一个义项,还是不同义项。图 I.11 展示了 Pilehvar and Camacho-Collados(2019)的 WiC 数据集中的样本对。
F Justify the margins.(使页边距对齐。)— The end justifies the means.(目的使手段正当。)
T Air pollution.(空气污染。)— Open a window and let in some air.(打开窗户,让空气进来。)
T The expanded window will give us time to catch the thieves.(延长的时间窗口会给我们时间抓住窃贼。)— You have a two-hour window of clear weather to finish working on the lawn.(你有两小时的晴好天气窗口来完成草坪作业。)
图 I.11 WiC 数据集中的正例(T)和反例(F)(Pilehvar and Camacho-Collados, 2019)。
WiC 句子主要取自 WordNet 各义项的用例。但 WordNet 的义项非常细。因此,语境中词之类的任务首先把词义聚合成更粗的簇;如果目标词在两个句子语境中的两个义项属于同一簇,就标记为 T。WiC 会把在 WordNet 语义图中具有一度连接的义项对(包括姐妹义项),或者属于同一超义项的义项对,聚合到一起。本附录末尾还会提到其他义项聚类算法。
解决 WiC 任务的基线算法使用 BERT 等上下文嵌入,并对余弦相似度设置一个简单阈值。首先计算目标词在两个句子中的上下文嵌入,再计算二者的余弦相似度。如果相似度高于在开发集上调好的阈值,就回答“真”(两个义项相同);否则回答“假”。
I.5.4 以 Wikipedia 作为训练数据来源¶
除 SemCor 外,其他数据集也被用于全词 WSD。一个重要方向是把 Wikipedia 用作义项标注数据的来源。某个概念在 Wikipedia 文章中被提及时,文章文本可能包含指向该概念 Wikipedia 页面的一条显式链接,而该页面有唯一标识符。这个链接可以用作义项标注。例如,歧义词 bar 会根据语境中的含义链接到不同 Wikipedia 文章,包括 BAR (LAW)、BAR (MUSIC) 等页面,如以下 Wikipedia 示例所示(Mihalcea, 2007):
In 1834, Sumner was admitted to the [[bar (law)|bar]] at the age of twenty-three, and entered private practice in Boston.
(1834 年,萨姆纳在 23 岁时获准加入律师界,并在波士顿开始私人执业。)
It is danced in 3/4 time (like most waltzes), with the couple turning approx. 180 degrees every [[bar (music)|bar]].
(它采用 3/4 拍,与多数华尔兹一样;舞伴每个小节大约转动 180 度。)
Jenga is a popular beer in the [[bar (establishment)|bar]]s of Thailand.
(Jenga 是泰国酒吧中很受欢迎的一种啤酒。)
这些句子随后可以加入有监督系统的训练数据。不过,要以这种方式使用 Wikipedia,必须把 Wikipedia 概念映射到 WSD 应用所需的义项清单。例如,从 Wikipedia 映射到 WordNet 的自动算法,会寻找与 Wikipedia 义项词汇重合度最大的 WordNet 义项:它把 WordNet 同义词集、释义及相关义项构成的词向量,与 Wikipedia 页面标题、出站链接和页面类别构成的词向量进行比较(Ponzetto and Navigli, 2010)。由此产生的映射已被用于创建 BabelNet——一个大型义项标注资源(Navigli and Ponzetto, 2012)。