logo

Riconoscimento di entità denominate

Riconoscimento di entità denominate (NER) è una tecnica in elaborazione del linguaggio naturale (PNL) che si concentra sull’identificazione e classificazione delle entità. Lo scopo del NER è quello di estrarre automaticamente informazioni strutturate da testo non strutturato, consentendo alle macchine di comprendere e classificare le entità in modo significativo per varie applicazioni come il riepilogo del testo, la creazione di grafici della conoscenza, la risposta a domande e la costruzione di grafici della conoscenza. L'articolo esplora il fondamenti, metodi e implementazione del modello NER.

Che cos'è il riconoscimento delle entità denominate (NER)?

Riconoscimento dell'entità del nome (NER) è indicato anche come identificazione dell'entità , suddivisione delle entità, E estrazione di entità . Il NER è il componente dell'estrazione delle informazioni che mira a identificare e classificare le entità denominate all'interno di testo non strutturato. Il NER prevede l'identificazione delle informazioni chiave nel testo e la classificazione in una serie di categorie predefinite. Un'entità è ciò di cui si parla o si fa riferimento costantemente nel testo, come nomi di persone, organizzazioni, luoghi, espressioni temporali, quantità, percentuali e categorie più predefinite.

Applicazioni del sistema NER in vari settori, tra cui la risposta alle domande, il recupero delle informazioni e la traduzione automatica. Il NER svolge un ruolo importante nel migliorare la precisione degli altri PNL attività come l'etichettatura e l'analisi di parti del discorso. Fondamentalmente, la PNL è solo un processo in due fasi, di seguito sono riportati i due passaggi coinvolti:



  • Individuazione delle entità dal testo
  • Classificandoli in diverse categorie

Ambiguità nel NER

  • Per una persona, la definizione di categoria è intuitivamente abbastanza chiara, ma per i computer c'è qualche ambiguità nella classificazione. Vediamo alcuni esempi ambigui:
    • L'Inghilterra (Organizzazione) ha vinto la Coppa del Mondo 2019 contro La Coppa del Mondo 2019 si è svolta in Inghilterra (Località).
    • Washington (Località) è la capitale degli Stati Uniti vs Il primo presidente degli Stati Uniti fu Washington (Persona).

Come funziona il riconoscimento delle entità nominate (NER)?

Il funzionamento del riconoscimento dell'entità denominata è discusso di seguito:

  • Il sistema NER analizza l'intero testo di input per identificare e localizzare le entità denominate.
  • Il sistema identifica quindi i confini della frase considerando le regole di capitalizzazione. Riconosce la fine della frase quando una parola inizia con la lettera maiuscola, supponendo che possa essere l'inizio di una nuova frase. Conoscere i confini della frase aiuta a contestualizzare le entità all'interno del testo, consentendo al modello di comprendere relazioni e significati.
  • Il NER può essere addestrato a classificare interi documenti in diversi tipi, come fatture, ricevute o passaporti. La classificazione dei documenti migliora la versatilità del NER, consentendogli di adattare il riconoscimento delle entità in base alle caratteristiche specifiche e al contesto dei diversi tipi di documenti.
  • Il NER utilizza algoritmi di apprendimento automatico, compreso l'apprendimento supervisionato, per analizzare set di dati etichettati. Questi set di dati contengono esempi di entità annotate, guidando il modello nel riconoscere entità simili in dati nuovi e invisibili.
  • Attraverso molteplici iterazioni di training, il modello affina la propria comprensione delle caratteristiche contestuali, delle strutture sintattiche e dei modelli di entità, migliorando continuamente la sua precisione nel tempo.
  • La capacità del modello di adattarsi ai nuovi dati gli consente di gestire variazioni nel linguaggio, nel contesto e nei tipi di entità, rendendolo più robusto ed efficace.

Riconoscimento di entità denominate (NER) Metodi

Metodo basato sul lessico

Il NER utilizza un dizionario con un elenco di parole o termini. Il processo prevede il controllo se qualcuna di queste parole è presente in un dato testo. Tuttavia, questo approccio non è comunemente utilizzato perché richiede un aggiornamento costante e un’attenta manutenzione del dizionario per mantenerlo accurato ed efficace.

Metodo basato su regole

Il metodo Rule Based NER utilizza un insieme di regole predefinite che guidano l'estrazione delle informazioni. Queste regole si basano su modelli e contesto. Le regole basate su modelli si concentrano sulla struttura e sulla forma delle parole, esaminando i loro modelli morfologici. D'altra parte, le regole basate sul contesto considerano le parole circostanti o il contesto in cui una parola appare all'interno del documento di testo. Questa combinazione di regole basate su modelli e basate sul contesto migliora la precisione dell'estrazione delle informazioni nel riconoscimento delle entità denominate (NER).

Metodo basato sull'apprendimento automatico

Classificazione multiclasse con algoritmi di machine learning

  • Un modo è addestrare il modello per classificazione multiclasse utilizzando diversi algoritmi di apprendimento automatico, ma richiede molta etichettatura. Oltre all'etichettatura, il modello richiede anche una profonda comprensione del contesto per gestire l'ambiguità delle frasi. Ciò rende un compito impegnativo per un semplice algoritmo di apprendimento automatico.

