深夜,后厨新来的帮厨小裴遇到一份从未见过的菜名——“蚂蚁上树”。没人教过、没做过、连菜谱都没见过。他愣了几秒,忽然想起:粉丝像面条,肉末像肉馅,这大概是一道快炒的家常菜。他凭着“做菜的道理相通”,认出了这道没见过的菜。这个瞬间,就是“零样本”最生动的写照:没见过的,也能认出来。 在 AI 领域,有个任务叫“事件抽取”,让机器从新闻、公告、报告里识别“发生了什么事”。传统做法像学徒制——给机器看成千上万条标注好的例子,练熟了才上岗。可现实中,突发事件、新政策、新热点层出不穷,等我们攒够标注样本,事件早就过时了。于是科学家想让机器“触类旁通”:借助语义泛化、原型匹配、提示学习、事件本体迁移,让没有标注过的新事件类型也能被抽出来。 接下来的几分钟,我们陪小裴一起,从零搭建一套“零样本事件抽取”的直觉。

岗位关联

没见过的也要认得出——这就是零样本事件抽取给 AI 的“帮厨直觉”,也是从业者在快速变化世界中不被新事件甩下的核心能力。

目录
  1. 可视化演示
  2. 事件抽取基础:厨房里的流水账
  3. 零样本难题:菜单上没有的新菜
  4. 语义泛化:做菜的道理是相通的
  5. 原型匹配:照着印象卡认菜
  6. 提示学习:总厨的小纸条
  7. 本体迁移:搬来一整个厨房的知识
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

原型匹配零样本 新事件类型构建原型向量 语义相似度匹配最近原型 type = argmax cos(e, proto_i) 无需标注样本识别新类型

事件抽取基础:厨房里的流水账

小裴每日的工作,一句话就能概括——把厨房里发生的事记成流水账。“下午三点,张师傅起油锅炸了排骨,撒上花椒”会被记作“16:00 张师傅油炸排骨,调料花椒”。事件抽取就是让机器干小裴的活儿:给一段“发生了什么”的文字,输出结构化的事件记录。

在 AI 里,这个任务的输入是一句话或一篇报道,“流水账”则变成一条事件记录。一条记录通常有三个核心要素:事件类型、触发词、论元。比如“凌晨突发 5.1 级地震,房屋剧烈摇晃”,类型是“地震”,触发词是“突发、摇晃”,论元是时间“凌晨”、级别“5.1 级”、对象“房屋”。丢了三要素中任何一个,这条“流水账”都不完整。

事件记录可以形式化表示为:事件类型决定了这条记录归到哪个抽屉,触发词是抽屉上的把手,论元则是抽屉里的物品清单。传统做法是监督学习:先标注几千篇文档,告诉机器哪个词是触发词、哪个词组是论元,再训练序列标注或分类模型。这就像小裴跟在总厨身后,同一道菜翻来覆去做几百遍才记得住。

E=(T,ω,A),T∈Y,A={(a1,r1),(a2,r2),…,(ak,rk)}\displaystyle E = (T, \omega, A), \quad T \in \mathcal{Y}, \quad A = \{(a_1, r_1), (a_2, r_2), \dots, (a_k, r_k)\}

1. E 表示一条结构化事件记录:E 取 Event 的首字母,代表机器从文本里抽出的“流水账”,是整个抽取任务的最终产物。

E\displaystyle E

2. T 是事件类型:T 表示“发生了什么”,比如地震、火灾、暴雨,它的取值范围是预先定好的候选类型集合。

T∈Y\displaystyle T \in \mathcal{Y}

3. ω 是触发词:ω 是句中直接表明事件发生的核心词,如“突发”“摇晃”,它是识别事件的“扳机”。

ω\displaystyle \omega

4. A 是论元-角色对集合:集合里每一对是一个论元及其扮演的角色,如“(凌晨,时间)”“(5.1 级,强度)”,它让事件记录变得丰满、可用。

A={(a1,r1),(a2,r2),…,(ak,rk)}\displaystyle A = \{(a_1, r_1), (a_2, r_2), \dots, (a_k, r_k)\}

