關係與事件抽取
如何標註實體之間的關係,以及帶觸發詞和論元的結構化事件,在 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 的事件標註類型讓標註者標出觸發詞,並附加帶角色標籤的跨度。
事件標註示例展示了一套可用的觸發詞加論元配置。
這些任務為什麼困難
- 標籤空間很大,一致性會下降。儘量讓關係類型和角色類型既少又定義清晰。
- 標註者必須先把跨度標對,否則錯誤會層層累積。可以考慮第一遍標註實體,第二遍再標註關係。
- 結構化輸出讓一致性指標變得棘手,要在你真正關心的層級上測量(觸發詞是否正確、論元是否正確、整個事件是否正確)。