Skip to content
Questa pagina non è ancora disponibile nella tua lingua. Viene mostrata la versione in inglese.

Entity Linking

Collega le annotazioni span a basi di conoscenza esterne come Wikidata, UMLS o API personalizzate.

Entity Linking

L'entity linking consente agli annotatori di collegare le annotazioni span a basi di conoscenza (KB) esterne come Wikidata o UMLS. Questo crea link semantici tra le menzioni testuali e le entità canoniche, utile per il riconoscimento di entità nominate, la normalizzazione dei concetti e la costruzione di grafi di conoscenza.

Come funziona

Quando l'entity linking è abilitato per uno schema di annotazione span:

  1. Gli annotatori evidenziano il testo e assegnano un'etichetta (ad es., "PERSON", "ORGANIZATION")
  2. Un'icona di collegamento appare nella barra di controllo dello span
  3. Facendo clic sull'icona si apre una finestra modale di ricerca per trovare le entità KB corrispondenti
  4. L'ID dell'entità selezionata viene memorizzato con l'annotazione span
  5. Gli span collegati mostrano un'icona piena e i dettagli dell'entità al passaggio del mouse

Avvio rapido

Abilita l'entity linking aggiungendo la configurazione entity_linking a uno schema span:

yaml
annotation_schemes:
  - annotation_type: span
    name: ner
    description: Named Entity Recognition with KB linking
    labels:
      - name: PERSON
        tooltip: "People's names"
      - name: ORGANIZATION
        tooltip: "Companies, agencies, institutions"
      - name: LOCATION
        tooltip: "Places, cities, countries"
    entity_linking:
      enabled: true
      knowledge_bases:
        - name: wikidata
          type: wikidata
          language: en

Opzioni di configurazione

OpzioneTipoPredefinitoDescrizione
enabledbooleanfalseAbilita l'entity linking per questo schema
knowledge_baseslist[]Elenco delle configurazioni KB
auto_searchbooleantrueCerca automaticamente quando si apre la finestra modale
requiredbooleanfalseRichiede il link all'entità prima di salvare lo span
multi_selectbooleanfalseConsente il collegamento a più entità

Configurazione della base di conoscenza

OpzioneTipoPredefinitoDescrizione
namestringobbligatorioIdentificatore univoco per questa KB
typestringobbligatorioTipo di KB: wikidata, umls o rest
api_keystringnullChiave API per servizi autenticati
base_urlstringnullURL base per API REST
languagestring"en"Codice lingua per i risultati di ricerca
timeoutinteger10Timeout della richiesta in secondi

Basi di conoscenza supportate

Wikidata

Base di conoscenza gratuita e aperta con oltre 100 milioni di entità. Non è richiesta una chiave API.

yaml
entity_linking:
  enabled: true
  knowledge_bases:
    - name: wikidata
      type: wikidata
      language: en

Supporta etichette multilingue, alias di entità (ad es., "NYC" trova "New York City") e link agli articoli di Wikipedia.

UMLS

Terminologia medica e biomedica completa. Richiede una chiave API gratuita da UTS.

yaml
entity_linking:
  enabled: true
  knowledge_bases:
    - name: umls
      type: umls
      api_key: ${UMLS_API_KEY}

Include concetti medici, farmaci, malattie, procedure e riferimenti incrociati a oltre 200 vocabolari sorgente (SNOMED CT, ICD-10, MeSH, RxNorm).

API REST personalizzate

Collegati a qualsiasi base di conoscenza con un'API REST:

yaml
entity_linking:
  enabled: true
  knowledge_bases:
    - name: internal_kb
      type: rest
      base_url: https://api.example.com
      api_key: optional_api_key
      extra_params:
        search_endpoint: /search
        entity_endpoint: /entity/{entity_id}
        search_query_param: q
        results_path: data.results
        entity_id_field: id
        label_field: name
        description_field: description

Basi di conoscenza multiple

Configura più KB per consentire agli annotatori di scegliere la fonte più appropriata:

yaml
entity_linking:
  enabled: true
  knowledge_bases:
    - name: wikidata
      type: wikidata
      language: en
    - name: umls
      type: umls
      api_key: ${UMLS_API_KEY}
    - name: company_entities
      type: rest
      base_url: https://internal.company.com/api/entities

Un menu a discesa nella finestra modale di ricerca consente agli annotatori di passare tra le basi di conoscenza configurate.

Modalità multi-selezione

Abilita la multi-selezione per consentire il collegamento di uno span a più entità, utile per menzioni ambigue:

yaml
entity_linking:
  enabled: true
  multi_select: true
  knowledge_bases:
    - name: wikidata
      type: wikidata
      language: en

Formato dei dati

Gli span con entity linking includono campi aggiuntivi nell'output:

json
{
  "id": "instance_001",
  "text": "Albert Einstein was born in Ulm, Germany in 1879.",
  "annotations": {
    "ner": {
      "spans": [
        {
          "text": "Albert Einstein",
          "start": 0,
          "end": 15,
          "label": "PERSON",
          "kb_id": "Q937",
          "kb_source": "wikidata",
          "kb_label": "Albert Einstein"
        },
        {
          "text": "Ulm",
          "start": 28,
          "end": 31,
          "label": "LOCATION",
          "kb_id": "Q3012",
          "kb_source": "wikidata",
          "kb_label": "Ulm"
        }
      ]
    }
  }
}

Buone pratiche

  1. Abilita la ricerca automatica per l'efficienza - pre-popola la ricerca con il testo dello span
  2. Non rendere il collegamento obbligatorio salvo che sia essenziale - non bloccare l'annotazione se l'entità non viene trovata
  3. Imposta timeout appropriati per reti lente
  4. Abbina la KB al tipo di entità - Usa Wikidata per entità generali, UMLS per termini biomedici, API personalizzate per entità specifiche del dominio
  5. Usa la multi-selezione per menzioni ambigue - abbreviazioni, nomi comuni, termini polisemici

Ulteriori letture

Per i dettagli di implementazione, consulta la documentazione sorgente.