对小裴而言,记流水账就是零样本的“基本功”:只有先知道自己要记哪几项,后面才谈得上去认新菜。机器也一样,三要素的规范是后续一切技巧的舞台。

零样本难题:菜单上没有的新菜

某一天,菜单上多了“蚂蚁上树”。小裴既没做过,也没见人做过。按老规矩,他得把这道菜反复做上几百遍才能学会识别,可客人已经坐满了大堂。他必须在“一次都没做过”的情况下,当场认出这道新菜。

这个困境在 AI 世界里每天都在发生。技术里,“没做过的菜”就是新事件类型——新发传染病、新出台的政策、新型网络诈骗。训练阶段用到的类型集合,和测试阶段突然冒出来的类型集合,常常没有任何交集。如果模型只会从标注样本里死记硬背,交集为空时它就彻底抓瞎。

零样本事件抽取的目标,正是让模型在与训练类型不重叠的新类型集合上仍然做出正确判断。公式化的描述是:我们把已标注的旧类型训练好,可最终考核却是从没见过的新类型。想考好,就必须让特征表达和决策方式“泛化”到没见过的地方。这就是零样本最核心的挑战。

f⋆=arg⁡max⁡f  E(x,y)∼Ds[log⁡Pf(y∣x)],s.t.  Ys∩Yt=∅\displaystyle f^{\star} = \mathop{\arg\max}_{f} \; \mathbb{E}_{(x,y)\sim \mathcal{D}_s} \big[ \log P_f(y \mid x) \big], \quad \mathrm{s.t.} \; \mathcal{Y}_s \cap \mathcal{Y}_t = \varnothing

1. f* 是最优抽取函数:f 是“句子到事件类型”的决策函数,加星号表示在所有候选函数里挑一个表现最好的。

f⋆=arg⁡max⁡f\displaystyle f^{\star} = \mathop{\arg\max}_{f}

2. 期望与对数概率:先对句子 x 属于旧类型 y 的预测概率取对数,再在旧类型训练集上求平均,表示“模型得把旧类型学扎实”。

E(x,y)∼Ds[log⁡Pf(y∣x)]\displaystyle \mathbb{E}_{(x,y)\sim \mathcal{D}_s} \big[ \log P_f(y \mid x) \big]

3. 约束条件——零样本的数学含义:训练时出现的类型集合与测试时出现的类型集合没有交集,这是“零样本”最严格的定义。

Ys∩Yt=∅\displaystyle \mathcal{Y}_s \cap \mathcal{Y}_t = \varnothing

就像小裴能从“没见过的菜”里悟出规律,模型也得靠“别的东西”撑起这份直觉。下一节,我们看它的“触类旁通”从哪里来。

语义泛化:做菜的道理是相通的

小裴认真琢磨“蚂蚁上树”这道菜名:蚂蚁是肉末,上树是粉丝挂着肉末;粉丝长得像面条,肉末炒出来像麻婆豆腐的臊子。他虽没做过这道菜,但“粉丝、肉末、快炒”这些概念早已烂熟于心——这就是“道理相通”。

机器把“道理相通”叫做语义泛化。在抽取系统里,词不是孤立的字符串,而是被映射成语义空间里的一个向量。训练时模型见过“地震”与“房屋倒塌”常一起出现,于是当文本里突然出现“地动山摇”,即使这个词从未与“地震”配对过,模型也能凭借向量空间的位置关系推断二者高度相关。

衡量两个语义向量像不像,最常用的指标是余弦相似度。它只比较向量之间的方向和角度,不比较绝对长度。因此“地震”和“地动山摇”即使词频差异很大,只要方向接近,相似度就高;而“地震”和“会议”方向差得远,得分自然低。这一性质非常契合语义匹配:一个词被使用多少次,不影响它“像谁”。

sim(u,v)=cos⁡(u,v)=u⋅v∥u∥ ∥v∥\displaystyle \mathrm{sim}(u, v) = \cos(u, v) = \frac{u \cdot v}{\|u\| \, \|v\|}

1. u·v 是点积:把两个向量对应位置相乘再求和,衡量它们在各个维度上“同向”的程度,结果越大越相似。

u⋅v\displaystyle u \cdot v