Campo casuale condizionale (CRF)

  • Il campo casuale condizionale è implementato sia da NLP Speech Tagger che da NLTK. È un modello probabilistico che può essere utilizzato per modellare dati sequenziali come le parole.
  • Il CRF può catturare una profonda comprensione del contesto della frase. In questo modello, l'input {	ext{X}} = sinistra { vec{x}_{1} ,vec{x}_{2} ,vec{x}_{3}, ldots,vec{x} _{T} destra }
    p(y | mathbf{x}) = frac{1}{z(vec{x})} prod_{t=1}^{T} expleft{ sum_{k=1} ^{K} omega_k f_k(y_t, y_{t-1}, vec{x}_t) 
ight}

Metodo basato sul deep learning

  • Il sistema NER di deep learning è molto più accurato del metodo precedente, poiché è in grado di assemblare parole. Ciò è dovuto al fatto che utilizzava un metodo chiamato word embedding, capace di comprendere la relazione semantica e sintattica tra varie parole.
  • È anche in grado di apprendere automaticamente analisi specifiche su argomenti e parole di alto livello.
  • Ciò rende il NER di deep learning applicabile per l’esecuzione di più attività. Apprendimento approfondito può svolgere da solo la maggior parte del lavoro ripetitivo, quindi i ricercatori, ad esempio, possono utilizzare il loro tempo in modo più efficiente.

Come implementare NER in Python?

Per implementare il sistema NER, sfrutteremo la libreria Spacy. Il codice può essere eseguito su colab, tuttavia a scopo di visualizzazione. Raccomando l'ambiente locale. Possiamo installare le librerie richieste utilizzando:

!pip install spacy !pip install nltk ! python -m spacy download en_core_web_sm>

Installa librerie importanti

Python3

import> pandas as pd> import> spacy> import> requests> from> bs4>import> BeautifulSoup> nlp>=> spacy.load(>'en_core_web_sm'>)> pd.set_option(>'display.max_rows'>,>200>)>
>
>

NER utilizzando Spacy

Nel codice seguente utilizziamo SpaCy, una libreria di elaborazione del linguaggio naturale per elaborare testo ed estrarre entità denominate. Il codice scorre le entità denominate identificate nel documento elaborato e stampa il testo, il carattere iniziale, il carattere finale e l'etichetta di ciascuna entità.

Python3

content>=> 'Trinamool Congress leader Mahua Moitra has moved the Supreme Court against her expulsion from the Lok Sabha over the cash-for-query allegations against her. Moitra was ousted from the Parliament last week after the Ethics Committee of the Lok Sabha found her guilty of jeopardising national security by sharing her parliamentary portal's login credentials with businessman Darshan Hiranandani.'> doc>=> nlp(content)> for> ent>in> doc.ents:> >print>(ent.text, ent.start_char, ent.end_char, ent.label_)>
>
>

Produzione:

Congress 10 18 ORG Mahua Moitra 26 38 PERSON the Supreme Court 49 66 ORG the Lok Sabha 94 107 PERSON Moitra 157 163 ORG Parliament 184 194 ORG last week 195 204 DATE the Ethics Committee 211 231 ORG Darshan Hiranandani 373 392 PERSON>

L'output mostrava i nomi delle entità, le loro posizioni iniziale e finale nel testo e le etichette previste.

Visualizzare

ILdisplacy.render>la funzione di spaCy viene utilizzata per visualizzare le entità denominate in un testo. Genera una rappresentazione visiva con evidenziazioni colorate che indicano le entità riconosciute e le rispettive categorie.

Python3

from> spacy>import> displacy> displacy.render(doc, style>=>'ent'>)>
>
>

Produzione:

Come implementare NER in Python?

Utilizzando il codice seguente, creeremo un dataframe dalle entità denominate estratte da spaCy, incluso il testo, il tipo (etichetta) e il lemma di ciascuna entità.

Python3

entities>=> [(ent.text, ent.label_, ent.lemma_)>for> ent>in> doc.ents]> df>=> pd.DataFrame(entities, columns>=>[>'text'>,>'type'>,>'lemma'>])> print>(df)>
>
>

Produzione:

text type lemma 0 Congress ORG Congress 1 Mahua Moitra PERSON Mahua Moitra 2 the Supreme Court ORG the Supreme Court 3 the Lok Sabha PERSON the Lok Sabha 4 Moitra ORG Moitra 5 Parliament ORG Parliament 6 last week DATE last week 7 the Ethics Committee ORG the Ethics Committee 8 Darshan Hiranandani PERSON Darshan Hiranandani>

Il data frame fornisce una rappresentazione strutturata delle entità denominate, dei loro tipi e delle forme lemmatizzate.

Domande frequenti (FAQ)

1. Qual è lo scopo del sistema NER?

Lo scopo del NER è quello di estrarre automaticamente le informazioni strutturate dal testo non strutturato, consentendo alle macchine di comprendere e classificare le entità in modo significativo per varie applicazioni come il riepilogo del testo, la creazione di grafici della conoscenza, la risposta a domande e la costruzione di grafici della conoscenza.

2. Quali sono i metodi del NER nella PNL?

I metodi del NER nella PNL includono:

  • NER basato sul lessico.
  • Basato su regole
  • Basato su machine learning
  • Basato sull'apprendimento profondo.

3. Quali sono gli usi del NER nella PNL?

Il NER svolge un ruolo importante nel migliorare la precisione di altri compiti della PNL come l'etichettatura e l'analisi di parti del discorso.

4. Il BERT può effettuare il riconoscimento delle entità nominate?

Sì, BERT può essere utilizzato per NER.