想象你是警局里的资深侦探。晨会上,桌上摊着几十张“事件卡片”:昨夜暴雨、航班取消、旅客滞留、机场紧急调配……每张卡片都记录了一个瞬间。你的任务,不是念出这些卡片,而是像破案一样找出它们之间的联系——暴雨“导致”航班取消,航班取消“之后”旅客滞留,如果旅客滞留“则”机场调度车辆。当所有线索通过“因为—所以”“先后顺序”“如果—则”等关系连成一张网,你就能解释已发生的事,甚至预判下一步会发生什么。这个“办案白板上画线索网”的过程,正是自然语言处理中的“事件关系抽取”与“事件知识图谱构建”:机器读文章,找出事件,牵起关系之线,编织成一张可推理、可问答的知识图谱。从搜索引擎到风险预警,这项技术正成为机器理解世界如何运转的核心能力。

岗位关联

对 AI 从业者而言,掌握事件关系抽取与图谱构建,意味着你不再止步于“识别实体”,而是能交付一套“理解世界如何运转”的智能系统——这是信息抽取与知识图谱方向的核心竞争力,也是做风控、问答、情报分析等 NLP 落地产品的关键技能。

目录
  1. 可视化演示
  2. 关系类型认知
  3. 传统抽取方法
  4. 深度学习抽取
  5. 公开数据集
  6. 评测指标体系
  7. 事件检测协同
  8. 图谱构建应用
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示多头自注意力机制中不同注意力头的权重分布和信息流动模式,可视化Query-Key-Value的交互过程。

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

多头自注意力机制 每个注意力头学习不同的关注模式:局部、全局、前向、后向 绿色粒子表示注意力信息流,沿高权重连接传递 Attention(Q,K,V) = softmax(QK^T/sqrt(d))V 注意力权重经softmax归一化,所有权重和为1

关系类型认知

侦探上岗第一天,队长不会让你直接破案,而是先教你“线索之间能有哪些关系”。你在白板上贴两张卡片:一张写“昨夜暴雨”,一张写“航班取消”。队长问:这两张卡片是什么关系?你脱口而出“因为所以”——暴雨导致航班取消。他又问:“航班取消”和“旅客滞留”呢?你想想说这是“先来后到”,取消之后旅客才滞留。还有“如果旅客滞留,机场就会调配车辆”,这是“条件触发”;“暴雨”和“机场广播通知”同时出现,虽无因果但属于“共现”。事件关系抽取的第一步,正是把这种模糊的关系直觉,变成明确的类型学体系。

在自动处理中,模型需要从句子里判断事件对的关系标签。主流标注体系把事件关系分为四类:因果关系,表示一个事件产生或促成了另一个事件;时序关系,表示事件在时间轴上的先后或同时;条件关系,表示一个事件是另一个事件成立的前提;共现关系,表示事件在同一语境中并存。每个类别都对应不同的语言线索:因果靠“导致/因为”,时序靠“之后/随即”,条件靠“如果/一旦”,共现靠“同时/以及”。

判定因果强度是关系抽取下游(如风险传导)的重要需求,一个经典度量是条件概率:给定前因 A 发生,结果 B 发生的概率越高,A 对 B 的因果解释力就越强。

侦探终于明白:因果不能靠感觉拍板,要用“共同出现的频率”来量化。回到白板,他把“暴雨→取消”这条线标成红色(因果),心里默念:关系不是直觉,而是可计算的证据。

P(B∣A)=P(A∩B)P(A)\displaystyle P(B|A) = \frac{P(A \cap B)}{P(A)}
通俗地说:在“A 发生”这个前提下,“B 也跟着发生”的比例越高,“A 导致 B”的结论就越可靠;但若 A 本身就很常见,即便比例高也要谨慎解读。
  1. 前因概率P(A) 表示事件 A 发生的概率,对应“全部观测中,有多少次出现了 A”。
    P(A)P(A)
  2. 共现概率P(A∩B) 表示 A 和 B 同时发生的概率,对应“A 发生的同时 B 也出现的次数占比”。
    P(A∩B)P(A \cap B)
  3. 条件概率两者相除,得到“已知 A 发生的前提下 B 发生的比例”,即因果关联强度。
    P(A∩B)P(A)\displaystyle \frac{P(A \cap B)}{P(A)}