2. ||u|| 与 ||v|| 是模长:分别表示两个向量从原点出发的欧氏距离,它们的作用是把长度“归一化”,抵消向量长短的干扰。

∥u∥ ∥v∥\displaystyle \|u\| \, \|v\|

3. 除以模长后只看方向:分母把向量缩放到单位长度,剩下的余弦值只反映夹角,这就是“地震”与“地动山摇”不会因词频悬殊而被误判的原因。

u⋅v∥u∥ ∥v∥\displaystyle \frac{u \cdot v}{\|u\| \, \|v\|}

4. sim 的取值范围:越接近 1 表示方向越一致,接近 -1 表示方向相反,0 表示彼此无关,帮助人判断“像不像”。

sim(u,v)∈[−1,1]\displaystyle \mathrm{sim}(u, v) \in [-1, 1]

小裴靠这套“概念向量”,把没见过的菜翻译成“粉丝≈面条”“肉末≈肉馅”。有了泛化,机器才敢说:新类型,我也有点感觉了。那么,感觉要如何变成结论?

原型匹配:照着印象卡认菜

小裴给见过的每道菜都留了一张“印象卡”,上面写着这道菜最显眼的几个关键词。新菜上桌,他先在脑中画出它的特征,然后拿着这张“新面孔”与所有印象卡逐一比对。哪张卡最像,他就说这是哪道菜——简单、直接,还讲得出理由。

原型匹配正是把这个思路操作化。第一步,为每个候选事件类型写一段“描述文本”。比如“地震”的描述可以写成“地震、地动、摇晃、震中、伤亡、救援、房屋倒塌”;“火灾”写成“火灾、起火、燃烧、消防、浓烟、烧毁”。第二步,把这段描述文本编码成特征向量,这个向量就是该事件类型的“原型”——相当于一张标准印象卡。

对输入句子做同样的编码,得到一个句子向量。接着把句子向量与每个原型计算相似度,再经过一个带温度系数的 softmax 做归一化,就得到每个事件类型的预测概率。温度系数控制判断的“锐利度”:温度越低,模型越倾向一锤定音;温度越高,各类型得分越接近。工程上还会设置置信度阈值,只有最高概率超过阈值才对外输出,否则转人工复核。

P(yi∣x)=exp⁡(cos⁡(hx,pi)/τ)∑j=1mexp⁡(cos⁡(hx,pj)/τ)\displaystyle P(y_i \mid x) = \frac{\exp\left(\cos(h_x, p_i) / \tau\right)}{\sum_{j=1}^{m} \exp\left(\cos(h_x, p_j) / \tau\right)}

1. h_x 是句子编码向量:把整句话压缩成一个向量,相当于小裴脑中对新菜形成的“即时印象”。

hx\displaystyle h_x

2. p_i 是第 i 个类型的原型向量:由类型描述文本编码而来,是全类型“标准印象卡”的数学化身。

pi\displaystyle p_i

3. 分子是指数化的相似度:相似度越高,指数结果越大,该类型在竞争中越占优势,τ 负责调整优势的敏感度。

exp⁡(cos⁡(hx,pi)/τ)\displaystyle \exp\left(\cos(h_x, p_i) / \tau\right)

4. 分母做全局归一化:把所有类型的指数得分相加,让分子除以分母后得到总和为 1 的概率分布,方便跨类型比较和设定阈值。

∑j=1mexp⁡(cos⁡(hx,pj)/τ)\displaystyle \sum_{j=1}^{m} \exp\left(\cos(h_x, p_j) / \tau\right)

零样本的“认菜”在原型匹配里走完最后一公里:小裴没做过蚂蚁上树,但它的“印象”和“家常快炒”卡最像,于是成功认菜。原型匹配简单、可解释、易上线,因此至今仍在生产环境占有一席之地。可是,如果类型描述本身写不好怎么办?换条路——请出总厨。

提示学习:总厨的小纸条

小裴偶尔也会拿不准。这时总厨递来一张只写了一半的话:“这道菜是,因为用到了。”小裴对着小纸条填空,填着填着,答案自己浮了出来。他负责跑腿,总厨负责经验——这就是提示学习的分工。

