Skip to content

스팬 연결

Potato에서 주석된 두 텍스트 스팬 사이에 방향성 있는 유형화된 관계를 생성합니다. 관계 추출 작업을 위해 링크 유형, 색상, 양방향 연결을 구성합니다.

v2.1.0에서 추가됨

스팬 연결을 사용하면 주석자가 이미 주석된 스팬(텍스트 세그먼트) 사이에 유형화된 관계를 생성할 수 있습니다. 이는 "PERSON works_for ORGANIZATION" 또는 "PERSON collaborates_with PERSON"처럼 개체들이 서로 어떻게 관련되는지 식별해야 하는 관계 추출 작업에 유용합니다.

개요

스팬 연결 기능은 다음을 제공합니다.

  • 유형화된 관계: 서로 다른 색상과 제약 조건을 가진 여러 링크 유형을 정의합니다
  • 방향성 및 무방향 링크: 방향성 관계와 대칭 관계를 모두 지원합니다
  • n항 링크: 여러 스팬 사이에 링크를 생성합니다(쌍에만 국한되지 않음)
  • 시각적 아크 표시: 텍스트 위에 색상이 있는 아크로 렌더링된 관계를 확인합니다
  • 레이블 제약 조건: 어떤 스팬 레이블이 출발점 또는 도착점이 될 수 있는지 제한합니다

구성

스팬 연결을 사용하려면 두 개의 주석 스키마가 필요합니다.

  1. 개체를 주석 처리하는 span 스키마
  2. 관계를 주석 처리하는 span_link 스키마
yaml
annotation_schemes:
  # First, define the span schema for named entities
  - annotation_type: span
    name: entities
    description: "Highlight named entities"
    labels:
      - name: "PERSON"
        color: "#3b82f6"
      - name: "ORGANIZATION"
        color: "#22c55e"
      - name: "LOCATION"
        color: "#f59e0b"
    sequential_key_binding: true
 
  # Then, define the span_link schema for relationships
  - annotation_type: span_link
    name: relations
    description: "Annotate relationships between entities"
    span_schema: entities  # References the span schema above
    link_types:
      - name: "WORKS_FOR"
        directed: true
        allowed_source_labels: ["PERSON"]
        allowed_target_labels: ["ORGANIZATION"]
        color: "#dc2626"
      - name: "COLLABORATES_WITH"
        directed: false
        allowed_source_labels: ["PERSON"]
        allowed_target_labels: ["PERSON"]
        color: "#06b6d4"

구성 옵션

필수 필드

필드설명
annotation_type"span_link"이어야 합니다
name스키마의 고유 식별자
description주석자에게 표시되는 설명
span_schema연결할 스팬 주석 스키마의 이름
link_types링크 유형 정의의 배열

링크 유형 옵션

필드유형설명
namestring필수. 링크 유형의 이름/레이블
directedboolean링크가 방향성을 갖는지 여부. 기본값: false
colorstring링크의 16진수 색상 코드
allowed_source_labelsarray출발점이 될 수 있는 스팬 레이블
allowed_target_labelsarray도착점이 될 수 있는 스팬 레이블
max_spansinteger이 링크 유형의 최대 스팬 수(n항 링크용)

시각적 표시 옵션

yaml
visual_display:
  enabled: true        # Show arc visualization
  arc_position: "above"  # Position of arcs
  show_labels: true    # Show link type labels on arcs

사용법

스팬 생성

  1. 먼저 스팬 레이블을 선택하고 텍스트를 강조 표시하여 텍스트를 주석 처리합니다
  2. 강조 표시된 각 스팬은 연결에 사용할 수 있게 됩니다

링크 생성

  1. 사용 가능한 옵션에서 링크 유형을 선택합니다
  2. 스팬을 클릭하여 현재 링크에 추가합니다(선택된 스팬은 강조 표시됨)
  3. "Create Link"를 클릭하여 링크를 확정합니다
  4. 방향성 링크의 경우, 처음 선택한 스팬이 출발점이고 마지막 스팬이 도착점입니다

링크 보기

  • 생성된 링크는 "Existing Links" 섹션에 나타납니다
  • 시각적 표시가 활성화되어 있으면 연결된 스팬을 잇는 아크가 텍스트 위에 그려집니다
  • 아크는 링크 유형에 따라 색상으로 구분됩니다

링크 삭제

  • "Existing Links" 섹션에서 링크 옆에 있는 삭제 버튼(x)을 클릭합니다

데이터 형식

입력 데이터

ID 및 텍스트 필드가 있는 표준 텍스트 데이터입니다.

json
[
  {
    "id": "item_1",
    "text": "John Smith works at Google as a senior engineer."
  }
]

출력 형식

주석에는 스팬 주석과 링크 주석이 모두 포함됩니다.

json
{
  "id": "item_1",
  "text": "John Smith works at Google as a senior engineer.",
  "entities": [
    {"start": 0, "end": 10, "label": "PERSON", "text": "John Smith"},
    {"start": 20, "end": 26, "label": "ORGANIZATION", "text": "Google"}
  ],
  "relations": [
    {
      "link_type": "WORKS_FOR",
      "span_ids": ["span_abc123", "span_def456"],
      "direction": "directed"
    }
  ]
}

레이블 제약 조건

각 링크 유형에 어떤 스팬 레이블이 참여할 수 있는지 제한합니다.

yaml
link_types:
  - name: "WORKS_FOR"
    directed: true
    allowed_source_labels: ["PERSON"]      # Only PERSON can be source
    allowed_target_labels: ["ORGANIZATION"]  # Only ORGANIZATION can be target

제약 조건이 위반되면 UI는 오류 메시지를 표시하고 링크 생성을 차단합니다.

n항 링크

기본적으로 링크는 정확히 2개의 스팬을 연결합니다. 더 많은 개체가 관여하는 관계의 경우:

yaml
link_types:
  - name: "MEETING"
    directed: false
    max_spans: 5  # Allow up to 5 participants
    allowed_source_labels: ["PERSON"]
    allowed_target_labels: ["PERSON"]

예제

완전히 동작하는 예제는 다음에서 확인할 수 있습니다.

  • 구성: project-hub/simple_examples/simple-span-linking/config.yaml
  • 데이터: project-hub/simple_examples/simple-span-linking/data.json

실행하려면:

bash
cd project-hub/simple_examples
python ../../potato/flask_server.py start simple-span-linking/config.yaml -p 9001

  1. 스팬을 먼저 주석 처리하십시오: 스팬을 연결하기 전에 반드시 스팬 주석을 생성하십시오
  2. 색상을 효과적으로 사용하십시오: 서로 다른 링크 유형에 대해 명확한 색상을 선택하십시오
  3. 방향을 고려하십시오: 관계에 명확한 방향이 있을 때는 방향성 링크를 사용하십시오
  4. 키보드 단축키: 스팬 레이블은 더 빠른 주석을 위해 키보드 단축키(1, 2, 3...)를 지원합니다

더 읽어보기

구현 세부 사항은 원본 문서를 참조하십시오.