传统抽取方法

在没有深度学习大模型的年代,侦探靠什么维系线索网?靠老师傅传下来的“办案手册”。手册里写死规则:“只要句子中出现'导致''引发',就把前一个事件记为因,后一个记为果。”这就是模式匹配(基于规则)——快、可解释、不依赖数据,但语言千变万化,规则覆盖不全。于是侦探们开始给机器喂“特征”:词性、触发词位置、事件间距离、上下文词袋等,交给统计分类器(SVM、逻辑回归)去学“什么样的特征组合更可能对应因果或时序”。

更进一步,事件关系可以被建模为序列结构问题:句子中每个词要么属于事件片段,要么是关系信号,标签之间并非独立。条件随机场(CRF)是最经典的序列标注模型,它在标签级别建模“转移约束”——比如“事件开端标签后不能紧跟另一个开端标签”。

老侦探的经验(规则)和统计学习(特征+序列)构成了第一代事件关系抽取的主体。它们效率高、结果可控,至今仍是冷启动和规则修正的常用手段。但面对跨句、跨文档的复杂关系,“办案手册”就显得捉襟见肘了——于是,AI 刑侦系统正式登场。

P(y∣x)=1Z(x)exp⁡(∑i=1n∑k=1Kλkfk(yi−1,yi,x,i))\displaystyle P(\mathbf{y}|\mathbf{x}) = \frac{1}{Z(\mathbf{x})} \exp\left(\sum_{i=1}^{n} \sum_{k=1}^{K} \lambda_k f_k(y_{i-1}, y_i, \mathbf{x}, i)\right)
通俗地说:CRF 像一位有“规则洁癖”的侦探,既看每个位置的“单点特征”(这个词像不像触发词),又看前后标签的“转移习惯”,最后把所有证据加权求和,归一化成概率。
  1. 特征函数f_k(y_{i-1},y_i,x,i) 表示在第 i 个位置,从上一个标签到当前标签这一跳是否满足第 k 个特征(如“当前位置是动词且标签为事件开头”)。
    fk(yi−1,yi,x,i)f_k(y_{i-1}, y_i, \mathbf{x}, i)
  2. 特征加权求和每个特征乘以权重 λ_k,对所有位置和所有特征求和,表达“全部证据的加权总分”。
    ∑i=1n∑k=1Kλkfk(yi−1,yi,x,i)\displaystyle \sum_{i=1}^{n} \sum_{k=1}^{K} \lambda_k f_k(y_{i-1}, y_i, \mathbf{x}, i)
  3. 指数与归一化总分取指数得到正数,再除以配分函数 Z(x) 归一化为概率分布。
    1Z(x)exp⁡(⋅)\displaystyle \frac{1}{Z(\mathbf{x})} \exp(\cdot)

深度学习抽取

AI 侦探不需要逐条背手册,它读上百万份卷宗,自己总结“什么样的句子结构会暗示因果”。深度学习方法把事件关系抽取建模成端到端的学习问题。Pipeline 路线把任务拆成两个串联模块:先事件检测(找出哪些词构成事件、类型是什么),再事件关系分类(对每个事件对判断关系标签)。这就像侦探先整理卡片再连线,清晰直观,但有个致命缺陷——误差传播:事件检测漏掉一张卡片,后面的关系线就永远连不上。

Joint 联合方法则让两个任务共享同一个编码器(如 BERT),同时输出事件预测和关系预测。就像侦探一手拿放大镜找线索、一手拿线团连关系:找线索时想着关系,连关系时修正线索认知。联合建模一般通过两个损失相加进行多任务优化:

近年来,预训练语言模型(BERT 系列)提供了更强的上下文语义表示,图神经网络(GNN)则把句子内的事件对关系升级为跨事件、跨文档的结构化推理。深度学习抽取已成为主流,但它对标注数据的依赖也暴露出来——这正是下一节“标准卷宗库”要解决的问题。

