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."

關係是有方向的,因此要為每種類型確定並寫明方向("founded_by" 是從公司指向人,還是反過來?)。

事件:觸發詞與論元

一個事件由一個觸發詞(往往是像 "acquired" 這樣的動詞)錨定,並帶有填充各類型角色(買方、賣方、價格、日期)的論元。Potato 的事件標註類型讓標註者標出觸發詞,並附加帶角色標籤的跨度。

事件標註示例展示了一套可用的觸發詞加論元配置。

這些任務為什麼困難

  • 標籤空間很大,一致性會下降。儘量讓關係類型和角色類型既少又定義清晰。
  • 標註者必須先把跨度標對,否則錯誤會層層累積。可以考慮第一遍標註實體,第二遍再標註關係。
  • 結構化輸出讓一致性指標變得棘手,要在你真正關心的層級上測量(觸發詞是否正確、論元是否正確、整個事件是否正確)。

延伸閱讀