Recunoașterea entităților cu nume

Recunoașterea entităților cu nume, cunoscută și sub numele de identificare a entităților și extragerea entităților, abreviată REN sau NER (din engleză named entity recognition), este o etapă a extragerii de informații al cărei scop este localizarea și clasificarea entităților cu nume menționate într-un text nestructurat în categorii predefinite, precum nume de persoane, organizații, locuri, coduri medicale, expresii temporale, cantități, valori monetare, procente etc.

Cele mai multe cercetări în domeniul sistemelor REN pornesc de la un bloc de text, precum acesta:

„Ana a cumpărat 300 de acțiuni ale Acme Corp. în 2006.”

Rezultatul reprezintă același bloc de text, dar adnotat, evidențiind numele entităților:

„[Ana]Persoană a cumpărat 300 de acțiuni ale [Acme Corp.]Organizație în [2006]Timp.”

În acest exemplu, au fost detectate și clasificate un nume de persoană constând dintr-un cuvânt, un nume de companie format din două cuvinte și o expresie temporală.

Sistemele de recunoaștere a entităților cu nume pentru limba engleză produc rezultate apropiate de performanța umană. De exemplu, cel mai bun sistem care a participat la MUC-7 a obținut un scor de 93,39% de F-measure, în timp ce oamenii au obținut scoruri între 97,60% și 96,95%[1][2].

Pentru limba română, sistemele de recunoaștere a entităților cu nume ating valori echivalente, variind în funcție de complexitatea textului și a tipului de entitate căutat[3].

Platforme de recunoaștere a entităților cu nume

modificare

Printre platformele notabile de recunoaștere a entităților cu nume se numără:

  • GATE are capabilitatea standard de a recunoaște entități în mai multe limbi și domenii și poate fi folosit printr-o interfață grafică și un API Java.
  • OpenNLP include metode bazate pe reguli și metode statistice pentru recunoașterea entităților.
  • SpaCy conține modele statistice rapide pentru recunoașterea entităților, precum și o metodă open-source de vizualizare a acestora.

Definiția problemei

modificare

În expresia entitate cu nume, atributul cu nume limitează problema la acele entități pentru care unul sau mai multe cuvinte se referă în mod constant la un referent anume. Această proprietate este strâns legată de desemnările rigide, astfel cum sunt definite de către Kripke[4][5], deși, în practică, sistemele REN au de-a face cu multe nume și referenți care nu sunt din punct de vedere filozofic „rigizi”. De exemplu, compania de automobile creată de către Henry Ford în anul 1903 poate fi menționată ca Ford sau Ford Motor Company, deși „Ford” se poate referi la multe alte entități (vezi Ford). Desemnările rigide includ nume proprii și anumite speciile biologice și substanțe[6], dar exclud pronumele (precum „el”; a se vedea rezoluția anaforei), descrierile care identifică un referent prin proprietățile sale (a se vedea De dicto și de re) și nume pentru clase de lucruri, spre deosebire de indivizi (de exemplu, „bancă”).

Recunoașterea deplină a entităților cu nume este de multe ori împărțită din punct de vedere conceptual și, de asemenea, în implementări[7], în două probleme distincte: detectarea numelor și clasificarea numelor după tipul de entitate la care se referă (de exemplu, persoană, organizație, locație și altele[8]). Prima fază este de obicei simplificată la o problemă de segmentare: numele sunt definite ca secvențe contigue de cuvinte, fără imbricări, astfel că „CFR Cluj” este un singur nume, chiar dacă în interiorul acestui nume fiecare din subșirurile „CFR” și „Cluj” reprezintă în sine un nume. Această problemă de segmentare este similară cu analiza sintactică superficială. A doua etapă presupune alegerea unei ontologii în funcție de care să se organizeze diferitele categorii de lucruri.