L=Levent+Lrelation\displaystyle L = L_{event} + L_{relation}
通俗地说:模型的“总考卷”由两张子卷组成——事件检测卷和关系分类卷。两张卷一起判分、一起让模型改错,而不是先考完一张再考另一张。
  1. 事件检测损失L_event 是事件触发词/类型预测的交叉熵损失,用于惩罚“事件找错、类型判错”。
    Levent=−∑ilog⁡P(y^i∣x)\displaystyle L_{event} = -\sum_{i} \log P(\hat{y}_i | \mathbf{x})
  2. 关系抽取损失L_relation 是事件对关系分类的损失,用于惩罚“关系连错线”。
    Lrelation=−∑i<jlog⁡P(rij∣hi,hj)\displaystyle L_{relation} = -\sum_{i<j} \log P(r_{ij} | h_i, h_j)
  3. 联合训练两损失相加后反向传播,使共享编码器同时服务两个任务。
    L=Levent+Lrelation\displaystyle L = L_{event} + L_{relation}

公开数据集

AI 侦探要考核,得有标准卷宗库。事件关系抽取领域的“考卷”主要来自三个标志性数据集。ACE 2005 是最经典的英文事件标注集,包含实体、事件类型、论元角色以及事件关系标注,是事件检测与关系抽取的“元老级”基准。EventStoryLine 聚焦跨文档的事件时序与因果/亚关系,常用于评测“事件故事线”重构。CausalBank 则是大规模中文因果语句库,从百科、新闻中抽取大量因果对,支撑因果关系的预训练与微调。这些数据集提供的“标注体系”——事件类型、关系类型和判定标准,是训练和评测模型的基础。

无论哪个数据集,事件关系抽取都需要从“候选事件对”中判断关系。给定 n 个事件,两两配对可形成的候选关系对数量为:

训练时,模型常常在多个数据集上联合微调,统一因果、时序标签体系,以提升跨域泛化能力。标准卷宗库让不同的“侦探”在同一套考卷上公平比较,也推动了事件图谱构建的工程化落地——精标数据是深度学习时代最珍贵的资源之一。

C(n,2)=(n2)=n(n−1)2\displaystyle C(n, 2) = \binom{n}{2} = \frac{n(n-1)}{2}
通俗地说:n 张事件卡片,任意两张之间都要问一句“你们有没有关系?”,所以总候选对数随事件数量呈平方级增长。
  1. 事件数量n 表示文档中已检测出的事件总数,是候选关系对的上限来源。
    nn
  2. 两两组合数从 n 个事件中无序地选 2 个事件,其组合数为二项式系数。
    (n2)\displaystyle \binom{n}{2}
  3. 展开计算组合数等于 n(n−1)/2,说明候选关系对随 n 近似平方增长,因此关系分类需要“过滤+采样”来降低开销。
    n(n−1)2\displaystyle \frac{n(n-1)}{2}

评测指标体系

怎么给侦探打分?不能只看他抓到了多少嫌疑人,还要看准确比例。事件关系抽取的评测体系围绕精确率、召回率和 F1 值展开。精确率回答“模型说有关系的关系对,有多少确实有关系”;召回率回答“所有真实存在关系的事件对,模型找回了多少”。两者往往互相牵制:模型大胆连线,召回率上升但误报增多;模型谨慎连线,精确率上升但漏报增多。F1 值把两者协调成一个分数:

除了 P/R/F1,实际评测还常区分“严格匹配”(事件论元、类型全对齐才算对)与“宽松匹配”(只需事件对与关系类型一致),并要求人工抽检样例,防止模型靠数据集偏置刷分。侦探的成绩单上,F1 是总评,P 和 R 是分项,人工复核则是最后的面试。

P=TPTP+FP,R=TPTP+FN,F1=2×P×RP+R\displaystyle P = \frac{TP}{TP + FP}, \quad R = \frac{TP}{TP + FN}, \quad F1 = \frac{2 \times P \times R}{P + R}
通俗地说:精确率是“连对的线占所有已连线的比例”,召回率是“该连的线中被连上的比例”,F1 是二者的综合成绩,偏科会被重罚。
  1. 精确率 PTP 是正确连线数,FP 是错误连线数;P 衡量“连上去的线有多少是可靠的”。
    P=TPTP+FP\displaystyle P = \frac{TP}{TP + FP}
  2. 召回率 RFN 是漏掉的真实关系数;R 衡量“真相里有多少被找回来”。
    R=TPTP+FN\displaystyle R = \frac{TP}{TP + FN}
  3. F1 值P 与 R 的调和平均,结果更接近较小者,防止模型用单方面优势掩盖短板。
    F1=2×P×RP+R\displaystyle F1 = \frac{2 \times P \times R}{P + R}

