Pavadinto subjekto atpažinimas (NER) yra technika natūralios kalbos apdorojimas (NLP) kuri orientuota į subjektų identifikavimą ir klasifikavimą. NER tikslas yra automatiškai išgauti struktūrizuotą informaciją iš nestruktūrizuoto teksto, kad mašinos galėtų prasmingai suprasti ir suskirstyti objektus įvairioms programoms, pvz., teksto apibendrinimui, žinių grafikų kūrimui, atsakymui į klausimus ir žinių grafiko konstravimui. Straipsnyje nagrinėjama NER modelio pagrindai, metodai ir įgyvendinimas.
Kas yra pavadinto subjekto atpažinimas (NER)?
Vardo subjekto atpažinimas (NER) taip pat vadinamas subjekto identifikavimas , subjekto suskaidymas, ir subjekto išgavimas . NER yra informacijos išgavimo komponentas, kuriuo siekiama identifikuoti ir suskirstyti į kategorijas įvardytus objektus nestruktūrizuotame tekste. NER apima pagrindinės informacijos identifikavimą tekste ir klasifikavimą į iš anksto nustatytas kategorijas. Esybė – tai dalykas, apie kurį nuolat kalbama arba apie kurį nurodoma tekste, pvz., asmenų vardai, organizacijos, vietos, laiko išraiškos, kiekiai, procentai ir daugiau iš anksto nustatytų kategorijų.
NER sistemos fin taikomosios programos įvairiose srityse, įskaitant atsakymus į klausimus, informacijos gavimą ir mašininį vertimą. NER vaidina svarbų vaidmenį didinant kitų tikslumą NLP užduotys, pvz., kalbos dalies žymėjimas ir analizavimas. Iš esmės NLP yra tik dviejų etapų procesas, toliau pateikiami du veiksmai:
- Objektų aptikimas iš teksto
- Suskirstykite juos į skirtingas kategorijas
Dviprasmybė NER
- Žmogui kategorijos apibrėžimas intuityviai gana aiškus, tačiau kompiuteriams klasifikuojant yra tam tikrų neaiškumų. Pažvelkime į keletą dviprasmiškų pavyzdžių:
- Anglija (organizacija) laimėjo 2019 m. pasaulio taurę, o 2019 m. pasaulio taurė įvyko Anglijoje (vieta).
- Vašingtonas (vieta) yra JAV sostinė ir pirmasis JAV prezidentas buvo Vašingtonas (asmuo).
Kaip veikia pavadintų subjektų atpažinimas (NER)?
Įvardinto subjekto atpažinimo veikimas aptariamas toliau:
- NER sistema analizuoja visą įvesties tekstą, kad nustatytų ir surastų įvardytus objektus.
- Tada sistema nustato sakinio ribas, atsižvelgdama į didžiųjų raidžių rašymo taisykles. Jis atpažįsta sakinio pabaigą, kai žodis prasideda didžiąja raide, darant prielaidą, kad tai gali būti naujo sakinio pradžia. Sakinio ribų žinojimas padeda kontekstualizuoti esybes tekste, leidžia modeliui suprasti ryšius ir reikšmes.
- NER gali būti išmokytas klasifikuoti visus dokumentus į skirtingus tipus, pvz., sąskaitas faktūras, kvitus ar pasus. Dokumentų klasifikavimas padidina NER universalumą, leisdamas pritaikyti objekto atpažinimą pagal specifines skirtingų dokumentų tipų savybes ir kontekstą.
- NER naudoja mašininio mokymosi algoritmus, įskaitant prižiūrimą mokymąsi, kad analizuotų pažymėtus duomenų rinkinius. Šiuose duomenų rinkiniuose yra anotuotų objektų pavyzdžių, pagal kuriuos modelis atpažįsta panašius objektus naujuose, nematomuose duomenyse.
- Per daugybę mokymo iteracijų modelis tobulina kontekstinių ypatybių, sintaksinių struktūrų ir objektų modelių supratimą, laikui bėgant nuolat gerindamas jo tikslumą.
- Modelio gebėjimas prisitaikyti prie naujų duomenų leidžia tvarkyti kalbos, konteksto ir objektų tipų skirtumus, todėl jis yra patikimesnis ir efektyvesnis.
Pavadinto subjekto atpažinimas (NER) Metodai
Leksika pagrįstas metodas
NER naudoja žodyną su žodžių ar terminų sąrašu. Procesas apima patikrinimą, ar kuris nors iš šių žodžių yra pateiktame tekste. Tačiau šis metodas nėra dažnai naudojamas, nes norint, kad žodynas būtų tikslus ir veiksmingas, jį reikia nuolat atnaujinti ir atidžiai prižiūrėti.
Taisyklėmis pagrįstas metodas
Taisyklėmis pagrįstas NER metodas naudoja iš anksto nustatytų taisyklių rinkinį, kuris vadovauja informacijos gavimui. Šios taisyklės pagrįstos modeliais ir kontekstu. Šablonais pagrįstos taisyklės sutelkia dėmesį į žodžių struktūrą ir formą, žiūri į jų morfologinius modelius. Kita vertus, kontekstu pagrįstos taisyklės atsižvelgia į aplinkinius žodžius arba kontekstą, kuriame žodis yra tekstiniame dokumente. Šis šablonu ir kontekstu pagrįstų taisyklių derinys padidina informacijos gavimo tikslumą naudojant įvardintų objektų atpažinimą (NER).
Mašininiu mokymusi pagrįstas metodas
Kelių klasių klasifikavimas naudojant mašininio mokymosi algoritmus
- Vienas iš būdų yra išmokyti modelį kelių klasių klasifikacija naudojant skirtingus mašininio mokymosi algoritmus, tačiau tam reikia daug ženklinimo. Be modelio žymėjimo, taip pat reikia giliai suprasti kontekstą, kad būtų galima išspręsti sakinių dviprasmiškumą. Dėl to paprastam mašininio mokymosi algoritmui tai yra sudėtinga užduotis.
Sąlyginis atsitiktinis laukas (CRF)
- Sąlyginį atsitiktinį lauką įgyvendina ir NLP Speech Tagger, ir NLTK. Tai tikimybinis modelis, kurį galima naudoti nuosekliems duomenims, pavyzdžiui, žodžiams, modeliuoti.
- CRF gali užfiksuoti gilų sakinio konteksto supratimą. Šiame modelyje įvestis