提示学习把事件抽取重构成一个完形填空任务。我们不再训练新的分类头,而是精心设计一个模板,把原句嵌入其中,并留下一个 [MASK] 占位符,让预训练语言模型去填。模板大致长这样:“据报道,[原句] 这是一起____事件。”模型在空位填入“地震”,我们再通过“答案词→事件类型”映射表,把“地震”映射为目标类型。

这里用到的核心概率是掩码语言模型的条件预测:给定上下文 [MASK] 以外的所有词,模型对词表里的每个候选词打分,得分最高的词被填入空位。所谓“零样本”,是因为我们完全没有为“地震”准备标注样本——我们只是借用了模型在预训练阶段读过的海量文本。模板是唤醒记忆的引子,而非新的教材。

P(wi∣x∖i)=exp⁡(hwi⊤h[MASK])∑w′∈Vexp⁡(hw′⊤h[MASK])\displaystyle P(w_i \mid x_{\setminus i}) = \frac{\exp\left(h_{w_i}^{\top} h_{\mathrm{[MASK]}}\right)}{\sum_{w' \in \mathcal{V}} \exp\left(h_{w'}^{\top} h_{\mathrm{[MASK]}}\right)}

1. w_i 是待填词:指模板 [MASK] 位置应当出现的词,例如“地震”“火灾”,它是事件类型的答案载体。

wi\displaystyle w_i

2. x∖i 是上下文:除被遮盖词以外所有文本,包括原句和模板,是模型做出判断的全部依据。

x∖i\displaystyle x_{\setminus i}

3. 点积打分:用 [MASK] 位向量与每个候选词向量做内积,内积越大,说明该词与上下文衔接越自然。

hwi⊤h[MASK]\displaystyle h_{w_i}^{\top} h_{\mathrm{[MASK]}}

4. 对词表归一化:分母遍历整个词表 V,把得分变成概率分布,总和为 1,从而可以选出最合理的答案词。

∑w′∈Vexp⁡(hw′⊤h[MASK])\displaystyle \sum_{w' \in \mathcal{V}} \exp\left(h_{w'}^{\top} h_{\mathrm{[MASK]}}\right)

小裴并不厉害,厉害的是总厨——模型早就在海量文本里见过“地震”长什么样。提示学习做的事,就是递上“小纸条”,把沉睡在总厨脑中的知识唤醒。可是总厨再厉害,也只懂自己那一套厨房;要覆盖更多新领域,还得让知识流动起来。

本体迁移:搬来一整个厨房的知识

隔壁粤菜馆开张,小裴被紧急调去帮忙。他惊喜地发现:川菜也好,粤菜也罢,“主料—辅料—烹饪方式—成品”这套骨架完全一致。他把川菜馆的“食材分类”“动作语义”整套知识搬了过去,只是换了菜名和食材,新厨房立刻运转起来。

事件抽取里的这套“骨架”称为事件本体。它定义了候选事件类型有哪些、每个类型有哪些论元角色、典型触发词模式,以及角色之间的约束关系。比如“地震”有地点、时间、震级、损失等角色;“火灾”也有地点、时间、损失。既然两个类型共享“时间、地点”这类通用角色,本体就可以对齐,知识的迁移就有了落脚点。

事件本体迁移做两件事:第一,建立新旧类型之间的角色映射,让触发词模式可以共享——“摇晃”不会因为换了个数据集就不再像地震;第二,让高资源类型(标注多的)帮助低资源类型(标注少的)学习特征。这两件事合并成一个联合优化目标:任务损失负责把旧类型学扎实,对齐损失负责把新旧类型的表示拉近,两者合力,让新类型在没标注的情况下也能站在旧类型的肩膀上。

L=Ltask  +  λ⋅Lalign\displaystyle \mathcal{L} = \mathcal{L}_{\mathrm{task}} \;+\; \lambda \cdot \mathcal{L}_{\mathrm{align}}

1. L_task 是任务损失:模型在旧类型标注样本上的分类或抽取误差,它保证了模型的基本功。

Ltask\displaystyle \mathcal{L}_{\mathrm{task}}

