Rozpoznávání pojmenované entity (NER) je technika v zpracování přirozeného jazyka (NLP) která se zaměřuje na identifikaci a klasifikaci entit. Účelem NER je automaticky extrahovat strukturované informace z nestrukturovaného textu, což umožňuje strojům rozumět a kategorizovat entity smysluplným způsobem pro různé aplikace, jako je sumarizace textu, vytváření znalostních grafů, odpovídání na otázky a konstrukce znalostních grafů. Článek zkoumá základy, metody a implementace modelu NER.
Co je rozpoznávání pojmenovaných entit (NER)?
Rozpoznávání jmen a entit (NER) se také označuje jako identifikace entity , rozdělování entit, a extrakce entity . NER je komponenta extrakce informací, jejímž cílem je identifikovat a kategorizovat pojmenované entity v nestrukturovaném textu. NER zahrnuje identifikaci klíčových informací v textu a zařazení do souboru předem definovaných kategorií. Entita je věc, o které se v textu soustavně mluví nebo na ni odkazuje, jako jsou jména osob, organizace, místa, časové výrazy, množství, procenta a další předdefinované kategorie.
Aplikace systému NER v různých oblastech, včetně odpovídání na otázky, vyhledávání informací a strojového překladu. NER hraje důležitou roli při zvyšování přesnosti ostatních NLP úkoly, jako je značkování slovních druhů a analýza. Ve svém jádru je NLP pouze dvoustupňový proces, níže jsou dva kroky, které jsou součástí:
- Detekce entit z textu
- Zařaďte je do různých kategorií
Nejednoznačnost v NER
- Pro člověka je definice kategorie intuitivně zcela jasná, ale u počítačů existuje určitá nejednoznačnost v klasifikaci. Podívejme se na několik nejednoznačných příkladů:
- Anglie (organizace) vyhrála světový pohár 2019 vs. Mistrovství světa 2019 se konalo v Anglii (místo).
- Washington (Location) je hlavním městem USA vs Prvním prezidentem USA byl Washington (Person).
Jak funguje rozpoznávání pojmenovaných entit (NER)?
Fungování rozpoznávání pojmenovaných entit je popsáno níže:
- Systém NER analyzuje celý vstupní text, aby identifikoval a lokalizoval pojmenované entity.
- Systém poté identifikuje hranice vět na základě pravidel pro psaní velkých písmen. Rozpozná konec věty, když slovo začíná velkým písmenem, za předpokladu, že by to mohl být začátek nové věty. Znalost hranic vět pomáhá v kontextualizaci entit v textu a umožňuje modelu porozumět vztahům a významům.
- NER lze trénovat, aby klasifikoval celé dokumenty do různých typů, jako jsou faktury, účtenky nebo pasy. Klasifikace dokumentů zvyšuje všestrannost NER a umožňuje mu přizpůsobit rozpoznávání entit na základě specifických charakteristik a kontextu různých typů dokumentů.
- NER využívá k analýze označených datových sad algoritmy strojového učení, včetně učení pod dohledem. Tyto datové sady obsahují příklady anotovaných entit, které model vedou při rozpoznávání podobných entit v nových, neviditelných datech.
- Prostřednictvím více iterací školení model zpřesňuje své chápání kontextových prvků, syntaktických struktur a vzorců entit a průběžně zlepšuje svou přesnost v průběhu času.
- Schopnost modelu přizpůsobit se novým datům mu umožňuje zvládat variace v jazyce, kontextu a typech entit, díky čemuž je robustnější a efektivnější.
Rozpoznávání pojmenované entity (NER) Metody
Metoda založená na lexikonech
NER používá slovník se seznamem slov nebo termínů. Proces zahrnuje kontrolu, zda se některé z těchto slov vyskytuje v daném textu. Tento přístup se však běžně nepoužívá, protože vyžaduje neustálou aktualizaci a pečlivou údržbu slovníku, aby zůstal přesný a efektivní.
Metoda založená na pravidlech
Metoda NER založená na pravidlech používá sadu předdefinovaných pravidel, která vedou extrakci informací. Tato pravidla jsou založena na vzorcích a kontextu. Pravidla založená na vzorech se zaměřují na strukturu a formu slov a sledují jejich morfologické vzorce. Na druhé straně kontextová pravidla berou v úvahu okolní slova nebo kontext, ve kterém se slovo vyskytuje v textovém dokumentu. Tato kombinace pravidel založených na vzoru a kontextu zvyšuje přesnost extrakce informací v rozpoznávání pojmenovaných entit (NER).
Metoda založená na strojovém učení
Vícetřídní klasifikace s algoritmy strojového učení
- Jedním ze způsobů je trénovat model pro vícetřídní klasifikace pomocí různých algoritmů strojového učení, ale vyžaduje to hodně označování. Kromě označení modelu také vyžaduje hluboké porozumění kontextu, aby se vypořádal s nejednoznačností vět. To z něj činí náročný úkol pro jednoduchý algoritmus strojového učení.
Podmíněné náhodné pole (CRF)
- Podmíněné náhodné pole je implementováno jak NLP Speech Tagger, tak i NLTK. Je to pravděpodobnostní model, který lze použít k modelování sekvenčních dat, jako jsou slova.
- CRF dokáže zachytit hluboké porozumění kontextu věty. V tomto modelu vstup

