ID semantici

Arricchisca lo stesso tipo di entità ripetutamente e continuerà a riscoprire le stesse cose del mondo reale — la stessa azienda, lo stesso effetto collaterale di un farmaco, la stessa persona — descritte ogni volta con parole leggermente diverse. Un ID semantico è un identificatore stabile, con ambito a livello di organizzazione, che Entity Enricher assegna a un oggetto a partire dai suoi campi chiave, così quei quasi-duplicati collassano in un'unica identità su cui è possibile raggruppare, deduplicare e unire i dati.

Il problema: stessa cosa, parole diverse

L'identità di un oggetto è costruita a partire dai suoi campi chiave — che possono essere uno o più. Due esempi:

Una chiave

Un effetto collaterale indicizzato per name

Compare come Headache, Céphalée e Cephalalgia nelle diverse esecuzioni e lingue. Un solo campo chiave, tre grafie, un unico concetto reale.

Due chiavi

Un'azienda identificata da nome + paese

Acme Inc. · Stati Uniti e Acme Incorporated · Stati Uniti sono la stessa azienda — mentre Acme Inc. · Germania è un'altra. La seconda chiave disambigua; ecco perché un oggetto può contenerne più di una.

Il semplice confronto di stringhe fallisce in tutti questi casi; una persona sa quali sono uguali. Gli ID semantici codificano automaticamente quel giudizio.

Che cos'è un ID semantico

Come funziona

Dopo che il modello ha restituito il risultato, Entity Enricher risolve ogni ID semantico in sei passaggi — a partire dal più economico. I quattro passaggi precedenti all’embedding sono puro confronto testuale, quindi un’identità risolta a quel livello non ha alcun costo:

1
Componi il testo dell'identità
Unisce i campi chiave dell'oggetto in un'unica stringa, nella sua lingua principale. Contribuisce anche la chiave di un'entità annidata, come elemento disambiguante: un film che porta un titolo condiviso con un altro film si distingue per il nome del regista. Il rovescio della medaglia è che ogni elemento di pari livello che fa riferimento alla stessa entità correlata porta con sé quello stesso valore: quando una chiave correlata rende soltanto simili tra loro gli elementi di pari livello, la rimuova dai partecipanti. Gli elementi contenuti negli array non vengono mai inclusi: ogni elemento di un array possiede una propria identità. L'elenco partecipanti all'identità dell'editor di schema mostra esattamente quali valori compongono il testo e consente di riordinarli o modificarli — schemi che scelgono gli stessi partecipanti nello stesso ordine coniano ID identici. Il testo viene normalizzato (minuscole, rimozione degli incisi tra parentesi, spazi compattati) per ridurre le differenze irrilevanti. Se tutti quei campi chiave risultano vuoti, non c'è nulla con cui identificare l'oggetto e nessun ID può essere assegnato: l'oggetto viene quindi rimosso anziché conservato come oggetto anonimo su cui non è possibile raggruppare, unire o deduplicare — un oggetto annidato diventa null nel suo elemento padre e un elemento all'interno di un elenco viene eliminato dall'elenco. L'entità arricchita non viene mai rimossa: semplicemente non ha un ID.
2
Cerca una corrispondenza esatta
Se quel testo normalizzato esatto è già stato visto nella sua organizzazione, il suo ID esistente viene riutilizzato immediatamente, senza chiamate al modello né costi.
3
Corrispondenza su un codice, se presente
Quando una delle chiavi di identità proprie dell'oggetto è un codice — un campo vincolato da un pattern, o i cui esempi hanno l'aspetto di identificatori — viene composto per primo e confrontato da solo (il codice di un'entità correlata non lo sostituisce mai: è condiviso da ogni elemento di pari livello che fa riferimento a quell'entità). Una corrispondenza esatta di codice determina immediatamente l'identità, qualunque sia la formulazione circostante: LC-39A unifica così tutti i modi in cui è stato scritto il resto del testo. Altrettanto importante, vale anche il contrario: un codice diverso pone il veto su una fusione che il passaggio di embedding avrebbe altrimenti accettato, perché due cose con identificatori diversi sono due cose, per quanto simili possano apparire.
4
Corrispondenza sulle stesse parole in qualsiasi ordine
Prima di spendere un embedding, le parole stesse vengono confrontate come insiemi: se le parole di un testo sono contenute in quelle dell’altro, si tratta della stessa identità scritta con lunghezze diverse — “Boeing” e “The Boeing Company”. Questo intercetta esattamente le differenze di verbosità che gli embedding misurano come molto distanti, e non costa nulla: come per il passaggio sul testo esatto, una corrispondenza qui significa nessuna chiamata di embedding e nessun addebito.
5
Incorpora e confronta
In caso contrario, il testo viene sottoposto a embedding e confrontato, per significato, con i concetti esistenti dello stesso tipo di concetto (per impostazione predefinita il nome del tipo di entità, modificabile nell’editor affinché schemi con nomi diversi condividano un unico spazio concettuale) tramite la similarità vettoriale, così “Acme Inc.” e“Acme Incorporated” finiscono vicini l’uno all’altro.
6
Interroga il giudice
I pochi concetti più vicini vengono passati a un piccolo modello linguistico, che risponde a un'unica domanda: qualcuno di essi indica la stessa cosa nel mondo reale? Vede ogni designazione come parti etichettate — mai il punteggio di similarità, che lo indurrebbe soltanto a fidarsi della geometria. Se risponde sì, quell'ID viene riutilizzato e la nuova formulazione viene memorizzata come un'altra grafia dello stesso concetto, così la volta successiva è gratuita. Se risponde no, o non sa deciderlo, viene coniato un ID del tutto nuovo — mai il contrario, perché due righe sono facili da unire in seguito, mentre una riga fusa per errore no.