Expresiile temporale și unele expresii numerice (de exemplu, bani, procente etc.) pot fi și ele considerate drept entități cu nume în contextul REN. În timp ce unele cazuri de aceste tipuri sunt bune exemple de desemnări rigide (de exemplu, anul 2001), există și multe cazuri invalide (de exemplu, concediul este în „iunie”). În primul caz, anul 2001 se referă la al 2001-lea an al calendarului Gregorian. În al doilea caz, luna iunie se poate referi la o lună dintr-un an nedefinit (în iunie anul trecut, în luna iunie care vine, în fiecare iunie etc.). Se poate argumenta că definiția entității cu nume este relaxată în astfel de cazuri din motive practice. Definiția termenului entitate cu nume nu este, prin urmare, strictă și de multe ori trebuie să fie explicitată în contextul în care este folosită[9].

În literatura de specialitate au fost propuse diverse ierarhii de tipuri de entități cu nume. Categorisirea BBN, propusă în 2002, este folosită pentru sisteme întrebare-răspuns și este formată din 29 de tipuri și 64 de subtipuri[10]. Ierarhia extinsă a lui Sekine, propusă în 2002, conține 200 de subtipuri[11]. Mai recent, în 2011, Ritter folosit o ierarhie bazată pe tipurile de entități din Freebase în experimente de REN pe texte provenite din media de socializare[12].

Evaluare formală

modificare

Pentru a evalua calitatea rezultatelor unui sistem REN au fost definite mai multe metrici. Metricile cel mai des folosite sunt precizia, rapelul și scorul F1. Există însă mai multe probleme cu privire la modul de calcul al acestor valori.

