Skip to content

关系与事件抽取

如何标注实体之间的关系,以及带触发词和论元的结构化事件,在 Potato 中使用跨度链接与事件标注。

关系抽取用一条带类型的链接把两个实体连接起来("居里夫人,获得,诺贝尔奖")。事件抽取更进一步:它标记一个事件触发词,以及围绕它的各个角色(谁、对谁、做了什么、何时发生)。 两者都能把扁平的文本变成结构化的知识。

背景知识参见关系抽取事件抽取

关系:链接跨度

一条关系标注由三部分组成:头部跨度、尾部跨度和关系类型。在 Potato 中,标注者先标出跨度,再在它们之间画一条带方向、带类型的链接(跨度链接)。

yaml
annotation_schemes:
  - annotation_type: span
    name: entities
    description: "Mark the entities involved."
    labels: [PERSON, ORGANIZATION, AWARD]
  - annotation_type: span_link
    name: relations
    description: "Draw a link between two entities and choose the relation."
    labels: [won, works_for, located_in, founded_by]

关系是有方向的,因此要为每种类型确定并写明方向("founded_by" 是从公司指向人,还是反过来?)。

事件:触发词与论元

一个事件由一个触发词(往往是像 "acquired" 这样的动词)锚定,并带有填充各类型角色(买方、卖方、价格、日期)的论元。Potato 的事件标注类型让标注者标出触发词,并附加带角色标签的跨度。

事件标注示例展示了一套可用的触发词加论元配置。

这些任务为什么困难

  • 标签空间很大,一致性会下降。尽量让关系类型和角色类型既少又定义清晰。
  • 标注者必须先把跨度标对,否则错误会层层累积。可以考虑第一遍标注实体,第二遍再标注关系。
  • 结构化输出让一致性指标变得棘手,要在你真正关心的层级上测量(触发词是否正确、论元是否正确、整个事件是否正确)。

延伸阅读