logo

Navngivet enhedsgenkendelse

Anerkendelse af navngivet enhed (NER) er en teknik i naturlig sprogbehandling (NLP) der fokuserer på at identificere og klassificere enheder. Formålet med NER er automatisk at udtrække struktureret information fra ustruktureret tekst, hvilket gør det muligt for maskiner at forstå og kategorisere enheder på en meningsfuld måde til forskellige applikationer som tekstresumé, opbygning af vidensgrafer, spørgsmålsbesvarelse og vidensgrafkonstruktion. Artiklen udforsker grundlæggende, metoder og implementering af NER-modellen.

Hvad er Named Entity Recognition (NER)?

Navne-entitetsgenkendelse (NER) er også omtalt som enhedsidentifikation , enhed chunking, og enhedsudvinding . NER er komponenten i informationsudtrækning, der har til formål at identificere og kategorisere navngivne enheder i ustruktureret tekst. NER involverer identifikation af nøgleoplysninger i teksten og klassificering i et sæt foruddefinerede kategorier. En entitet er den ting, der konsekvent tales om eller refererer til i teksten, såsom personnavne, organisationer, lokationer, tidsudtryk, mængder, procenter og flere foruddefinerede kategorier.

NER system fin-applikationer på tværs af forskellige domæner, herunder besvarelse af spørgsmål, informationssøgning og maskinoversættelse. NER spiller en vigtig rolle i at forbedre andres præcision NLP opgaver som ordsprog-tagging og parsing. I sin kerne er NLP kun en to-trins proces, nedenfor er de to trin, der er involveret:



  • Detektering af entiteterne fra teksten
  • At klassificere dem i forskellige kategorier

Tvetydighed i NER

  • For en person er kategoridefinitionen intuitivt ret klar, men for computere er der en vis uklarhed i klassificeringen. Lad os se på nogle tvetydige eksempler:
    • England (Organisation) vandt VM i 2019 vs VM i 2019 fandt sted i England (Placering).
    • Washington (Location) er hovedstaden i USA vs USA's første præsident var Washington (Person).

Hvordan fungerer navngivet enhedsgenkendelse (NER)?

Funktionen af ​​navngivet enhedsgenkendelse diskuteres nedenfor:

  • NER-systemet analyserer hele inputteksten for at identificere og lokalisere de navngivne enheder.
  • Systemet identificerer derefter sætningsgrænserne ved at overveje regler for store bogstaver. Den genkender slutningen af ​​sætningen, når et ord starter med et stort bogstav, forudsat at det kunne være begyndelsen på en ny sætning. At kende sætningsgrænser hjælper med at kontekstualisere enheder i teksten, hvilket giver modellen mulighed for at forstå relationer og betydninger.
  • NER kan trænes til at klassificere hele dokumenter i forskellige typer, såsom fakturaer, kvitteringer eller pas. Dokumentklassificering øger NER's alsidighed, så den kan tilpasse sin enhedsgenkendelse baseret på de specifikke karakteristika og konteksten af ​​forskellige dokumenttyper.
  • NER anvender maskinlæringsalgoritmer, herunder overvåget læring, til at analysere mærkede datasæt. Disse datasæt indeholder eksempler på annoterede enheder, der vejleder modellen i at genkende lignende enheder i nye, usete data.
  • Gennem flere træningsiterationer forfiner modellen sin forståelse af kontekstuelle træk, syntaktiske strukturer og entitetsmønstre og forbedrer løbende dens nøjagtighed over tid.
  • Modellens evne til at tilpasse sig nye data gør det muligt for den at håndtere variationer i sprog, kontekst og entitetstyper, hvilket gør den mere robust og effektiv.

Anerkendelse af navngivet enhed (NER) Metoder

Leksikonbaseret metode

NER bruger en ordbog med en liste over ord eller udtryk. Processen involverer at kontrollere, om nogen af ​​disse ord er til stede i en given tekst. Denne tilgang er dog ikke almindeligt brugt, fordi den kræver konstant opdatering og omhyggelig vedligeholdelse af ordbogen for at forblive nøjagtig og effektiv.

Regel baseret metode

