Skip to content

엔티티 링킹

엔티티 링킹을 어떻게 어노테이션하는지 설명합니다. 텍스트의 멘션을 Wikidata 같은 지식 베이스의 항목과 연결하고 Potato에서 링킹 작업을 구성하는 방법을 다룹니다.

엔티티 링킹은 텍스트의 멘션을 지식 베이스의 특정 항목과 연결하는 작업으로, "Paris"를 인물이나 텍사스의 도시가 아닌 프랑스의 도시로 해석합니다. 개체명 인식이 무언가가 엔티티라는 사실을 찾아내는 반면, 엔티티 링킹은 그것이 어떤 실제 엔티티인지를 결정합니다.

배경 지식으로는 엔티티 링킹과 자주 쓰이는 대상인 Wikidata, Wikipedia를 참고하시기 바랍니다. 이는 어의 중의성 해소와 밀접하게 관련됩니다.

어노테이터가 하는 일

  1. 멘션 스팬을 식별합니다(대개 NER 단계에서 미리 표시되어 있습니다).
  2. 어노테이터가 지식 베이스를 검색하여 일치하는 항목을 선택합니다.
  3. 맞는 항목이 없으면 NIL(지식 베이스에 없음)로 표시합니다.

NIL 사례는 반드시 필요합니다. 이것이 없으면 어노테이터는 멘션을 잘못된 항목에 억지로 끼워 맞춰 데이터를 오염시킵니다.

Potato에서 구성하기

Potato는 지식 베이스(Wikidata, UMLS 또는 사용자 정의 목록)에 대한 타입어헤드(typeahead) 검색으로 엔티티 링킹을 지원하므로, 어노테이터가 ID를 직접 입력하는 대신 실제 후보 중에서 선택합니다. 엔티티 링킹 쇼케이스는 동작하는 예시입니다.

yaml
annotation_schemes:
  - annotation_type: span
    name: mentions
    description: "Mark the mention to link."
    labels: [Entity]
  - annotation_type: text
    name: kb_id
    description: "Search the knowledge base and enter the matching ID, or write NIL if none fits."

품질 고려 사항

  • 후보의 품질. 설명이 함께 제공되는 좋은 타입어헤드는 가이드라인을 길게 쓰는 것보다 훨씬 더 잘못된 선택을 줄입니다.
  • 모호성 기본 처리. 두 항목이 똑같이 타당해 보일 때 어떻게 할지 어노테이터에게 알려 줍니다.
  • 세분성. 회사에 연결할지 자회사에 연결할지, 영화에 연결할지 프랜차이즈에 연결할지를 한 번에 정합니다.

더 읽을거리