事件检测协同

关系线不是天上掉下来的,得先把“什么是事件”搞清楚。事件检测承担两个核心子任务:触发词识别——找到句中激活事件的词(如“取消”激活“航班取消”事件),以及论元填充——确定事件的参与者与角色(航班、旅客、时间)。如果把关系抽取比作“连线”,事件检测就是“先确认卡片上写什么字”:卡片都辨认不清,连线必然歪七扭八。因此,事件检测质量直接决定了关系抽取的上限。

为了突破“检测—抽取”两步带来的误差传播,研究者提出联合建模:用一套共享参数同时优化触发词、论元和关系分类。模型的目标函数是两个子目标的对数概率之和:

侦探的工作流从“先勘查现场、再回局里连线”变成了“边勘查边连线”:触发词、论元、关系三重信息在一套系统里相互校验,减少了卡片认错导致的冤假错案,也让跨事件的信息得以在更早阶段流通。

arg⁡max⁡θ[∑ilog⁡P(ei∣x)+∑i<jlog⁡P(rij∣hi,hj)]\displaystyle \arg\max_{\theta} \left[ \sum_{i} \log P(e_i | \mathbf{x}) + \sum_{i<j} \log P(r_{ij} | h_i, h_j) \right]
通俗地说:模型一边回答“哪些词是触发词、事件是什么类型”,一边回答“两个事件之间是什么关系”,同一个大脑同时做两件事,互相打分、互相当参谋。
  1. 事件检测项Σ log P(e_i|x) 是对每个事件表示 e_i 的预测对数概率求和,目标是把事件找全找对。
    ∑ilog⁡P(ei∣x)\displaystyle \sum_{i} \log P(e_i | \mathbf{x})
  2. 关系分类项Σ log P(r_ij|h_i, h_j) 是基于事件表示 h_i、h_j 预测关系 r_ij 的对数概率之和。
    ∑i<jlog⁡P(rij∣hi,hj)\displaystyle \sum_{i<j} \log P(r_{ij} | h_i, h_j)
  3. 联合优化两项相加后对参数 θ 求最大化,实现“检测促进抽取、抽取反馈检测”的闭环。
    arg⁡max⁡θ[⋅+⋅]\displaystyle \arg\max_{\theta} \left[ \cdot + \cdot \right]

图谱构建应用

当事件卡片和关系线都齐了,就该把线索网正式挂上白板——这就是事件知识图谱。构建流程是:语料输入 → 事件检测(锚定卡片)→ 事件关系抽取(连线)→ 去重融合(合并同一事件的重复卡片)→ 存入图谱库。有了图谱,可以做路径推理:从“暴雨”出发,沿着因果边走到“航班取消”再到“旅客滞留”,把证据链补完整;也可以支持智能问答——“暴雨为什么导致旅客滞留?”系统沿因果路径给出中间解释。这正是情报、金融、医疗等领域落地的大热方向。

路径推理是图谱应用的核心操作:给定起点事件和目标事件,沿边累积强度。一条路径的得分可以定义为路径上每条边的关系强度之和:

侦探的线索网最终变成了可计算、可查询、可推演的知识资产。结合大模型的语义理解能力,事件图谱正在从“静态档案库”走向“动态推理引擎”:跨文档挖掘因果链、预测事件演化、辅助决策——这是事件关系抽取技术最有想象力的终点。

Score(p)=∑e∈pw(e)\displaystyle \text{Score}(p) = \sum_{e \in p} w(e)
通俗地说:沿着一张事件关系网,从起点事件出发,把经过的每条“因果/时序边”的置信度一路加起来,总分最高的路径就是最可能的推理证据链。
  1. 边的权重w(e) 表示事件关系边 e 的置信度或强度,来自关系分类模型输出的概率。
    w(e)w(e)
  2. 路径得分把一条路径 p 上所有边权求和,体现整条证据链的可靠程度。
    ∑e∈pw(e)\displaystyle \sum_{e \in p} w(e)
  3. 推理选择在候选路径中取 Score(p) 最大者,作为“由 A 推得 B”的答案与解释链。
    Score(p)=∑e∈pw(e)\displaystyle \text{Score}(p) = \sum_{e \in p} w(e)

AI 应用场景

金融风险传导预警

