logo

Recunoașterea entității numite

Recunoașterea entității denumite (NER) este o tehnică în procesarea limbajului natural (NLP) care se concentrează pe identificarea și clasificarea entităților. Scopul NER este de a extrage automat informații structurate din text nestructurat, permițând mașinilor să înțeleagă și să clasifice entitățile într-un mod semnificativ pentru diverse aplicații, cum ar fi rezumarea textului, construirea de grafice de cunoștințe, răspunsuri la întrebări și construcția de grafice de cunoștințe. Articolul explorează fundamentele, metodele și implementarea modelului NER.

Ce este Recunoașterea entității denumite (NER)?

Recunoaștere nume-entitate (NER) mai este denumită identificarea entității , fragmentare entități, și extragerea entitatilor . NER este componenta de extragere a informațiilor care are ca scop identificarea și clasificarea entităților numite în text nestructurat. NER presupune identificarea informațiilor cheie din text și clasificarea într-un set de categorii predefinite. O entitate este lucrul despre care se vorbește în mod constant sau se face referire în text, cum ar fi numele de persoane, organizații, locații, expresii de timp, cantități, procente și mai multe categorii predefinite.

Aplicații ale sistemului NER din diferite domenii, inclusiv răspunsul la întrebări, preluarea informațiilor și traducerea automată. NER joacă un rol important în îmbunătățirea preciziei celorlalți NLP sarcini precum etichetarea și analizarea unei părți a vorbirii. În esență, NLP este doar un proces în doi pași, mai jos sunt cei doi pași implicați:



  • Detectarea entităților din text
  • Clasificarea lor în diferite categorii

Ambiguitate în NER

  • Pentru o persoană, definiția categoriei este intuitiv destul de clară, dar pentru computere, există o oarecare ambiguitate în clasificare. Să ne uităm la câteva exemple ambigue:
    • Anglia (Organizația) a câștigat Cupa Mondială 2019 vs Cupa Mondială 2019 a avut loc în Anglia (Locație).
    • Washington (Locația) este capitala SUA vs Primul președinte al SUA a fost Washington (Persoană).

Cum funcționează Recunoașterea entității denumite (NER)?

Funcționarea recunoașterii entității numite este discutată mai jos:

  • Sistemul NER analizează întregul text de intrare pentru a identifica și localiza entitățile numite.
  • Sistemul identifică apoi limitele propoziției luând în considerare regulile de scriere cu majuscule. Recunoaște sfârșitul propoziției atunci când un cuvânt începe cu o literă mare, presupunând că ar putea fi începutul unei noi propoziții. Cunoașterea limitelor propoziției ajută la contextualizarea entităților din text, permițând modelului să înțeleagă relațiile și semnificațiile.
  • NER poate fi instruit pentru a clasifica documente întregi în diferite tipuri, cum ar fi facturi, chitanțe sau pașapoarte. Clasificarea documentelor îmbunătățește versatilitatea NER, permițându-i să-și adapteze recunoașterea entității pe baza caracteristicilor specifice și a contextului diferitelor tipuri de documente.
  • NER folosește algoritmi de învățare automată, inclusiv învățarea supravegheată, pentru a analiza seturile de date etichetate. Aceste seturi de date conțin exemple de entități adnotate, ghidând modelul în recunoașterea entităților similare în date noi, nevăzute.
  • Prin mai multe iterații de antrenament, modelul își perfecționează înțelegerea caracteristicilor contextuale, a structurilor sintactice și a modelelor de entități, îmbunătățindu-și continuu acuratețea în timp.
  • Capacitatea modelului de a se adapta la date noi îi permite să gestioneze variațiile de limbă, context și tipuri de entități, făcându-l mai robust și mai eficient.

Recunoașterea entității denumite (NER) Metode

Metoda bazată pe lexic

NER folosește un dicționar cu o listă de cuvinte sau termeni. Procesul implică verificarea dacă vreunul dintre aceste cuvinte este prezent într-un text dat. Cu toate acestea, această abordare nu este folosită în mod obișnuit, deoarece necesită o actualizare constantă și o întreținere atentă a dicționarului pentru a rămâne precisă și eficientă.

Metoda bazată pe reguli

