logo

Rozpoznávanie pomenovanej entity

Rozpoznávanie pomenovanej entity (NER) je technika v spracovanie prirodzeného jazyka (NLP) ktorý sa zameriava na identifikáciu a klasifikáciu subjektov. Účelom NER je automaticky extrahovať štruktúrované informácie z neštruktúrovaného textu, čo umožňuje strojom porozumieť a kategorizovať entity zmysluplným spôsobom pre rôzne aplikácie, ako je sumarizácia textu, vytváranie znalostných grafov, odpovedanie na otázky a vytváranie znalostných grafov. Článok skúma základy, metódy a implementácia modelu NER.

Čo je rozpoznávanie pomenovanej entity (NER)?

Rozpoznanie mena a entity (NER) sa označuje aj ako identifikácia entity , delenie entít, a extrakcia entity . NER je zložka extrakcie informácií, ktorej cieľom je identifikovať a kategorizovať pomenované entity v rámci neštruktúrovaného textu. NER zahŕňa identifikáciu kľúčových informácií v texte a klasifikáciu do súboru vopred definovaných kategórií. Entita je vec, o ktorej sa dôsledne hovorí alebo na ktorú sa v texte odkazuje, ako sú mená osôb, organizácie, miesta, časové výrazy, množstvá, percentá a ďalšie preddefinované kategórie.

Aplikácie systému NER naprieč rôznymi doménami, vrátane odpovedí na otázky, získavania informácií a strojového prekladu. NER hrá dôležitú úlohu pri zvyšovaní presnosti ostatných NLP úlohy, ako je slovné označovanie a analýza. Vo svojom jadre je NLP len dvojkrokový proces, nižšie sú dva kroky, ktoré sú zahrnuté:



  • Detekcia entít z textu
  • Zaraďte ich do rôznych kategórií

Nejednoznačnosť v NER

  • Pre človeka je definícia kategórie intuitívne celkom jasná, ale pre počítače existuje určitá nejednoznačnosť v klasifikácii. Pozrime sa na niekoľko nejednoznačných príkladov:
    • Anglicko (organizácia) vyhralo svetový pohár 2019 vs. Majstrovstvá sveta 2019 sa konali v Anglicku (miesto).
    • Washington (Poloha) je hlavným mestom USA vs Prvým prezidentom USA bol Washington (Osoba).

Ako funguje rozpoznávanie pomenovaných entít (NER)?

Fungovanie rozpoznávania pomenovaných entít je popísané nižšie:

  • Systém NER analyzuje celý vstupný text, aby identifikoval a lokalizoval pomenované entity.
  • Systém potom identifikuje hranice viet zvážením pravidiel písania veľkých písmen. Rozpozná koniec vety, keď slovo začína veľkým písmenom, za predpokladu, že by to mohol byť začiatok novej vety. Poznanie hraníc viet pomáha pri kontextualizácii entít v texte, čo umožňuje modelu pochopiť vzťahy a významy.
  • NER môže byť vyškolený na klasifikáciu celých dokumentov do rôznych typov, ako sú faktúry, účtenky alebo pasy. Klasifikácia dokumentov zvyšuje všestrannosť NER a umožňuje mu prispôsobiť rozpoznávanie entít na základe špecifických charakteristík a kontextu rôznych typov dokumentov.
  • NER využíva algoritmy strojového učenia, vrátane učenia pod dohľadom, na analýzu označených súborov údajov. Tieto súbory údajov obsahujú príklady anotovaných entít, ktoré usmerňujú model pri rozpoznávaní podobných entít v nových, neviditeľných údajoch.
  • Prostredníctvom viacerých trénovacích iterácií model zdokonaľuje svoje chápanie kontextových prvkov, syntaktických štruktúr a vzorov entít a neustále zlepšuje svoju presnosť v priebehu času.
  • Schopnosť modelu prispôsobiť sa novým údajom mu umožňuje zvládnuť variácie v jazyku, kontexte a typoch entít, vďaka čomu je robustnejší a efektívnejší.

Rozpoznávanie pomenovanej entity (NER) Metódy

Metóda založená na lexike

NER používa slovník so zoznamom slov alebo výrazov. Proces zahŕňa kontrolu, či sa niektoré z týchto slov nachádza v danom texte. Tento prístup sa však bežne nepoužíva, pretože vyžaduje neustálu aktualizáciu a starostlivú údržbu slovníka, aby zostal presný a efektívny.

Metóda založená na pravidlách