2. L_align 是对齐损失:把新旧类型共享的论元角色、触发词表示在向量空间中拉近,使知识可以跨类型流动。

Lalign\displaystyle \mathcal{L}_{\mathrm{align}}

3. λ 是平衡系数:控制迁移力度——太小则迁移无效,太大则可能把新类型带偏,通常需要根据验证集调参。

λ\displaystyle \lambda

4. 联合最小化:优化器同时降低两个损失,让模型既把旧任务做对,又让新旧知识不打架,最终实现“一厨学艺,多厨受益”。

L→min⁡\displaystyle \mathcal{L} \to \min

小裴带过去的不是几道菜的做法,而是一整套“做菜观”。本体迁移的价值就在于:让一个类型的知识,像流动的调料一样,灌进千万个尚未被标注的新事件类型里。从流水账到小纸条,再到整个厨房的知识流动——小裴的成长,正是零样本事件抽取的完整旅程。

AI 应用场景

应急舆情监测:暴雨中的第一声呼救

阶段:推理部署阶段

解决的问题:突发事件往往没有历史标注样本。以往舆情系统只能靠关键词命中,而新出现的“内涝”“被困”等表达缺乏对应的抽取规则,等人工梳理完规则,黄金救援时间已经过去。零样本抽取用类型描述直接构建原型,上线即可工作。

具体案例:台风登陆前,监测平台接入零样本事件抽取模型。运维人员为“暴雨洪涝”类型写了一段描述:“暴雨、洪水、积水、内涝、预警、防汛、被困、受灾”,系统当天就能从数十万条社交文本中抽出求助、险情等事件,按地点聚类后推送给应急部门。

金融政策快速落地:新政策不再等标注

阶段:数据标注与模型上线阶段

解决的问题:金融机构每遇央行新政策,事件库中根本没有对应类型,传统方案要花数周标注再训练。零样本抽取加本体迁移,可以把旧类型“货币、支付”中积累的论元角色直接借给“数字人民币试点”这类新事件。

具体案例:某金融科技公司在新政策发布当天,用“数字人民币、试点、发行、推广”作为类型描述构造原型,并从旧事件本体迁移“时间、范围、对象”等角色,当天就从研报和公告中抽取出百余条结构化政策事件,供风控和投研团队使用。

数据工厂人机协同:先粗抽,再精修

阶段:数据生产与迭代阶段

解决的问题:标注成本是事件抽取落地的最大瓶颈。零样本系统虽然精度不及人工,但胜在冷启动快,可以先粗抽一批候选事件,再由人工审核纠错,反馈样本滚动更新原型库。

具体案例:一家数据标注公司为零样本系统配置了置信度阈值,低置信度结果自动转人工;人工修正后的样本每周回流一次,用于改良类型描述和温度系数。三个月后,零样本模型在内部评测集上的 F1 提升超过 23%,总体标注成本下降约七成。

Python 演示

python35 行
import numpy as npfrom sklearn.feature_extraction.text import TfidfVectorizerfrom sklearn.metrics.pairwise import cosine_similarity EVENT_TYPES = {    "地震": "地震 地动 摇晃 震中 伤亡 救援 房屋倒塌 震感",    "火灾": "火灾 起火 燃烧 救火 消防 浓烟 烧毁 火警",    "暴雨": "暴雨 洪水 积水 内涝 预警 防汛 被困 受灾",    "事故": "事故 坍塌 爆炸 伤亡 救援 调查 受伤 塌方",} def build_prototypes(type_sources):    names = list(type_sources.keys())    docs = [type_sources[n] for n in names]    vec = TfidfVectorizer(analyzer="char", ngram_range=(1, 2))    protos = vec.fit_transform(docs)    return names, protos, vec def zero_shot_extract(sentence, names, protos, vec):    sent_vec = vec.transform([sentence])    sims = cosine_similarity(sent_vec, protos).ravel()    best = int(np.argmax(sims))    return names[best], sims def main():    sentence = "凌晨突发5.1级地震 房屋剧烈摇晃 多户居民被困 救援队已赶到"    names, protos, vec = build_prototypes(EVENT_TYPES)    predict, sims = zero_shot_extract(sentence, names, protos, vec)    print("识别事件类型: {}".format(predict))    for name, score in zip(names, sims):        print("{}: {:.3f}".format(name, score))    print("最大相似度类型: {}".format(predict)) if __name__ == "__main__":    main()
目的:用原型匹配思路实现一个最小可运行的零样本事件抽取器——把每个事件类型当作一套“印象卡”,句子来了,谁最像就归谁。
  1. EVENT_TYPES = {...}为每个候选事件类型写一段描述文本,相当于小裴的“印象卡”素材。
  2. TfidfVectorizer(analyzer="char", ngram_range=(1, 2))把中文字符与双字组合编码成特征向量,作为轻量级语义表示。
  3. vec.fit_transform(docs)把每个类型描述文本转换成向量,得到类型原型向量组。
  4. vec.transform([sentence])对输入句子做同样的向量化,生成“新菜印象”。
  5. cosine_similarity(sent_vec, protos).ravel()计算句子向量与所有原型的余弦相似度,得到一维打分列表。
  6. np.argmax(sims)找出得分最高的原型下标,也就是零样本预测的事件类型。