Den regelbaserede NER-metode bruger et sæt foruddefinerede regler, der guider udtrækningen af ​​information. Disse regler er baseret på mønstre og kontekst. Mønsterbaserede regler fokuserer på ordenes struktur og form og ser på deres morfologiske mønstre. På den anden side overvejer kontekstbaserede regler de omgivende ord eller den kontekst, som et ord optræder i i tekstdokumentet. Denne kombination af mønsterbaserede og kontekstbaserede regler øger præcisionen af ​​informationsudtrækning i Named Entity Recognition (NER).

Maskinlæringsbaseret metode

Multi-Class Klassifikation med Machine Learning algoritmer

  • En måde er at træne modellen til multi-klasse klassifikation ved hjælp af forskellige maskinlæringsalgoritmer, men det kræver meget mærkning. Ud over at mærke modellen kræver modellen også en dyb forståelse af kontekst for at håndtere sætningernes tvetydighed. Dette gør det til en udfordrende opgave for en simpel maskinlæringsalgoritme.

Betinget tilfældigt felt (CRF)

  • Betinget tilfældigt felt er implementeret af både NLP Speech Tagger og NLTK. Det er en probabilistisk model, der kan bruges til at modellere sekventielle data såsom ord.
  • CRF kan fange en dyb forståelse af sætningens kontekst. I denne model er input {	ext{X}} = venstre { vec{x}_{1} ,vec{x}_{2} ,vec{x}_{3}, ldots,vec{x} _{T} 
ight }
    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}

Dyb læringsbaseret metode

  • Deep learning NER-systemet er meget mere nøjagtigt end tidligere metode, da det er i stand til at samle ord. Dette skyldes det faktum, at den brugte en metode kaldet ordindlejring, som er i stand til at forstå det semantiske og syntaktiske forhold mellem forskellige ord.
  • Det er også i stand til at lære analyser emnespecifikke såvel som ord på højt niveau automatisk.
  • Dette gør deep learning NER anvendelig til at udføre flere opgaver. Dyb læring kan udføre det meste af det gentagne arbejde selv, hvorfor forskere for eksempel kan bruge deres tid mere effektivt.

Hvordan implementerer man NER i Python?

Til implementering af NER-systemet vil vi udnytte Spacy-biblioteket. Koden kan køres på colab, dog til visualiseringsformål. Jeg anbefaler det lokale miljø. Vi kan installere de nødvendige biblioteker ved hjælp af:

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

Installer vigtige biblioteker

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 bruger Spacy

I den følgende kode bruger vi SpaCy, et naturligt sprogbehandlingsbibliotek til at behandle tekst og udtrække navngivne entiteter. Koden itererer gennem de navngivne enheder, der er identificeret i det behandlede dokument, og udskriver hver enheds tekst, starttegn, sluttegn og 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_)>
>
>

Produktion:

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>

Outputtet viste navnene på enhederne, deres start- og slutpositioner i teksten og deres forudsagte etiketter.

Visualiser

Detdisplacy.render>funktion fra spaCy bruges til at visualisere de navngivne enheder i en tekst. Det genererer en visuel repræsentation med farvede highlights, der angiver de anerkendte enheder og deres respektive kategorier.

Python3

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

Produktion:

Hvordan implementerer man NER i Python?

Ved hjælp af følgende kode vil vi oprette en dataramme fra de navngivne entiteter, der er udtrukket af spaCy, inklusive teksten, typen (etiket) og lemma for hver enhed.

Python3

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

Produktion:

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>

Datarammen giver en struktureret repræsentation af de navngivne entiteter, deres typer og lemmatiserede former.

Ofte stillede spørgsmål (FAQ)

1. Hvad er formålet med NER-systemet?

Formålet med NER er automatisk at udtrække den strukturerede information fra ustruktureret tekst, hvilket gør det muligt for maskiner at forstå og kategorisere enheder på en meningsfuld måde til forskellige applikationer som tekstresumé, opbygning af vidensgrafer, spørgsmålsbesvarelse og vidensgrafkonstruktion.

2. Hvad er metoder til NER i NLP?

Metoder til NER i NLP inkluderer:

  • Leksikonbaseret NER.
  • Regler baseret
  • ML baseret
  • Dyb læring baseret.

3. Hvad er anvendelserne af NER i NLP?

NER spiller en vigtig rolle i at forbedre præcisionen af ​​andre NLP-opgaver som f.eks. orddeltagging og parsing.

4. Kan BERT udføre navngivne enhedsgenkendelse?

Ja, BERT kan bruges til NER.