Metóda NER založená na pravidlách využíva súbor preddefinovaných pravidiel, ktoré usmerňujú extrakciu informácií. Tieto pravidlá sú založené na vzoroch a kontexte. Pravidlá založené na vzoroch sa zameriavajú na štruktúru a formu slov, pričom sa pozerajú na ich morfologické vzorce. Na druhej strane kontextové pravidlá zohľadňujú okolité slová alebo kontext, v ktorom sa slovo vyskytuje v textovom dokumente. Táto kombinácia pravidiel založených na vzoroch a na kontexte zvyšuje presnosť extrakcie informácií v rozpoznávaní pomenovaných entít (NER).

Metóda založená na strojovom učení

Viactriedna klasifikácia s algoritmami strojového učenia

  • Jedným zo spôsobov je trénovať modelku viactriedna klasifikácia pomocou rôznych algoritmov strojového učenia, ale vyžaduje si veľa označovania. Okrem označovania modelu si tiež vyžaduje hlboké pochopenie kontextu, aby sa vyrovnali s nejednoznačnosťou viet. Vďaka tomu je to náročná úloha pre jednoduchý algoritmus strojového učenia.

Podmienené náhodné pole (CRF)

  • Podmienené náhodné pole implementuje NLP Speech Tagger aj NLTK. Ide o pravdepodobnostný model, ktorý možno použiť na modelovanie sekvenčných údajov, ako sú slová.
  • CRF dokáže zachytiť hlboké pochopenie kontextu vety. V tomto modeli je vstup {	ext{X}} = left { vec{x}_{1} ,vec{x}_{2} ,vec{x}_{3}, ldots,vec{x} _{T} vpravo }
    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}

Metóda založená na hlbokom učení

  • Systém hlbokého učenia NER je oveľa presnejší ako predchádzajúca metóda, pretože je schopný zostavovať slová. Je to spôsobené tým, že použil metódu nazývanú vkladanie slov, ktorá je schopná pochopiť sémantický a syntaktický vzťah medzi rôznymi slovami.
  • Je tiež schopný automaticky sa naučiť analýzy špecifické pre tému, ako aj slová na vysokej úrovni.
  • Vďaka tomu je hlboké učenie NER použiteľné na vykonávanie viacerých úloh. Hlboké učenie môže robiť väčšinu opakujúcej sa práce sám, takže výskumníci môžu napríklad využívať svoj čas efektívnejšie.

Ako implementovať NER v Pythone?

Na implementáciu systému NER využijeme knižnicu Spacy. Kód je možné spustiť na colab, avšak na účely vizualizácie. Odporúčam miestne prostredie. Požadované knižnice môžeme nainštalovať pomocou:

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

Nainštalujte dôležité knižnice

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 pomocou Spacey

V nasledujúcom kóde používame SpaCy, knižnica na spracovanie prirodzeného jazyka na spracovanie textu a extrahovanie pomenovaných entít. Kód iteruje cez pomenované entity identifikované v spracovanom dokumente a vytlačí text, počiatočný znak, koncový znak a štítok každej entity.

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

Výkon:

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>

Vo výstupe sa zobrazili názvy entít, ich počiatočná a koncová poloha v texte a ich predpovedané označenia.

Vizualizujte

Thedisplacy.render>funkcia z spaCy sa používa na vizualizáciu pomenovaných entít v texte. Vytvára vizuálnu reprezentáciu s farebnými zvýrazneniami označujúcimi rozpoznané entity a ich príslušné kategórie.

Python3

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

Výkon:

Ako implementovať NER v Pythone?

Pomocou nasledujúceho kódu vytvoríme dátový rámec z pomenovaných entít extrahovaných spaCy, vrátane textu, typu (návestia) a lemmy každej entity.

Python3

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

Výkon:

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>

Dátový rámec poskytuje štruktúrovanú reprezentáciu pomenovaných entít, ich typov a lemmatizovaných foriem.

Často kladené otázky (FAQ)

1. Aký je účel systému NER?

Účelom NER je automaticky extrahovať štruktúrované informácie z neštruktúrovaného textu, čo umožňuje strojom porozumieť a kategorizovať entity zmysluplným spôsobom pre rôzne aplikácie, ako je sumarizácia textu, vytváranie znalostných grafov, odpovedanie na otázky a vytváranie znalostných grafov.

2. Aké sú metódy NER v NLP?

Metódy NER v NLP zahŕňajú:

  • NER založený na lexikóne.
  • Na základe pravidiel
  • Na základe ML
  • Založené na hlbokom učení.

3. Aké sú využitie NER v NLP?

NER zohráva dôležitú úlohu pri zvyšovaní presnosti iných úloh NLP, ako je značkovanie a syntaktická analýza.

4. Môže BERT vykonávať rozpoznanie menovanej entity?

Áno, BERT možno použiť pre NER.