阶段:事件检测 + 因果/时序关系抽取 + 图谱推理

解决的问题:传统金融舆情系统只做关键词告警(命中“违约”就报警),无法判断“房企流动性紧张→债务违约→银行风险敞口扩大”这类因果传导链。AI 系统抽取新闻中的事件和关系,构建风险传导图谱,能提前预警二阶、三阶风险。

具体案例:某券商风控平台接入财经资讯流,自动识别“某地产企业债券展期”等事件,沿图谱因果边推理出“银行不良率承压”的传导路径,在人工关注前数小时生成预警报告,显著缩短了风险响应时间。

病历事件时间线分析

阶段:时序关系抽取 + 事件图谱应用

解决的问题:病历中“入院发热→3 天后出现皮疹→换用抗生素后缓解”是典型时序+因果链。人工录入耗时易错,AI 抽取病历中的事件时间线,帮助医生快速把握病情演变,也支持相似病例检索。

具体案例:研究团队从出院小结中抽取“症状—诊断—治疗—转归”事件链,构建患者病程图谱。医生输入“皮疹”,系统返回具有相同事件链的历史病例及对应治疗方案与转归效果。

事故调查因果链构建

阶段:触发词识别 + 因果抽取 + 图谱推理

解决的问题:工业事故报告冗长繁杂,人工复盘画鱼骨图费时费力。AI 抽取报告中的事件与因果、时序关系,自动生成“原因—事故—损失”因果链,辅助安全分析和整改决策。

具体案例:航空事故报告自动抽取“发动机过热→液压系统失效→起落架故障”故障传播路径,结合维护记录中的时序事件,输出可视化的故障因果链,帮助工程师定位根因和制定预防措施。

Python 演示

python90 行
# -*- coding: utf-8 -*-"""事件关系抽取与知识图谱构建演示:规则基线 + 路径推理"""from collections import defaultdict # 1. 事件库:触发词是事件检测的核心锚点EVENTS = [    {"trigger": "暴雨", "text": "暴雨降临"},    {"trigger": "取消", "text": "航班取消"},    {"trigger": "滞留", "text": "旅客滞留"},    {"trigger": "调配", "text": "机场调配车辆"}] # 2. 关系信号词表:模拟传统模式匹配CAUSAL = ["导致", "引发", "因为", "所以", "造成"]TEMP = ["之后", "然后", "随即", "先"]COND = ["如果", "若", "一旦", "则"]COOC = ["同时", "此外", "以及"]  def extract_trigger(text):    """事件检测:从句子中找触发词(演示用最简单包含匹配)"""    for ev in EVENTS:        if ev["trigger"] in text:            return ev["trigger"]    return None  def judge_relation(t1, t2, text1, text2):    """关系分类:按信号词优先级判断因果/时序/条件/共现"""    linked = text1 + text2    if any(w in linked for w in CAUSAL):        return "因果"    if any(w in linked for w in TEMP):        return "时序"    if any(w in linked for w in COND):        return "条件"    if any(w in linked for w in COOC):        return "共现"    return None  def infer(start, target, graph, path=None):    """路径推理:BFS语义的递归找路,返回一条证据链"""    path = path or []    path = path + [start]    if start == target:        return path    if start not in graph:        return None    for nxt, _ in graph[start]:        if nxt not in path:            new_path = infer(nxt, target, graph, path)            if new_path:                return new_path    return None  def main():    # 3. 模拟双事件句子(事件关系抽取的输入)    docs = [        ("暴雨降临", "导致航班取消"),        ("航班取消", "之后旅客滞留"),        ("如果旅客滞留", "则机场调配车辆"),        ("暴雨降临", "同时机场调配车辆")    ]    graph = defaultdict(list)    for text1, text2 in docs:        t1 = extract_trigger(text1)        t2 = extract_trigger(text2)        rel = judge_relation(t1, t2, text1, text2)        if t1 and t2 and rel:            graph[t1].append((t2, rel))     # 4. 输出事件知识图谱    print("=== 事件知识图谱 ===")    for node, edges in graph.items():        for target, rel in edges:            print("{} --[{}]--> {}".format(node, rel, target))     # 5. 推理:暴雨能否推理到旅客滞留?    print("=== 路径推理示例 ===")    p = infer("暴雨", "旅客滞留", graph)    if p:        print("证据链: " + " -> ".join(p))    else:        print("无法由已有事件关系推出结论")  if __name__ == "__main__":    main()
目的:用纯 Python 实现一个“事件检测 → 关系分类 → 图谱构建 → 路径推理”的最小闭环,演示事件关系抽取与图谱构建的核心流程。
  1. EVENTS = [...]定义事件库,触发词是事件检测的锚点,对应“事件卡片”上的关键词。
  2. extract_trigger(text)最简单的触发词识别:句子中包含触发词,就认为该事件被激活。
  3. judge_relation(t1, t2, text1, text2)按因果→时序→条件→共现的优先级,用信号词判断两个事件的关系类型。
  4. any(w in linked for w in CAUSAL)若连接文本中出现“导致/因为”等词,则优先判为因果关系。
  5. graph = defaultdict(list)用邻接表存储事件关系图谱:每个事件节点挂上“关系边”。
  6. graph[t1].append((t2, rel))把“事件 t1 与事件 t2 之间存在 rel 关系”这条边写入图谱。
  7. infer(start, target, graph, path)递归路径推理,从起点事件沿关系边搜索到目标事件,返回一条证据链。
  8. if __name__ == "__main__":程序入口,依次执行建图与推理并打印结果。

