logo

Prepoznavanje imenovane entitete

Prepoznavanje imenovane entitete (NER) je tehnika v obdelava naravnega jezika (NLP) ki se osredotoča na prepoznavanje in razvrščanje entitet. Namen NER je samodejno izluščiti strukturirane informacije iz nestrukturiranega besedila, kar strojem omogoči razumevanje in kategorizacijo entitet na smiseln način za različne aplikacije, kot je povzemanje besedila, izdelava grafov znanja, odgovarjanje na vprašanja in izgradnja grafov znanja. Članek raziskuje osnove, metode in implementacija modela NER.

Kaj je prepoznavanje imenovanih entitet (NER)?

Prepoznavanje imen (NER) se imenuje tudi kot identifikacija entitete , razčlenjevanje entitet, in ekstrakcija entitete . NER je komponenta ekstrakcije informacij, katere namen je identificirati in kategorizirati imenovane entitete v nestrukturiranem besedilu. NER vključuje identifikacijo ključnih informacij v besedilu in razvrščanje v nabor vnaprej določenih kategorij. Entiteta je stvar, o kateri se dosledno govori ali se nanjo nanaša besedilo, kot so imena oseb, organizacije, lokacije, časovni izrazi, količine, odstotki in več vnaprej določenih kategorij.

Sistem NER uporablja aplikacije na različnih področjih, vključno z odgovarjanjem na vprašanja, iskanjem informacij in strojnim prevajanjem. NER ima pomembno vlogo pri izboljšanju natančnosti drugih NLP opravila, kot sta označevanje in razčlenjevanje del govora. V svojem bistvu je NLP samo dvostopenjski proces, spodaj sta vključena dva koraka:



  • Odkrivanje entitet iz besedila
  • Razvrščanje v različne kategorije

Dvoumnost v NER

  • Za osebo je definicija kategorije intuitivno precej jasna, za računalnike pa obstaja nekaj dvoumnosti pri klasifikaciji. Poglejmo nekaj dvoumnih primerov:
    • Anglija (Organizacija) je zmagala na svetovnem prvenstvu 2019 proti Svetovno prvenstvo 2019 se je zgodilo v Angliji (lokacija).
    • Washington (lokacija) je glavno mesto ZDA proti Prvi predsednik ZDA je bil Washington (oseba).

Kako deluje prepoznavanje imenovanih entitet (NER)?

Spodaj je opisano delovanje prepoznavanja imenovanih entitet:

  • Sistem NER analizira celotno vneseno besedilo, da prepozna in poišče imenovane entitete.
  • Sistem nato identificira meje stavkov z upoštevanjem pravil za uporabo velikih začetnic. Prepozna konec stavka, ko se beseda začne z veliko začetnico, ob predpostavki, da je lahko začetek novega stavka. Poznavanje stavčnih meja pomaga pri kontekstualizaciji entitet v besedilu, kar omogoča modelu razumevanje odnosov in pomenov.
  • NER je mogoče usposobiti za razvrščanje celotnih dokumentov v različne vrste, kot so računi, potrdila ali potni listi. Klasifikacija dokumentov povečuje vsestranskost NER, saj mu omogoča prilagajanje prepoznavanja entitet na podlagi posebnih značilnosti in konteksta različnih vrst dokumentov.
  • NER uporablja algoritme strojnega učenja, vključno z nadzorovanim učenjem, za analizo označenih nizov podatkov. Ti nabori podatkov vsebujejo primere označenih entitet, ki vodijo model pri prepoznavanju podobnih entitet v novih, še nevidenih podatkih.
  • Z večkratnimi ponovitvami usposabljanja model izboljša svoje razumevanje kontekstualnih značilnosti, sintaktičnih struktur in vzorcev entitet, s čimer sčasoma nenehno izboljšuje svojo natančnost.
  • Zmožnost modela, da se prilagodi novim podatkom, mu omogoča obvladovanje variacij v jeziku, kontekstu in tipih entitet, zaradi česar je bolj robusten in učinkovit.

Prepoznavanje imenovane entitete (NER) Metode

Metoda na podlagi leksikona

NER uporablja slovar s seznamom besed ali izrazov. Postopek vključuje preverjanje, ali je katera od teh besed prisotna v danem besedilu. Vendar se ta pristop ne uporablja pogosto, ker zahteva nenehno posodabljanje in skrbno vzdrževanje slovarja, da ostane točen in učinkovit.

Metoda na podlagi pravil