Metoda založená na hlubokém učení
- Systém Deep Learning NER je mnohem přesnější než předchozí metoda, protože je schopen skládat slova. To je způsobeno tím, že používá metodu zvanou vkládání slov, která je schopna porozumět sémantickému a syntaktickému vztahu mezi různými slovy.
- Je také schopen se automaticky naučit analýzy specifické pro téma i slova na vysoké úrovni.
- Díky tomu je hluboké učení NER použitelné pro provádění více úkolů. Hluboké učení může dělat většinu opakující se práce sám, takže výzkumníci mohou například efektivněji využívat svůj čas.
Jak implementovat NER v Pythonu?
Pro implementaci systému NER využijeme knihovnu Spacy. Kód lze spustit na colab, nicméně pro účely vizualizace. Místní prostředí doporučuji. Požadované knihovny můžeme nainstalovat pomocí:
!pip install spacy !pip install nltk ! python -m spacy download en_core_web_sm>
Nainstalujte důležité knihovny
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 pomocí Spacy
V následujícím kódu používáme SpaCy, knihovna pro zpracování přirozeného jazyka pro zpracování textu a extrahování pojmenovaných entit. Kód iteruje pojmenované entity identifikované ve zpracovávaném dokumentu a tiskne text, počáteční znak, koncový znak a štítek každé 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ýstup:
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>
Výstup zobrazoval názvy entit, jejich počáteční a koncové pozice v textu a jejich předpokládané popisky.
Vizualizujte
Thedisplacy.render>funkce z spaCy se používá k vizualizaci pojmenovaných entit v textu. Vytváří vizuální reprezentaci s barevnými zvýrazněními označujícími rozpoznané entity a jejich příslušné kategorie.
Python3
from> spacy>import> displacy> displacy.render(doc, style>=>'ent'>)> |
>
>
Výstup:

Pomocí následujícího kódu vytvoříme datový rámec z pojmenovaných entit extrahovaných pomocí spaCy, včetně textu, typu (label) a lemmatu každé 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ýstup:
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>
Datový rámec poskytuje strukturovanou reprezentaci pojmenovaných entit, jejich typů a lemmatizovaných forem.
Často kladené otázky (FAQ)
1. Jaký je účel systému NER?
Účelem NER je automaticky extrahovat strukturované informace z nestrukturovaného textu, což umožňuje strojům rozumět a kategorizovat entity smysluplným způsobem pro různé aplikace, jako je sumarizace textu, vytváření znalostních grafů, odpovídání na otázky a konstrukce znalostních grafů.
2. Jaké jsou metody NER v NLP?
Metody NER v NLP zahrnují:
- NER založený na lexikonu.
- Na základě pravidel
- Na základě ML
- Založeno na hlubokém učení.
3. Jaké jsou využití NER v NLP?
NER hraje důležitou roli při zvyšování přesnosti dalších úloh NLP, jako je značkování slovních druhů a analýza.
4. Může BERT provádět rozpoznávání pojmenovaných entit?
Ano, BERT lze použít pro NER.
