Nell'ambito dell'elaborazione del linguaggio naturale, l'entity linking, noto anche come named entity linking (NEL), named entity disambiguation (NED), named entity recognition e disambiguation (NERD) o named entity normalization (NEN)M. A. Khalid, V. Jijkoun and M. de Rijke (2008). The impact of named entity normalization on information retrieval for question answering. Proc. ECIR. è il compito di assegnare un'identità univoca a entità (come personaggi famosi, luoghi o aziende) menzionate in un testo. Ad esempio, data la frase "Washington è la capitale degli Stati Uniti", l'idea è di determinare che "Washington" si riferisce alla città di Washington e non a George Washington o qualsiasi altra entità che potrebbe essere indicata come "Washington". L'entity linking è diverso dal named entity recognition (NER) in quanto il NER identifica l'occorrenza di un'entità denominata nel testo, ma non identifica l'entità specifica (vedere Differenze da altre tecniche).
Introduzione
Nell'entity linking, le parole di interesse (nomi di persone, ubicazioni e aziende) sono collegate da un testo di input a entità univoche contenute in una knowledge base di destinazione. Le parole di interesse sono chiamate named entity (NE), menzioni o forme di superficie. La knowledge base di destinazione dipende dall'applicazione prevista, ma per gli algoritmi di entity linking pensati per funzionare su testo di contenuto generico è comune utilizzare knowledge base derivate da Wikipedia (come Wikidata o DBpedia).Xianpei Han, Le Sun and Jun Zhao (2011). Collective entity linking in web text: a graph-based method. Proc. SIGIR. In questo caso, ogni singola pagina di Wikipedia è considerata un'entità separata. Le tecniche di entity linking che associano le named entity ad entità di Wikipedia prendono anche il nome di wikificazione.Rada Mihalcea and Andras Csomai (2007) Wikify! Linking Documents to Encyclopedic Knowledge. Proc. CIKM.
Considerando nuovamente la frase "Washington è la capitale degli Stati Uniti", l'output atteso di un algoritmo di entity linking sarà Washington e Stati Uniti d'America. Questi URL (Uniform Resource Locators) possono essere utilizzati come URI (Uniform Resource Identifier) univoci per le entità nella knowledge base. L'utilizzo di una diversa knowledge base restituirà diversi URI, ma per gran parte delle knowledge base costruite a partire da Wikipedia esistono corrispondenze univoche tra gli URI delle singole knowledge base, in modo tale che siano interscambiabili.
Nella maggior parte dei casi, le knowledge base sono costruite manualmenteWikidata, ma in applicazioni in cui sono disponibili corpus di testo di grandi dimensioni, la knowledge base può essere dedotta automaticamente a partire dal testo disponibile.Aaron M. Cohen (2005). Unsupervised gene/protein named entity normalization using automatically extracted dictionaries. Proc. ACL-ISMB Workshop on Linking Biological Literature, Ontologies and Databases: Mining Biological Semantics, pp. 17–24.
Applicazioni
L'entity linking è fondamentale in molti ambiti, come l'analisi del testo, i sistemi di raccomandazione, la ricerca semantica e i chatbot. Tutti questi campi beneficiano di rappresentazioni di alto livello del testo, in cui i concetti rilevanti per l'applicazione sono separati dal testo grezzo e da altri dati non significativi.
Ad esempio, un'attività comune eseguita dai motori di ricerca consiste nel trovare documenti simili a uno dato come input o per trovare ulteriori informazioni sulle persone menzionate in esso. Si consideri una frase contenente l'espressione "la capitale della Francia": senza entity linking, il motore di ricerca che esamina il contenuto dei documenti non sarebbe in grado di recuperare direttamente i documenti contenenti la parola "Parigi", portando a cosiddetti falsi negativi (FN). Ancor peggio, il motore di ricerca potrebbe produrre corrispondenze spurie (o falsi positivi (FP)), come il recupero di documenti che si riferiscono a "Francia" nel senso di nazione.
Esistono molti approcci ortogonali all'entity linking per recuperare documenti simili a un documento di input. Ad esempio, l'utilizzo di latent semantic analysis (LSA) o il confronto di embedding di documenti ottenuti mediante doc2vec. Tuttavia, queste tecniche non consentono lo stesso controllo granulare che viene fornito da tecniche di entity linking, in quanto vengono restituiti altri documenti invece di creare rappresentazioni di alto livello del testo originale. Ad esempio, ottenere informazioni schematiche su "Parigi", come presentato dagli Infobox di Wikipedia, risulta meno semplice, o persino infattibile, a seconda della complessità della query..
Inoltre, l'entity linking è stato utilizzato per migliorare le prestazioni dei sistemi di recupero delle informazioni e per migliorare le prestazioni di ricerca nelle biblioteche digitali. L'entity linking è anche un input chiave per la ricerca semantica.
Difficoltà nell'entity linking
Un sistema di entity linking deve poter gestire una serie di difficoltà per poter essere adeguato ad applicazioni reali. Alcune di queste problematiche sono intrinseche all'entity linking stesso, come l'ambiguità del testo, mentre altre, come la scalabilità e il tempo di esecuzione, diventano rilevanti quando si considera l'utilizzo di tali sistemi in applicazioni reali.
Variazioni dei nomi: la stessa entità potrebbe venire espressa in molti modi diversi. Le variazioni dei nomi possono essere causate da abbreviazioni (New York, NY), alias (New York, Big Apple), o varianti di spelling ed errori (New yokr).
Ambiguità: la stessa menzione può spesso riferirsi a molte entità diverse, a seconda del contesto, poiché molti nomi tendono ad essere polisemici (cioè hanno significati multipli). La parola Washington, tra le altre cose, potrebbe riferirsi alla capitale statunitense o a George Washington. In alcuni casi (come nell'espressione la capitale degli Stati Uniti), non vi è alcuna somiglianza testuale tra il testo di partenza e l'entità che si desidera individuare (Washington).
Assenza delle entità: a volte, alcune named entity potrebbero non avere una corrispondente entità nella knowledge base di destinazione. Ciò potrebbe accadere quando si ha a che fare con entità molto specifiche o insolite o quando si elaborano documenti su eventi recenti, in cui potrebbero esserci menzioni di persone o eventi che non hanno ancora un'entità corrispondente nella knowledge base. Un'altra situazione comune in cui è comune avere entità mancanti è quando si utilizzano knowledge base facenti riferimento a un dominio specifico (ad esempio, una knowledge base di biologia o un database di film). In tutti questi casi, l'algoritmo di entity linking dovrebbe restituire un collegamento nullo, cioè NIL. Capire quando restituire una previsione NIL non è semplice e sono stati proposti molti approcci diversi; ad esempio, limitando un qualche valore di confidenza nell'algoritmo di entity linking, o aggiungendo un'entità NIL aggiuntiva alla knowledge base, che viene trattata allo stesso modo delle altre entità. Inoltre, in alcuni casi fornire una stima errata, ma correlata al valore esatto, potrebbe essere migliore di non fornire alcun risultato, dal punto di vista di un utente finale.
Scalabilità e velocità: è auspicabile che un algoritmo di entity linking fornisca risultati in tempi ragionevoli e spesso in tempo reale. Questo requisito è fondamentale per motori di ricerca e chatbot. Garantire tempi di esecuzione ridotti può essere difficile quando si utilizzano knowledge base o documenti di grandi dimensioni. Ad esempio, Wikipedia contiene circa 9 milioni di entità e oltre 170 milioni di relazioni tra loro.
Evoluzione dell'informazione: un algoritmo di entity linking dovrebbe anche occuparsi delle informazioni in evoluzione e integrare facilmente gli aggiornamenti che possono essere fatti nella corrispondente knowledge base. Il problema dell'evoluzione delle informazioni è a volte collegato al problema delle entità mancanti, ad esempio quando si elaborano articoli di notizie recenti in cui ci sono menzioni di eventi che non hanno una voce corrispondente nella knowledge base a causa della loro novità.
Lingue multiple: un algoritmo di entity linking può supportare query eseguite in più lingue. Idealmente, l'accuratezza del sistema non dovrebbe essere influenzata dalla lingua di input e le entità nella knowledge base dovrebbero essere le stesse in ogni lingua supportata.
Differenze da altre tecniche
L'entity linking è anche noto come named entity disambiguation (NED) ed è profondamente collegato a wikificazione e a record linkage. Le definizioni sono spesso sottili e variano leggermente tra i diversi autori: Alhelbawy et al. considerano l'entity linking come una versione più ampia del NED, in quanto il NED assume che l'entità che corrisponde a una named entity sia contenuta nella knowledge base. I sistemi di entity linking, invece, possono trattare casi in cui nessuna entità presente nella knowledge base di riferimento sia adatta a essere collegata con la named entity considerata. Altri autori non fanno tale distinzione e usano le due definizioni in modo equivalente.
La wikificazione è il compito di collegare le menzioni testuali alle entità di Wikipedia (generalmente, limitando l'ambito alla Wikipedia in inglese in caso di wikificazione multilingue).
Il record linkage (RL) è considerato un campo più ampio rispetto all'entity linking e consiste nel trovare i documenti, attraverso set di dati multipli e spesso eterogenei, che si riferiscono alla stessa entità. Il record linkage è un componente chiave per digitalizzare gli archivi e per unire più knowledge base.
Il named entity recognition (NER) individua e classifica le named entity contenute in un testo non strutturato in categorie predefinite come nomi, organizzazioni, luoghi geografici e altro. Ad esempio, la seguente frase:
sarebbe elaborata da un sistema NER in modo tale da ottenere il seguente risultato:
Il named entity recognition è solitamente una fase di pre-elaborazione negli algoritmi di entity linking, in quanto può essere utile sapere in anticipo quali parole debbano essere collegate alle entità della knowledge base.
La coreference resolution stabilisce se più parole in un testo si riferiscono alla stessa entità. Può essere utile, ad esempio, per capire la parola a cui si riferisce un pronome. Si consideri il seguente esempio:
In questo esempio, un algoritmo di coreference resolution identificherebbe che la parola città si riferisce a Parigi, e non alla Francia o ad un'altra entità. Una distinzione notevole rispetto a entity linking è che coreference resolution non assegna nessuna identità univoca alle parole del testo, ma semplicemente stabilisce se si riferiscono alla stessa entità o meno.
Tecniche di entity linking
L'entity linking è stato oggetto di grandi studi sia nell'industria che nel mondo accademico per l'ultimo decennio. Tuttavia, ad oggi gran parte delle difficoltà esistenti sono ancora irrisolte, e sono stati proposti innumerevoli algoritmi di entity linking, con punti di forza e punti deboli molto diversi.
In generale, le moderne tecniche di entity linking possono essere suddivise in due categorie:
Approcci basati sull'analisi di testo, che si avvalgono di funzionalità testuali estratte da corpora di testo di grandi dimensioni (ad esempio Term frequency - Inverse document frequency (Tf-Idf), probabilità di co-occorrenza delle parole, ecc...).
Approcci basati sull'analisi di grafi, che sfruttano la struttura dei knowledge graph per rappresentare il contesto e la relazioni tra entità.
Spesso i sistemi di entity linking non possono essere categorizzati esattamente in una di queste categorie, in quanto fanno uso di knowledge graph che sono stati arricchiti con informazioni aggiuntive estratte da un testo, ad esempio, dai corpus testuali impiegati per costruire i knowledge graph stessi.
Approcci basati sull'analisi di testo