Skip to content

Liaison d'entités

Liez les annotations de segments à des bases de connaissances externes comme Wikidata, UMLS ou des API personnalisées.

Liaison d'entités

La liaison d'entités permet aux annotateurs de connecter des annotations de segments à des bases de connaissances (KB) externes comme Wikidata ou UMLS. Cela crée des liens sémantiques entre les mentions textuelles et les entités canoniques, précieux pour la reconnaissance d'entités nommées, la normalisation de concepts et la construction de graphes de connaissances.

Fonctionnement

Lorsque la liaison d'entités est activée pour un schéma d'annotation de segments :

  1. Les annotateurs surlignent du texte et attribuent une étiquette (par ex. "PERSON", "ORGANIZATION")
  2. Une icône de lien apparaît dans la barre de contrôle du segment
  3. Cliquer sur l'icône ouvre une fenêtre de recherche pour trouver les entités KB correspondantes
  4. L'identifiant de l'entité sélectionnée est stocké avec l'annotation du segment
  5. Les segments liés affichent une icône remplie et montrent les détails de l'entité au survol

Démarrage rapide

Activez la liaison d'entités en ajoutant la configuration entity_linking à un schéma de segments :

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

Options de configuration

OptionTypeDéfautDescription
enabledbooleanfalseActiver la liaison d'entités pour ce schéma
knowledge_baseslist[]Liste des configurations de KB
auto_searchbooleantrueRechercher automatiquement à l'ouverture de la fenêtre
requiredbooleanfalseExiger un lien d'entité avant de sauvegarder le segment
multi_selectbooleanfalseAutoriser la liaison à plusieurs entités

Configuration des bases de connaissances

OptionTypeDéfautDescription
namestringobligatoireIdentifiant unique pour cette KB
typestringobligatoireType de KB : wikidata, umls ou rest
api_keystringnullClé API pour les services authentifiés
base_urlstringnullURL de base pour les API REST
languagestring"en"Code de langue pour les résultats de recherche
timeoutinteger10Délai d'attente des requêtes en secondes

Bases de connaissances supportées

Wikidata

Base de connaissances libre et ouverte avec plus de 100 millions d'entités. Aucune clé API requise.

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

Offre des étiquettes multilingues, des alias d'entités (par ex. "NYC" trouve "New York City") et des liens vers des articles Wikipedia.

UMLS

Terminologie médicale et biomédicale complète. Nécessite une clé API gratuite de UTS.

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

Inclut des concepts médicaux, médicaments, maladies, procédures et références croisées à plus de 200 vocabulaires sources (SNOMED CT, ICD-10, MeSH, RxNorm).

API REST personnalisées

Connectez-vous à n'importe quelle base de connaissances avec une 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

Bases de connaissances multiples

Configurez plusieurs KB pour permettre aux annotateurs de choisir la source la plus appropriée :

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 déroulant dans la fenêtre de recherche permet aux annotateurs de basculer entre les bases de connaissances configurées.

Mode sélection multiple

Activez la sélection multiple pour permettre la liaison d'un segment à plusieurs entités, utile pour les mentions ambiguës :

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

Format de données

Les segments liés à des entités incluent des champs supplémentaires dans la sortie :

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"
        }
      ]
    }
  }
}

Bonnes pratiques

  1. Activez la recherche automatique pour plus d'efficacité - pré-remplit la recherche avec le texte du segment
  2. N'exigez pas la liaison sauf si c'est essentiel - ne bloquez pas l'annotation si l'entité n'est pas trouvée
  3. Définissez des délais d'attente appropriés pour les réseaux lents
  4. Associez la KB au type d'entité - Utilisez Wikidata pour les entités générales, UMLS pour les termes biomédicaux, les API personnalisées pour les entités spécifiques au domaine
  5. Utilisez la sélection multiple pour les mentions ambiguës - abréviations, noms communs, termes polysémiques

Pour aller plus loin

Pour les détails d'implémentation, voir la documentation source.