常见误区

误区零样本应该是完全不需要任何训练,我把模型加载出来,就能把世界上所有事件类型都抽准。

正解零样本针对的是“目标事件类型没有标注样本”,模型仍然依赖大规模预训练阶段学到的语义知识,以及精心设计的类型描述或提示模板。就像小裴能认出没见过的菜,是因为他跟着总厨学过很久,而不是凭空就会做菜。去掉预训练知识,零样本立刻归零。

为何常见:被“zero-shot“的字面意思误导,加上商业宣传常把”零样本“包装成”零成本、零训练”。

误区既然不用标注就能抽,那零样本的准确率肯定比花大精力标注的有监督模型更高。

正解零样本通常明显低于有监督模型,尤其在领域跨度大的场景下。它的价值是“冷启动快、响应及时”,适合当第一道粗筛,而不是一步到位的终极方案。工程上常见做法是零样本先抽,人工兜底,数据回流后再逐步提升精度。

为何常见:演示 demo 里零样本总能命中典型例子,让人误以为它在所有长尾场景下同样强悍。

误区原型匹配太简单了——描述文本编码、平均、算余弦、完事,谁都能做。

正解原型匹配工程细节很多:类型描述词要覆盖触发词与典型论元,描述太泛则原型模糊,太窄则覆盖不足;句子编码方式、向量归一化、温度系数、置信度阈值都直接影响效果。它像“印象卡”,写得好不好,直接决定认菜准不准。

为何常见:原型匹配原理简单,容易让人以为实现也简单,忽视了表示学习和调参的复杂性。

误区给大模型套个模板就能零样本抽取,模板内容无所谓,反正模型很聪明。

正解模板的措辞、[MASK] 的位置、答案词的候选范围都会显著影响结果。同一句话,换个模板可能从“地震”变成“事故”。实际项目中常要做多模板集成和答案映射校准,本质是“如何更好地唤醒预训练知识”,而不是念一句万能咒语。

为何常见:提示学习用起来像写一句话,门槛太低,反而让人低估了模板工程的重要性。

面试题

Q1. 在零样本事件抽取中,“零样本”最准确的理解是?

单选题 · easy

  • A.新事件类型毫无标注样本← 正确答案
  • B.系统无需任何语料训练
  • C.模型完全未做预训练
  • D.输入语料仅含非事件

答案:A。零样本指目标新事件类型没有标注样本,但系统可借助预训练知识与类型描述完成抽取。B 错在连语料都否定,C 把预训练根基也否定了,D 歪曲了“零样本”指向的是标签而非输入。就像小裴没做过蚂蚁上树,但他在总厨身边学过做菜。

Q2. 一条事件记录的核心三要素通常是?

单选题 · easy

  • A.触发词论元与类型← 正确答案
  • B.动词名词与形容词
  • C.主语谓语与宾语
  • D.时间地点与人物

答案:A。事件抽取输出三要素:类型(什么事)、触发词(哪个词触发事件)、论元(参与者与属性)。B 是词性概念,C 是句法成分,D 只是论元里常见的角色,都不是事件记录的定义性要素。