Metoda NER, ki temelji na pravilih, uporablja nabor vnaprej določenih pravil, ki vodijo pridobivanje informacij. Ta pravila temeljijo na vzorcih in kontekstu. Pravila, ki temeljijo na vzorcih, se osredotočajo na strukturo in obliko besed ter gledajo na njihove morfološke vzorce. Po drugi strani pravila, ki temeljijo na kontekstu, upoštevajo okoliške besede ali kontekst, v katerem se beseda pojavi v besedilnem dokumentu. Ta kombinacija pravil, ki temeljijo na vzorcih in na kontekstu, povečuje natančnost pridobivanja informacij v prepoznavanju imenovanih entitet (NER).

Metoda, ki temelji na strojnem učenju

Večrazredna klasifikacija z algoritmi strojnega učenja

  • Eden od načinov je usposobiti model za večrazredna klasifikacija z uporabo različnih algoritmov strojnega učenja, vendar zahteva veliko označevanja. Poleg označevanja model zahteva tudi globoko razumevanje konteksta za obravnavo dvoumnosti stavkov. Zaradi tega je to zahtevna naloga za preprost algoritem strojnega učenja.

Pogojno naključno polje (CRF)

  • Pogojno naključno polje izvajata NLP Speech Tagger in NLTK. To je verjetnostni model, ki se lahko uporablja za modeliranje zaporednih podatkov, kot so besede.
  • CRF lahko zajame globoko razumevanje konteksta stavka. V tem modelu je vhod {esedilo{X}} = levo { vec{x}_{1} ,vec{x}_{2} ,vec{x}_{3}, ldots,vec{x} _{T} desno }
    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) desno}

Metoda, ki temelji na globokem učenju

  • Sistem globokega učenja NER je veliko natančnejši od prejšnje metode, saj je sposoben sestavljati besede. To je posledica dejstva, da je uporabil metodo, imenovano vdelava besed, ki je sposobna razumeti pomensko in skladenjsko razmerje med različnimi besedami.
  • Prav tako se lahko samodejno nauči analizirati specifične teme in besede na visoki ravni.
  • Zaradi tega je globoko učenje NER uporabno za izvajanje več nalog. Globoko učenje lahko sam opravi večino ponavljajočega se dela, zato lahko na primer raziskovalci učinkoviteje izkoristijo svoj čas.

Kako implementirati NER v Python?

Za implementacijo sistema NER bomo izkoristili knjižnico Spacy. Kodo je mogoče zagnati na colabu, vendar za namene vizualizacije. Priporočam lokalno okolje. Zahtevane knjižnice lahko namestimo z:

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

Namestite pomembne knjiž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 z uporabo Spacyja

V naslednji kodi uporabljamo SpaCy, knjižnica za obdelavo naravnega jezika za obdelavo besedila in ekstrahiranje poimenovanih entitet. Koda ponavlja poimenovane entitete, identificirane v obdelanem dokumentu, in natisne besedilo vsake entitete, začetni znak, končni znak in oznako.

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

Izhod:

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>

Izhod je prikazal imena entitet, njihov začetni in končni položaj v besedilu ter njihove predvidene oznake.

Vizualiziraj

Thedisplacy.render>funkcija spaCy se uporablja za vizualizacijo imenovanih entitet v besedilu. Ustvari vizualno predstavitev z barvnimi poudarki, ki označujejo prepoznane entitete in njihove kategorije.

Python3

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

Izhod:

Kako implementirati NER v Python?

Z naslednjo kodo bomo ustvarili podatkovni okvir iz poimenovanih entitet, ki jih ekstrahira spaCy, vključno z besedilom, vrsto (oznako) in lemo vsake entitete.

Python3

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

Izhod:

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>

Podatkovni okvir nudi strukturirano predstavitev imenovanih entitet, njihovih vrst in lematiziranih oblik.

Pogosto zastavljena vprašanja (FAQ)

1. Kaj je namen sistema NER?

Namen NER je samodejno izluščiti strukturirane informacije iz nestrukturiranega besedila, kar strojem omogoči razumevanje in kategorizacijo entitet na pomenski način za različne aplikacije, kot je povzemanje besedila, izgradnja grafov znanja, odgovarjanje na vprašanja in izgradnja grafov znanja.

2. Kakšne so metode NER v NLP?

Metode NER v NLP vključujejo:

  • NER, ki temelji na leksikonu.
  • Na podlagi pravil
  • Temelji na ML
  • Temelji na globokem učenju.

3. Kakšne so uporabe NER v NLP?

NER ima pomembno vlogo pri izboljšanju natančnosti drugih nalog NLP, kot je označevanje in razčlenjevanje delov govora.

4. Ali lahko BERT izvede prepoznavanje imenovane entitete?

Da, BERT se lahko uporablja za NER.