Metoda Rule Based NER folosește un set de reguli predefinite care ghidează extragerea informațiilor. Aceste reguli se bazează pe modele și context. Regulile bazate pe modele se concentrează pe structura și forma cuvintelor, uitându-se la modelele lor morfologice. Pe de altă parte, regulile bazate pe context iau în considerare cuvintele din jur sau contextul în care un cuvânt apare în documentul text. Această combinație de reguli bazate pe modele și bazate pe context îmbunătățește precizia extragerii informațiilor în Recunoașterea entității denumite (NER).

Metoda bazată pe învățarea automată

Clasificare cu mai multe clase cu algoritmi de învățare automată

  • O modalitate este de a antrena modelul pentru clasificare cu mai multe clase folosind diferiți algoritmi de învățare automată, dar necesită multă etichetare. Pe lângă etichetarea, modelul necesită și o înțelegere profundă a contextului pentru a face față ambiguității propozițiilor. Acest lucru îl face o sarcină dificilă pentru un algoritm simplu de învățare automată.

Câmp aleatoriu condiționat (CRF)

  • Câmpul aleator condiționat este implementat atât de NLP Speech Tagger cât și NLTK. Este un model probabilistic care poate fi folosit pentru a modela date secvențiale, cum ar fi cuvintele.
  • CRF poate surprinde o înțelegere profundă a contextului propoziției. În acest model, intrarea {	ext{X}} = left { vec{x}_{1} ,vec{x}_{2} ,vec{x}_{3}, ldots,vec{x} _{T} dreapta }
    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}

Metoda bazată pe învățarea profundă

  • Sistemul NER de învățare profundă este mult mai precis decât metoda anterioară, deoarece este capabil să asambleze cuvinte. Acest lucru se datorează faptului că a folosit o metodă numită încorporare a cuvintelor, care este capabilă să înțeleagă relația semantică și sintactică dintre diferitele cuvinte.
  • De asemenea, este capabil să învețe automat analize specifice subiectului, precum și cuvinte de nivel înalt.
  • Acest lucru face ca deep learning NER să fie aplicabil pentru îndeplinirea mai multor sarcini. Invatare profunda poate face cea mai mare parte a muncii repetitive în sine, prin urmare, cercetătorii, de exemplu, își pot folosi timpul mai eficient.

Cum se implementează NER în Python?

Pentru implementarea sistemului NER, vom folosi biblioteca Spacy. Codul poate fi rulat pe colab, însă în scop de vizualizare. Recomand mediul local. Putem instala bibliotecile necesare folosind:

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

Instalați biblioteci importante

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 folosind Spacy

În următorul cod, folosim SpaCy, o bibliotecă de procesare a limbajului natural pentru a procesa text și a extrage entități numite. Codul iterează prin entitățile numite identificate în documentul procesat și imprimă textul, caracterul de început, caracterul de sfârșit și eticheta fiecărei entități.

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_)>
>
>

Ieșire:

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>

Ieșirea a afișat numele entităților, pozițiile lor de început și de sfârșit în text și etichetele lor prezise.

Vizualizați

Thedisplacy.render>funcția din spaCy este folosită pentru a vizualiza entitățile numite într-un text. Acesta generează o reprezentare vizuală cu evidențieri colorate indicând entitățile recunoscute și categoriile lor respective.

Python3

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

Ieșire:

Cum se implementează NER în Python?

Folosind următorul cod, vom crea un cadru de date din entitățile numite extrase de spaCy, inclusiv textul, tipul (eticheta) și lema fiecărei entități.

Python3

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

Ieșire:

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>

Cadrul de date oferă o reprezentare structurată a entităților numite, tipurile și formele lematizate ale acestora.

Întrebări frecvente (FAQs)

1. Care este scopul sistemului NER?

Scopul NER este de a extrage automat informațiile structurate din textul nestructurat, permițând mașinilor să înțeleagă și să clasifice entitățile într-un mod semnificativ pentru diverse aplicații, cum ar fi rezumarea textului, construirea de grafice de cunoștințe, răspunsul la întrebări și construcția de grafice de cunoștințe.

2. Care sunt metodele de NER în NLP?

Metodele de NER în NLP includ:

  • NER bazat pe lexic.
  • Bazat pe reguli
  • Bazat pe ML
  • Bazat pe învățarea profundă.

3. Care sunt utilizările NER în NLP?

NER joacă un rol important în îmbunătățirea preciziei altor sarcini NLP, cum ar fi etichetarea și analizarea unei părți a vorbirii.

4. Poate BERT să facă recunoașterea entităților denumite?

Da, BERT poate fi folosit pentru NER.