常见误区

误区找到人名、公司名之间的关系就行了,比如“张三是某公司的CEO”,事件关系不也一样吗?

正解事件关系抽取的对象是“事件”,粒度比实体更高。事件由触发词和论元构成(如“航班取消”),表示“发生了什么”;实体关系是静态属性关联(如“任职于”)。事件关系抽取通常要依赖事件检测先定位事件,再判断事件之间的因果、时序等动态语义。两者在任务定义、数据标注和模型结构上都不同,不能混为一谈。

为何常见:因为两者都叫“关系抽取”,初学者容易混淆;实体关系抽取的教程更多,给人先入为主的印象。

误区现在都用大模型做事件关系抽取,谁还写规则、用CRF?传统方法过时了。

正解模式匹配可解释性强、零样本部署快,适合冷启动和高价值小样本修正;CRF等统计方法在低资源场景仍有竞争力。深度学习(尤其大模型)需要大量标注数据与算力。工业界常用“规则兜底 + 深度模型为主”的混合策略,而不是全盘替换。规则还承担着数据清洗、标签修正等关键职责,远未过时。

为何常见:顶会论文几乎全是深度学习,造成“传统方法无用”的错觉,但工程落地和论文发表是两回事。

误区拿 F1 比高低就行,F1 最高的一定是最优模型。

正解F1 是 P 和 R 的调和平均,能综合反映“准”和“全”,但遇到不平衡数据或任务偏重时会失真。例如风险预警更重视精确率以减少误报,情报筛选更重视召回率以免漏报。评测必须结合任务场景看 P、R、错误类型,并做人工样例抽检,不能只盯一个 F1。

为何常见:论文里习惯用 F1 一决高下,读者误以为 F1 是放之四海的裁判。

误区论文都说联合抽取效果好,所以无脑用 Joint 就对了。

正解Joint 共享编码、缓解误差传播,理论上更优;但它训练目标复杂、调参难度高,在小数据上未必优于精心调优的 Pipeline。是否采用 Joint 要权衡数据规模、任务耦合度和工程成本。Pipeline 的可调试性和模块复用性在工业系统中仍有不可替代的价值。

为何常见:论文把联合模型的惊艳结果简化为"Joint > Pipeline",读者忽略了前置条件(大语料、强GPU、精心调参)。

误区关系抽取完,把“事件对 + 关系类型”丢进 Neo4j,图谱就建好了。

正解图谱构建的关键工程点包括事件去重/共指消解(同一事件的不同表述要合并)、触发词一致性、关系置信度融合,以及 Schema 设计与推理接口。只存关系对得到的是“脏图”——同一事件被重复存储、关系边互相矛盾,推理问答时错误百出。

为何常见:看到网状结构就以为大功告成,忽视了知识图谱“知识”二字对质量和结构化设计的要求。

面试题

Q1. 事件关系抽取的核心任务是什么?

单选题 · easy

  • A.识别文本中的实体名称
  • B.判断事件之间的语义关系← 正确答案
  • C.为文本自动生成摘要
  • D.将一种语言翻译成另一种