Aceste măsuri statistice funcționează suficient de bine pentru cazurile evidente, când o entitate este identificată sau este ratată exact, și pentru a identifica non-entitățile. Însă sistemele REN pot greși în multe alte moduri, despre care se poate argumenta că sunt „parțial corecte” și nu ar trebui să fie considerate ca succes sau eșec complet. De exemplu, se identifică o entitate reală, dar:

  • cu mai puține cuvinte decât necesare (de exemplu, excluderea ultimului cuvânt din „CFR Cluj”)
  • cu mai multe cuvinte decât necesare (de exemplu, includerea primului cuvânt din „Dna Maria Popescu”)
  • partiționarea entităților adiacente în mod diferit (de exemplu, tratarea „Popescu, Ion Vasile” ca 2 sau 3 entități)
  • atribuirea unui tip complet greșit (de exemplu, clasificarea unui nume de persoană drept organizație)
  • atribuirea unui tip înrudit, dar inexact (de exemplu, „substanță” versus „medicament” sau „școală” versus „organizație”)
  • identificarea corectă a unei entități, atunci când țelul este identificarea unei entități mai scurte sau mai lungi (de exemplu, identificarea „Alexandru Ioan Cuza” ca nume de persoană atunci când face parte din „Universitatea Alexandru Ioan Cuza”. Unele sisteme REN impun restricția ca entitățile să nu se poată suprapune sau fi imbricate, ceea ce înseamnă că, în unele cazuri, trebuie luate decizii arbitrare sau specifice domeniul de aplicare.

O metodă extrem de simplă de măsurare de acurateții este calculul proporției de cuvinte din text care au fost corect sau incorect identificate ca parte a entităților de referință (sau ca fiind entități de tipul corect). Aceasta metodă are cel puțin două probleme. În primul rând, marea majoritate a cuvintelor din textele reale nu fac parte din nici o entitate cu nume, așadar acuratețea de bază (care prezice întotdeauna „nu este o entitate”) este extrem de mare, de obicei peste 90%. În al doilea rând, prezicerea incompletă a unei entități nu este penalizată pe deplin (identificarea doar a prenumelui unei persoane când este urmat de numele de familie ar putea fi marcat ca răspuns pe jumătate corect).

În conferințe academice, precum CoNLL, o variantă a scorului F1 a fost definită după cum urmează[8]:

  • Precizia este numărul de entități prezise care se aliniază exact cu cele din datele de evaluare. Cu alte cuvinte, când se prezice [Persoană Ion] [Persoană Popescu], dar datele de test menționează [Persoană Ion Popescu], precizia rezultatelor este zero. Precizia totală este apoi calculată ca media entităților prezise corect.
  • În mod similar, rapelul este numărul de entități din datele de test care apar în exact aceeași locație în datele prezise.
  • Scorul F1 este media armonică a acestor două metrici.

Din definiția de mai sus rezultă că orice predicție care ratează un singur cuvânt, include un cuvânt suplimentar sau a greșit tipul entității este o eroare și nu contribuie în mod pozitiv la precizie sau rapel. Astfel, această măsură poate fi numită pesimistă, deoarece foarte multe „erori” ar putea fi aproape de răspunsul corect și chiar ar putea fi adecvate pentru un anumit scop. De exemplu, un sistem ar putea omite întotdeauna titlurile, precum „Doamna” sau „Doctor”, iar compararea cu un sistem sau cu date de evaluare care consideră titlurile necesare nu este în totalitate corectă. În acest caz, fiecare astfel de entitate este tratată ca o eroare. Din cauza unor astfel de probleme, este importantă examinarea tipurilor de erori și luarea unei decizii cu privire la importanța acestora în cazul obiectivelor inițiale.

Au fost propuse și modele de evaluare bazate pe identificarea corectă la nivel de cuvânt[13]. Astfel de modele pot oferi punctaje parțiale pentru identificări care se suprapun (precum utilizarea indexului Jaccard). Această metodă permite evaluarea și compararea sistemelor de extracție la nivel foarte fin.

Abordări

modificare

Au fost create sisteme REN care utilizează tehnici lingvistice bazate pe gramatici, dar și modele statistice, precum învățare automată. Sistemele bazate pe gramatici, de obicei create manual, obțin o precizie mai bună, dar un rapel mult mai scăzut și au nevoie de un timp lung de dezvoltare de către lingviști computaționali experimentați[14]. Sistemele REN statistice necesită de obicei o cantitate mare de date de instruire manual adnotate. A fost sugerată și utilizarea de abordări semisupervizate pentru a evita o parte din eforturile de adnotare[15][16].

Multe tipuri diferite de clasificatori au fost folosiți în sistemele REN cu învățare automată, o alegere tipică fiind câmpurile condiționale aleatorii[17].

Domenii de aplicație

modificare

În 2001, rezultatele din cercetare indicau că până și sistemele REN de ultimă generație erau fragile, în sensul că sistemele dezvoltate pentru un domeniu de obicei nu funcționează corect în alte domenii.[18] Așadar, au fost depuse eforturi considerabile în crearea de sisteme REN robuste, care să funcționeze bine în domenii noi, atât pentru sistemele bazate pe reguli, cât și pentru cele bazate pe învățare automată sau statistice.

Eforturile depuse pentru sisteme REN în anii 1990 s-au concentrat în primul rând pe extragerea din articole jurnalistice. Apoi au fost luate în considerare rapoarte și note din domeniul militar. Etapele ulterioare în evaluarea extragerii automate de conținut au inclus mai multe tipuri de stiluri informale de text, precum bloguri și transcrieri ale conversațiilor telefonice. Din 1998, există un mare interes în identificarea entitățlor în comunitățile de biologie moleculară, bioinformatică și prelucrare a limbajului natural medical. Cele mai frecvente entități de interes în acest domeniu sunt numele de gene și de produse ale genelor. Un interes considerabil a fost exprimat și pentru recunoașterea entităților chimice și medicamentelor în contextul competiției CHEMDNER, cu 27 de echipe participante în aceasta[19].

Provocări actuale și cercetare

modificare

În ciuda de rezultatelor F1 mari raportate pe setul de date MUC-7, problema recunoașterii entităților cu nume este departe de a fi rezolvată. Principalele eforturi sunt îndreptate spre reducerea activității manuale de creare a adnotărilor prin utilizarea de metode semi-supervizate de învățare[15][20], crearea de sisteme robuste în multiple domenii diferite[21][22] și identificarea tipurilor foarte granulare de entități[11][23]. În ultimii ani, multe proiecte au apelat la crowdsourcing, o soluție promițătoare pentru a obține date de înaltă calitate prin agregarea deciziilor umane pentru diversele abordări de învățare supervizată și semi-supervizată[24]. Un alt obiectiv dificil este elaborarea de modele care să poată procesa contexte complexe din punct de vedere lingvistic, precum Twitter și interogări de căutare[25].

Există cercetări care compară sisteme REN bazate pe diferite modele statistice, precum HMM (hidden Markov model), EM (entropie maximă) și CRF (câmpuri condiționale aleatorii) și seturi de atribute[26]. În alte lucrări de cercetare recente, s-au propus metode de învățare semi-supervizată bazate pe grafuri pentru REN[27].

Un obiectiv care a apărut recent este acela de a identifica „expresii importante” în text și legarea acestora la Wikipedia[28][29][30], care poate fi văzut ca un exemplu de recunoaștere a entităților cu nume foarte granular, unde tipurile sunt paginile Wikipedia care descriu concepte (potențial ambigue). Mai jos este un exemplu de rezultat al unui sistem de wikification:

<ENTITATE url="http://ro.wikipedia.org/wiki/Michael_I._Jordan"> Michael Jordan </ENTITATE> este profesor la <ENTITATE url="http://ro.wikipedia.org/wiki/University_of_California,_Berkeley"> Berkeley </ENTITATE>

Un alt domeniu în care s-au înregistrat progrese, dar care rămâne încă dificil, este aplicarea de REN pe texte provenite de pe Twitter și alte microbloguri[31].

Vezi și

modificare
  1. ^ Elaine Marsh, Dennis Perzanowski, "MUC-7 Evaluation of IE Technology: Overview of Results", 29 April 1998 PDF
  2. ^ MUC-07 Proceedings (Named Entity Tasks)
  3. ^ Zamfirescu, Adrian Nicolae; Rebedea, Traian Eugen (). „Identificarea entităților, citatelor și evenimentelor în știri și texte din Web-ul social în limba română” (PDF). Revista Română de Interacțiune Om-Calculator. 6 (2): 169–192. 
  4. ^ Kripke, Saul (). M.K. Munitz, ed. Identity and Necessity. New York: New York University Press. pp. 135–64. 
  5. ^ LaPorte, Joseph, Rigid Designators 
  6. ^ Nadeau, David; Sekine, Satoshi (). A survey of named entity recognition and classification (PDF). Lingvisticae Investigationes. 
  7. ^ Carreras, Xavier; Màrquez, Lluís; Padró, Lluís (). A simple named entity extractor using AdaBoost (PDF). CoNLL. 
  8. ^ a b Tjong Kim Sang, Erik F.; De Meulder, Fien (). Introduction to the CoNLL-2003 shared task: Language-independent named entity recognition. CoNLL. 
  9. ^ Named Entity Definition. Webknox.com. Retrieved on 2013-07-21.
  10. ^ Brunstein, Ada. „Annotation Guidelines for Answer Types”. LDC Catalog. Linguistic Data Consortium. Arhivat din original la . Accesat în . 
  11. ^ a b Sekine's Extended Named Entity Hierarchy. Nlp.cs.nyu.edu. Retrieved on 2013-07-21.
  12. ^ Ritter, A.; Clark, S.; Mausam; Etzioni., O. (). Named Entity Recognition in Tweets: An Experimental Study (PDF). Proc. Empirical Methods in Natural Language Processing. 
  13. ^ Esuli, Andrea; Sebastiani, Fabrizio (). Evaluating Information Extraction (PDF). Cross-Language Evaluation Forum (CLEF). pp. 100–111. 
  14. ^ Kapetanios, Epaminondas; Tatar, Doina; Sacarea, Christian (). Natural Language Processing: Semantic Aspects (în engleză). CRC Press. p. 298. ISBN 9781466584969. 
  15. ^ a b Lin, Dekang; Wu, Xiaoyun (). Phrase clustering for discriminative learning (PDF). Annual Meeting of the ACL and IJCNLP. pp. 1030–1038. 
  16. ^ Nothman, Joel; et al. (). „Learning multilingual named entity recognition from Wikipedia”. Artificial Intelligence. 194: 151–175. doi:10.1016/j.artint.2012.03.006. 
  17. ^ Jenny Rose Finkel; Trond Grenager; Christopher Manning (). Incorporating Non-local Information into Information Extraction Systems by Gibbs Sampling (PDF). 43rd Annual Meeting of the Association for Computational Linguistics. pp. 363–370. 
  18. ^ Poibeau, Thierry; Kosseim, Leila (). „Proper Name Extraction from Non-Journalistic Texts” (PDF). Language and Computers. 37 (1): 144–157. Arhivat din original (PDF) la . Accesat în . 
  19. ^ Krallinger, M; Leitner, F; Rabal, O; Vazquez, M; Oyarzabal, J; Valencia, A. „Overview of the chemical compound and drug name recognition (CHEMDNER) task”. Proceedings of the Fourth BioCreative Challenge Evaluation Workshop vol. 2. pp. 6–37. 
  20. ^ Turian, J., Ratinov, L., & Bengio, Y. (2010, July). Word representations: a simple and general method for semi-supervised learning. In Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics (pp. 384-394). Association for Computational Linguistics. PDF
  21. ^ Ratinov, L., & Roth, D. (2009, June). Design challenges and misconceptions in named entity recognition. In Proceedings of the Thirteenth Conference on Computational Natural Language Learning (pp. 147-155). Association for Computational Linguistics.
  22. ^ „Frustratingly Easy Domain Adaptation” (PDF). Arhivat din original (PDF) la . Accesat în . 
  23. ^ Fine-Grained Named Entity Recognition Using Conditional Random Fields for Question Answering.
  24. ^ Web 2.0-based crowdsourcing for high-quality gold standard development in clinical Natural Language Processing
  25. ^ Eiselt, Andreas; Figueroa, Alejandro (). A Two-Step Named Entity Recognizer for Open-Domain Search Queries. IJCNLP. pp. 829–833. 
  26. ^ Han, Li-Feng Aaron, Wong, Fai, Chao, Lidia Sam. (2013). Chinese Named Entity Recognition with Conditional Random Fields in the Light of Chinese Characteristics. Proceeding of International Conference of Language Processing and Intelligent Information Systems. M.A. Klopotek et al. (Eds.): IIS 2013, LNCS Vol. 7912, pp. 57–68
  27. ^ Han, Li-Feng Aaron, Wong, Zeng, Xiaodong, Derek Fai, Chao, Lidia Sam. (2015). Chinese Named Entity Recognition with Graph-based Semi-supervised Learning Model. In Proceedings of SIGHAN workshop in ACL-IJCNLP. 2015.
  28. ^ Linking Documents to Encyclopedic Knowledge.
  29. ^ „Learning to link with Wikipedia” (PDF). Arhivat din original (PDF) la . Accesat în . 
  30. ^ Local and Global Algorithms for Disambiguation to Wikipedia.
  31. ^ Derczynski, Leon and Diana Maynard, Giuseppe Rizzo, Marieke van Erp, Genevieve Gorrell, Raphael Troncy, Johann Petrak, and Kalian Botcheva (2014). “Analysis of named entity recognition and linking for tweets”. Information Processing and Management 51(2) : pages 32-49.