Skip to content

상호참조 체인

같은 엔티티를 가리키는 텍스트 스팬을 묶어 상호참조 해소 작업을 수행합니다.

상호참조 어노테이션을 사용하면 어노테이터가 같은 엔티티를 가리키는 텍스트 스팬을 묶을 수 있습니다. 이는 엔티티 해소, 대명사 해소, 담화 분석에 꼭 필요합니다.

개요

상호참조 체인은 모두 같은 실세계 엔티티를 가리키는 멘션(텍스트 스팬)의 모음입니다. 예를 들면 다음과 같습니다.

"마리 퀴리는 물리학자였습니다. 그녀는 노벨상을 받았습니다. 그 과학자는 자신의 분야를 영원히 바꿔 놓았습니다."

"마리 퀴리", "그녀", "그 과학자", "자신의"라는 스팬은 모두 같은 사람을 가리키며 하나의 상호참조 체인을 이룹니다.

빠른 시작

상호참조 어노테이션에는 두 가지 스키마 구성 요소가 필요합니다.

  1. 멘션을 만들기 위한 스팬 스키마
  2. 멘션을 체인으로 묶기 위한 상호참조 스키마
yaml
annotation_schemes:
  - annotation_type: span
    name: mentions
    description: Highlight all entity mentions
    labels:
      - name: MENTION
        tooltip: "Any reference to an entity"
    sequential_key_binding: true
 
  - annotation_type: coreference
    name: coref_chains
    description: Group mentions that refer to the same entity
    span_schema: mentions
    allow_singletons: true

설정 옵션

필드타입기본값설명
annotation_typestring필수"coreference"여야 합니다
namestring필수이 스키마의 고유 식별자
descriptionstring필수어노테이터에게 표시되는 안내 문구
span_schemastring필수멘션을 제공하는 스팬 스키마의 이름
entity_typeslist[]엔티티 타입 범주 목록
allow_singletonsbooleantrue멘션이 하나뿐인 체인 허용
visual_display.highlight_modestring"background"시각적 스타일: "background", "bracket", "underline"

예시

엔티티 타입 사용

체인을 엔티티 타입별로 분류합니다.

yaml
annotation_schemes:
  - annotation_type: span
    name: ner
    description: Mark named entities
    labels:
      - name: ENTITY
        tooltip: "Any named entity mention"
 
  - annotation_type: coreference
    name: coref
    description: Create coreference chains
    span_schema: ner
    entity_types:
      - name: PERSON
        color: "#6E56CF"
      - name: ORGANIZATION
        color: "#22C55E"
      - name: LOCATION
        color: "#3B82F6"
      - name: OTHER
        color: "#F59E0B"

싱글톤 없이

모든 멘션이 최소 하나의 다른 멘션과 연결되어야 하는 작업의 경우:

yaml
annotation_schemes:
  - annotation_type: span
    name: mentions
    description: Highlight co-referring mentions
    labels:
      - name: MENTION
 
  - annotation_type: coreference
    name: strict_coref
    description: All mentions must be part of a chain with at least 2 mentions
    span_schema: mentions
    allow_singletons: false

사용자 정의 시각적 표시

yaml
annotation_schemes:
  - annotation_type: coreference
    name: coref
    description: Link coreference chains
    span_schema: mentions
    visual_display:
      highlight_mode: "underline"  # Options: background, bracket, underline

사용자 인터페이스

체인 만들기

  1. 멘션 만들기: 스팬 어노테이션 도구로 모든 엔티티 멘션을 표시합니다
  2. 멘션 선택: 함께 묶을 강조 표시된 스팬을 클릭합니다
  3. 체인 만들기: "New Chain"을 클릭해 선택한 멘션을 묶습니다

체인 관리

  • 체인에 추가: 추가 멘션을 선택하고 "Add to Chain"을 클릭합니다
  • 체인 병합: 여러 체인을 선택하고 "Merge Chains"를 클릭해 합칩니다
  • 멘션 제거: 멘션을 선택하고 "Remove Mention"을 클릭해 해당 체인에서 제거합니다

색상 코딩

각 체인에는 자동으로 서로 다른 색상이 부여됩니다. 같은 체인에 속한 멘션은 같은 색상을 공유하므로 어느 체인에 속하는지 시각적으로 쉽게 구분할 수 있습니다.

출력 형식

상호참조 어노테이션은 스팬 링크로 저장됩니다.

json
{
  "span_links": [
    {
      "schema": "coref_chains",
      "link_type": "coreference",
      "span_ids": ["mentions_0_5_MENTION", "mentions_34_37_MENTION", "mentions_72_85_MENTION"],
      "entity_type": "PERSON"
    },
    {
      "schema": "coref_chains",
      "link_type": "coreference",
      "span_ids": ["mentions_15_23_MENTION", "mentions_95_97_MENTION"],
      "entity_type": "ORGANIZATION"
    }
  ]
}

권장 작업 흐름

  1. 1차 검토 - 텍스트를 읽으며 모든 엔티티 멘션을 표시합니다
  2. 2차 검토 - 멘션을 상호참조 체인으로 묶습니다
  3. 검수 - 모든 멘션이 올바르게 배정되었고 빠진 체인이 없는지 확인합니다

모범 사례

  1. 명확한 멘션 경계를 정의하십시오 - 무엇을 멘션으로 볼지 기준을 세웁니다
  2. 중첩 멘션을 처리하십시오 - "마이크로소프트의 CEO" 같은 경우를 어떻게 다룰지 정합니다
  3. 일반 지시 표현을 고려하십시오 - 일반적인 지시 표현을 포함할지 결정합니다
  4. 어노테이터를 교육하십시오 - 상호참조는 복잡하므로 예시와 연습 회차를 제공합니다
  5. 엔티티 타입은 절제해서 사용하십시오 - 너무 많으면 데이터 품질은 나아지지 않으면서 어노테이션 속도만 느려집니다

더 읽어보기

구현 세부 사항은 소스 문서를 참고하십시오.