Q3. 零样本学习与少样本学习最主要的区别是?

单选题 · easy

  • A.标签数量有无多寡差异← 正确答案
  • B.都完全不需要人工标注
  • C.少样本反而更省人工
  • D.两者本质上并无区别

答案:A。零样本是无任何新类型标注,少样本是有极少量标注,核心差异就是标签数量。B 完全错误,C 把成本说反了,D 混淆了二者。类比:零样本是“一次都没做过”,少样本是“只做过一次”。

Q4. 余弦相似度常被用于语义比较,主要是因为?

单选题 · mid

  • A.只关注向量之间方向← 正确答案
  • B.关注向量的绝对长度
  • C.同时关注方向与大小
  • D.与向量本身完全无关

答案:A。余弦相似度等于点积除以模长乘积,分母抵消了长度影响,只剩方向信息。语义相近的词即使词频差异大,方向接近得分就高。B 和 C 更像欧氏距离的特点,D 更是彻底误解。

Q5. 以下哪些是实现零样本事件抽取的常用路径?

多选题 · mid

  • A.原型匹配无需目标标注← 正确答案
  • B.提示学习复用语言模型← 正确答案
  • C.本体迁移借力旧类型← 正确答案
  • D.正则枚举所有触发词

答案:ABC。原型匹配用类型描述构造原型,提示学习用模板唤醒预训练模型,本体迁移把旧类型知识搬给新类型,三者都是主流方法。D 的正则枚举只能覆盖见过的词,完全没有泛化能力,与零样本背道而驰。

Q6. 原型匹配方法中,第一步通常是?

单选题 · mid

  • A.构造类型描述生成原型← 正确答案
  • B.随机初始化分类网络
  • C.人工标注十万条样本
  • D.对句子做词性标注

答案:A。原型匹配的第一步是为每个候选事件类型写“类型描述”,再编码成原型向量,之后才是对输入句子编码和相似度计算。B 和 C 违背零样本初衷,D 是句法分析,不是原型匹配的起点。

Q7. 提示学习把事件抽取重构成了?

单选题 · mid

  • A.完形填空任务← 正确答案
  • B.正则匹配任务
  • C.序列标注任务
  • D.文本翻译任务

答案:A。提示学习设计模板并留下 [MASK],让预训练语言模型填空,再把答案词映射为事件类型,本质是完形填空。B 仍是规则方法,C 是传统有监督方案,D 偏离任务目标。

Q8. 事件本体迁移时,哪些知识可以在新旧类型之间复用?

多选题 · hard

  • A.触发词模式可以跨类迁移← 正确答案
  • B.论元角色能够在类间复用← 正确答案
  • C.事件约束规则可以继承← 正确答案
  • D.训练轮数需要重新整定

答案:ABC。触发词模式(“摇晃”暗示地震)、论元角色(时间、地点、损失)、事件约束(伤亡常伴随救援)都能随本体迁移到新类型。D 是训练超参数,不属于可迁移的知识,且在零样本场景下根本没有目标类型的训练轮数。

Q9. 大模型做零样本事件抽取时,最核心的依赖是?

单选题 · hard

  • A.大规模预训练知识与指令理解← 正确答案
  • B.随机初始化网络结构
  • C.额外微调目标类型语料
  • D.在线实时抓取网页语料

答案:A。大模型零样本靠的是预训练阶段积累的语义常识和指令遵循能力,配合提示模板直接输出。B 没有任何知识储备,C 变成有监督场景,D 只提供数据不提供泛化能力,都无法解释“没学过却能抽”。

Q10. 零样本事件抽取系统落地时,下列做法合适的有?

多选题 · extreme

  • A.低置信度结果转人工复核← 正确答案
  • B.持续补充新类型原型描述← 正确答案
  • C.上线后周期性复盘评测← 正确答案
  • D.全自动免检替代有监督

答案:ABC。零样本精度通常不及有监督,工程上要设置信度阈值并人工兜底,持续迭代原型描述,定期评测防止数据漂移。D 一刀切替代有监督模型风险极大,是落地中最常见的翻车方式。