Giluminiu mokymusi pagrįstas metodas
- Giluminio mokymosi NER sistema yra daug tikslesnė nei ankstesnis metodas, nes ji gali surinkti žodžius. Taip yra dėl to, kad buvo naudojamas metodas, vadinamas žodžių įterpimu, kuris gali suprasti įvairių žodžių semantinį ir sintaksinį ryšį.
- Jis taip pat gali automatiškai išmokti analizuoti konkrečias temas ir aukšto lygio žodžius.
- Dėl to gilus mokymasis NER yra tinkamas atliekant kelias užduotis. Gilus mokymasis gali pats atlikti daugumą pasikartojančių darbų, todėl, pavyzdžiui, mokslininkai gali efektyviau panaudoti savo laiką.
Kaip įdiegti NER Python?
Įdiegdami NER sistemą panaudosime „Spacy“ biblioteką. Kodas gali būti paleistas „Colab“, tačiau vizualizacijos tikslais. Rekomenduoju vietinę aplinką. Galime įdiegti reikiamas bibliotekas naudodami:
!pip install spacy !pip install nltk ! python -m spacy download en_core_web_sm>
Įdiekite svarbias bibliotekas
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 naudojant Space
Šiame kode mes naudojame SpaCy, natūralios kalbos apdorojimo biblioteka, skirta apdoroti tekstą ir išgauti pavadintus objektus. Kodas kartojasi per įvardytus objektus, nurodytus apdorotame dokumente, ir spausdina kiekvieno objekto tekstą, pradžios simbolį, pabaigos simbolį ir etiketę.
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_)> |
>
>
Išvestis:
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>
Išvestyje buvo rodomi objektų pavadinimai, jų pradžios ir pabaigos pozicijos tekste ir numatomos etiketės.
Vizualizuokite
Thedisplacy.render>funkcija iš spaCy naudojama įvardytų objektų tekste vizualizuoti. Jis sukuria vizualinį vaizdą su spalvotais paryškinimais, nurodant atpažintus objektus ir atitinkamas jų kategorijas.
Python3
from> spacy>import> displacy> displacy.render(doc, style>=>'ent'>)> |
>
>
Išvestis:

Naudodami šį kodą, sukursime duomenų rėmelį iš įvardytų objektų, ištrauktų naudojant spaCy, įskaitant kiekvieno objekto tekstą, tipą (etiketę) ir lemą.
Python3
entities>=> [(ent.text, ent.label_, ent.lemma_)>for> ent>in> doc.ents]> df>=> pd.DataFrame(entities, columns>=>[>'text'>,>'type'>,>'lemma'>])> print>(df)> |
>
>
Išvestis:
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>
Duomenų rėmelyje pateikiamas struktūrizuotas įvardytų objektų, jų tipų ir lemmatizuotų formų vaizdavimas.
Dažnai užduodami klausimai (DUK)
1. Koks yra NER sistemos tikslas?
NER tikslas yra automatiškai išgauti susistemintą informaciją iš nestruktūrizuoto teksto, kad mašinos galėtų suprasti ir suskirstyti objektus į kategorijas įvairioms programoms, tokioms kaip teksto apibendrinimas, žinių grafikų kūrimas, atsakymų į klausimus ir žinių grafiko konstravimas.
2. Kokie yra NER metodai NLP?
NER metodai NLP apima:
- Leksika pagrįsta NER.
- Taisyklėmis pagrįstos
- ML pagrindu
- Pagrįstas giliu mokymusi.
3. Kokie yra NER naudojimo būdai NLP?
NER vaidina svarbų vaidmenį didinant kitų NLP užduočių, pvz., kalbos dalies žymėjimo ir analizavimo, tikslumą.
4. Ar BERT gali atlikti įvardyto subjekto atpažinimą?
Taip, BERT gali būti naudojamas NER.