Perché un modello e non un numero: la sola similarità sbaglia in entrambe le direzioni. Due grafie dello stesso cantiere navale possono ottenere punteggi molto distanti, mentre una patologia e il suo opposto (“acuta” contro “cronica”) ottengono punteggi quasi identici. Nessuna soglia li separa: solo la conoscenza del significato delle parole. La soglia del giudice (predefinita 0.5, regolabile per proprietà) stabilisce soltanto fin dove cercare candidati su cui valga la pena interrogarsi — non decide mai l'identità.

ID di input vs. ID generati

Se un ID venga generato dipende dal fatto che ne sia già presente uno nell'input per quell'oggetto. È questo che consente il round-trip: arricchire una volta per ottenere gli ID, quindi restituire un ID noto nelle esecuzioni successive per associare nuovi dati alla stessa identità — più economico e privo di ambiguità.

ID già presente nell'input → mantenuto (lookup)

Se l'oggetto che invia ha già un ID semantico, viene trattato come un lookup: l'ID viene mantenuto letteralmente, il record viene collegato a quel concetto esistente e non c'è alcun embedding — nessun costo, nessun match-or-mint. Sta dicendo alla piattaforma “questo oggetto è già identificato nel nostro database”.

Nessun ID nell'input → generato

Se l'oggetto non ha un ID semantico, la piattaforma ne genera uno con i passaggi descritti sopra. Da quel momento tale ID diventa l'identificatore stabile dell'oggetto nel database della sua organizzazione.

Un valore presente ma non riconoscibile (non un vero ID di concetto) viene ignorato e al suo posto viene generato un ID.

Come abilitarlo

1
Scegliete un modello di embedding (una volta per organizzazione)
Un proprietario sceglie un modello con capacità di embedding in Impostazioni → Organizzazione → Predefiniti come modello di embedding predefinito dell’organizzazione (impostazione soggetta al piano; consulti Modelli e prezzi per sapere quali modelli supportano l’embedding). I vettori memorizzati non sono confrontabili tra modelli diversi, quindi, una volta che esistono dei concetti, l’impostazione può soltanto essere azzerata: il cambio avviene come migrazione dalla pagina ID semantici, che rigenera l’embedding di ogni concetto mantenendone gli ID. Senza un modello, gli ID semantici vengono semplicemente saltati.
2
Aggiungi ID semantici allo schema
Due modalità, entrambe nel Workflow Editor:
  • Automaticamente in fase di generazione — selezioni «Genera ID semantici per i tipi»; ogni oggetto con una chiave (propria o su un oggetto annidato 1-1) ne riceve uno, inclusa l'entità radice.
  • Manualmente — usi il controllo “+ Aggiungi ID semantico” su un qualsiasi oggetto o nel piè di pagina dell'entità.

La risoluzione comporta un piccolo consumo di embedding per ogni arricchimento (conteggiato come qualsiasi chiamata al modello). La cache a corrispondenza esatta rende gratuite le ripetizioni e gli ID forniti in input non hanno alcun costo.

Dove compaiono gli ID e cosa farne

Gli ID risolti compaiono nel JSON di output dell'arricchimento (il campo id di ciascun oggetto), nei concetti semantici del dettaglio del record e tutti insieme nella pagina ID semantici, dove il vocabolario che compongono viene consultato e curato. Utilizzarli per:

Ecco come appare un ID risolto dal lato del vocabolario: più grafie, un solo concetto, un unico totale di utilizzi — e il tag auto indica la forma che il giudice di identità ha unificato.

Complementa la fusione multi-modello

La fusione riconcilia i disaccordi tra modelli all'interno di una singola esecuzione; gli ID semantici riconciliano la stessa entità tra esecuzioni e nel tempo. I due meccanismi lavorano insieme.