答案:B。事件关系抽取的目标是识别事件并判定事件之间的语义关系(如因果、时序、条件)。A 是实体识别,C 是文本摘要,D 是机器翻译,都不符合“事件级关系”的任务定义。

Q2. 下列哪个信号词最可能表示“因果关系”?

单选题 · easy

  • A.之后、然后、随即
  • B.导致、因为、所以← 正确答案
  • C.如果、一旦、若
  • D.同时、此外、以及

答案:B。“导致、因为、所以”是典型因果线索词;A 组是时序线索,C 组是条件线索,D 组是共现线索。侦探听到“因为”就知道前因后果。

Q3. Pipeline 方法的事件关系抽取存在的主要问题是?

单选题 · mid

  • A.训练速度过快
  • B.误差会逐级传播← 正确答案
  • C.无法用深度学习
  • D.不需要检测事件

答案:B。Pipeline 先做事件检测再做关系分类,前一步的错误会传入后一步,产生误差传播。A 不是缺点,C 错误(Pipeline 也可用深度学习),D 错误(Pipeline 恰恰依赖事件检测作为前置步骤)。

Q4. F1 值是精确率和召回率的哪种平均?

单选题 · mid

  • A.简单算术平均
  • B.加权算术平均
  • C.两者调和平均← 正确答案
  • D.两者几何平均

答案:C。F1 = 2PR/(P+R) 是调和平均,对较小值更敏感,能避免 P 和 R 相差悬殊时分数虚高。算术和几何平均都会掩盖单方面短板。

Q5. ACE 2005 数据集的典型用途是?

单选题 · easy

  • A.图像分类等视觉
  • B.事件检测与抽取← 正确答案
  • C.语音识别等音频
  • D.机器翻译等语义

答案:B。ACE 2005 是 NLP 经典的事件标注数据集,包含实体、事件、论元等标注,用于事件检测与关系抽取。图像、语音、翻译都不是其用途。

Q6. 下列哪些属于联合抽取方法的优势?

多选题 · hard

  • A.参数数量一定更少
  • B.共享底层特征表示← 正确答案
  • C.缓解误差传播← 正确答案
  • D.减少事件检测步骤

答案:BC。联合抽取共享底层编码、联合建模,能缓解 Pipeline 的误差传播,因此 B、C 正确。A 不一定成立(联合模型参数常更多),D 错误——联合模型仍要做事件检测,只是与关系抽取同时优化。

Q7. 事件关系的常见类型包括哪些?

多选题 · mid

  • A.因果关系← 正确答案
  • B.时序关系← 正确答案
  • C.色彩关系
  • D.共现关系← 正确答案

答案:ABD。常见事件关系类型是因果、时序、条件、共现四类,A、B、D 正确;C“色彩关系”不是事件语义关系,是混淆项。

Q8. 关于事件检测与关系抽取,下列说法正确的有?

多选题 · hard

  • A.触发词识别属于事件检测← 正确答案
  • B.事件检测是关系抽取前置← 正确答案
  • C.联合模型可同时优化两者← 正确答案
  • D.两者完全独立无关联

答案:ABC。触发词识别是事件检测的核心子任务(A 对);事件检测为关系抽取提供事件卡片,是前置步骤(B 对);联合模型共享参数同时优化检测与抽取(C 对);两者并非独立,关系抽取依赖事件检测结果(D 错)。

Q9. 精确率 P 的定义是?

单选题 · mid

  • A.正确关系数除以实际关系数
  • B.正确关系数除以预测关系数← 正确答案
  • C.预测关系数除以实际关系数
  • D.错误关系数除以预测关系数

答案:B。精确率 P = TP/(TP+FP),分母是模型预测出的关系总数,衡量“连上的线有多少是对的”;A 描述的是召回率 R = TP/(TP+FN);C、D 没有对应该定义。

Q10. 构建事件图谱时,判断“航班取消”与“旅客滞留”之间存在因果,这一步属于?

单选题 · easy

  • A.事件检测
  • B.关系抽取← 正确答案
  • C.触发词识别
  • D.论元填充

答案:B。给两个事件判“因果/时序”关系属于关系抽取步骤。事件检测是找出事件(A 不对),触发词识别与论元填充是事件检测的一部分(C、D 不对),只有 B 是“给卡片连线”。