logo

Erkenning van benoemde entiteiten

Erkenning van benoemde entiteiten (NER) is een techniek in natuurlijke taalverwerking (NLP) dat zich richt op het identificeren en classificeren van entiteiten. Het doel van NER is om automatisch gestructureerde informatie uit ongestructureerde tekst te extraheren, waardoor machines entiteiten op een betekenisvolle manier kunnen begrijpen en categoriseren voor verschillende toepassingen zoals het samenvatten van teksten, het bouwen van kennisgrafieken, het beantwoorden van vragen en het construeren van kennisgrafieken. Het artikel verkent de grondbeginselen, methoden en implementatie van het NER-model.

Wat is benoemde entiteitsherkenning (NER)?

Naam-entiteitsherkenning (NER) wordt ook wel genoemd identificatie van entiteiten , entiteit chunking, En extractie van entiteiten . NER is het onderdeel van informatie-extractie dat tot doel heeft benoemde entiteiten binnen ongestructureerde tekst te identificeren en te categoriseren. NER omvat de identificatie van belangrijke informatie in de tekst en de classificatie in een reeks vooraf gedefinieerde categorieën. Een entiteit is datgene waarover consequent wordt gesproken of waarnaar in de tekst wordt verwezen, zoals persoonsnamen, organisaties, locaties, tijdsaanduidingen, hoeveelheden, percentages en meer vooraf gedefinieerde categorieën.

NER-systeem fin-toepassingen in verschillende domeinen, inclusief het beantwoorden van vragen, het ophalen van informatie en automatische vertaling. NER speelt een belangrijke rol bij het verbeteren van de precisie van anderen NLP taken zoals het taggen en parseren van spraakgedeelten. In de kern is NLP slechts een proces dat uit twee stappen bestaat. Hieronder staan ​​de twee stappen die hierbij betrokken zijn:



  • Het detecteren van de entiteiten uit de tekst
  • Door ze in verschillende categorieën in te delen

Onduidelijkheid in NER

  • Voor een persoon is de categoriedefinitie intuïtief heel duidelijk, maar voor computers is er enige dubbelzinnigheid in de classificatie. Laten we eens kijken naar enkele dubbelzinnige voorbeelden:
    • Engeland (organisatie) heeft het WK 2019 gewonnen versus het WK 2019 vond plaats in Engeland (locatie).
    • Washington (Locatie) is de hoofdstad van de VS versus De eerste president van de VS was Washington (Persoon).

Hoe werkt Named Enty Recognition (NER)?

De werking van Named Entity Recognition wordt hieronder besproken:

  • Het NER-systeem analyseert de volledige invoertekst om de genoemde entiteiten te identificeren en te lokaliseren.
  • Het systeem identificeert vervolgens de zinsgrenzen door rekening te houden met hoofdletterregels. Het herkent het einde van de zin wanneer een woord begint met een hoofdletter, ervan uitgaande dat dit het begin van een nieuwe zin zou kunnen zijn. Het kennen van zinsgrenzen helpt bij het contextualiseren van entiteiten binnen de tekst, waardoor het model relaties en betekenissen kan begrijpen.
  • NER kan worden getraind om volledige documenten in verschillende typen te classificeren, zoals facturen, kwitanties of paspoorten. Documentclassificatie vergroot de veelzijdigheid van NER, waardoor het de entiteitsherkenning kan aanpassen op basis van de specifieke kenmerken en context van verschillende documenttypen.
  • NER maakt gebruik van machine learning-algoritmen, waaronder begeleid leren, om gelabelde datasets te analyseren. Deze datasets bevatten voorbeelden van geannoteerde entiteiten, die het model begeleiden bij het herkennen van vergelijkbare entiteiten in nieuwe, onzichtbare gegevens.
  • Door middel van meerdere trainingsiteraties verfijnt het model zijn begrip van contextuele kenmerken, syntactische structuren en entiteitspatronen, waardoor de nauwkeurigheid in de loop van de tijd voortdurend wordt verbeterd.
  • Dankzij het vermogen van het model om zich aan te passen aan nieuwe gegevens, kan het omgaan met variaties in taal, context en entiteitstypen, waardoor het robuuster en effectiever wordt.

Erkenning van benoemde entiteiten (NER) Methoden

Op lexicon gebaseerde methode

De NER maakt gebruik van een woordenboek met een lijst met woorden of termen. Het proces omvat het controleren of een van deze woorden in een bepaalde tekst voorkomt. Deze aanpak wordt echter niet vaak gebruikt omdat het constante updates en zorgvuldig onderhoud van het woordenboek vereist om accuraat en effectief te blijven.

Op regels gebaseerde methode

De Rule Based NER-methode maakt gebruik van een reeks vooraf gedefinieerde regels die de extractie van informatie begeleiden. Deze regels zijn gebaseerd op patronen en context. Op patronen gebaseerde regels richten zich op de structuur en vorm van woorden, waarbij wordt gekeken naar hun morfologische patronen. Aan de andere kant houden contextgebaseerde regels rekening met de omringende woorden of de context waarin een woord in het tekstdocument voorkomt. Deze combinatie van op patronen gebaseerde en contextgebaseerde regels verbetert de nauwkeurigheid van de informatie-extractie in Named Entity Recognition (NER).

Op machine learning gebaseerde methode

Classificatie in meerdere klassen met machine learning-algoritmen

  • Eén manier is om het model te trainen classificatie in meerdere klassen met behulp van verschillende machine learning-algoritmen, maar het vereist veel labeling. Naast het labelen van het model is ook een diep begrip van de context vereist om met de dubbelzinnigheid van de zinnen om te kunnen gaan. Dit maakt het een uitdagende taak voor een eenvoudig machine learning-algoritme.

Voorwaardelijk willekeurig veld (CRF)

  • Voorwaardelijk willekeurig veld wordt geïmplementeerd door zowel NLP Speech Tagger als NLTK. Het is een probabilistisch model dat kan worden gebruikt om opeenvolgende gegevens zoals woorden te modelleren.
  • Het CRF kan een diep begrip van de context van de zin vastleggen. In dit model is de invoer {	ext{X}} = left { vec{x}_{1} ,vec{x}_{2} ,vec{x}_{3}, ldots,vec{x} _{T} 
echts }
    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}

Op diepgaand leren gebaseerde methode

  • Het Deep Learning NER-systeem is veel nauwkeuriger dan de vorige methode, omdat het in staat is woorden samen te stellen. Dit komt door het feit dat het een methode gebruikte die woordinbedding wordt genoemd en die in staat is de semantische en syntactische relatie tussen verschillende woorden te begrijpen.
  • Het is ook in staat om automatisch analyses, zowel onderwerpspecifieke als woorden op hoog niveau, te leren.
  • Dit maakt deep learning NER toepasbaar voor het uitvoeren van meerdere taken. Diep leren kunnen het meeste repetitieve werk zelf doen, waardoor onderzoekers bijvoorbeeld hun tijd efficiënter kunnen gebruiken.

Hoe NER in Python implementeren?

Voor de implementatie van het NER-systeem zullen we gebruik maken van de Spacy-bibliotheek. De code kan echter op colab worden uitgevoerd voor visualisatiedoeleinden. Ik raad de lokale omgeving aan. We kunnen de vereiste bibliotheken installeren met behulp van:

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

Installeer belangrijke bibliotheken

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

In de volgende code gebruiken we SpaCy, een bibliotheek voor natuurlijke taalverwerking om tekst te verwerken en benoemde entiteiten te extraheren. De code doorloopt de benoemde entiteiten die in het verwerkte document zijn geïdentificeerd en drukt de tekst, het beginteken, het eindteken en het label van elke entiteit af.

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

Uitgang:

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>

In de uitvoer werden de namen van de entiteiten, hun begin- en eindposities in de tekst en hun voorspelde labels weergegeven.

Visualiseer

Dedisplacy.render>functie van spaCy wordt gebruikt om de genoemde entiteiten in een tekst te visualiseren. Het genereert een visuele weergave met gekleurde highlights die de herkende entiteiten en hun respectievelijke categorieën aangeven.

Python3

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

Uitgang:

Hoe NER in Python implementeren?

Met behulp van de volgende code zullen we een dataframe maken van de benoemde entiteiten die zijn geëxtraheerd door spaCy, inclusief de tekst, het type (label) en het lemma van elke entiteit.

Python3

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

Uitgang:

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>

Het dataframe biedt een gestructureerde weergave van de genoemde entiteiten, hun typen en gelemmatiseerde vormen.

Veelgestelde vragen (FAQ's)

1. Wat is het doel van het NER-systeem?

Het doel van NER is om automatisch de gestructureerde informatie uit ongestructureerde tekst te extraheren, waardoor machines entiteiten op een betekenisvolle manier kunnen begrijpen en categoriseren voor verschillende toepassingen zoals het samenvatten van teksten, het bouwen van kennisgrafieken, het beantwoorden van vragen en het construeren van kennisgrafieken.

2. Wat zijn NER-methoden in NLP?

Methoden van NER in NLP zijn onder meer:

  • Lexicongebaseerde NER.
  • Op regels gebaseerd
  • ML-gebaseerd
  • Gebaseerd op diepgaand leren.

3. Wat zijn de toepassingen van NER in NLP?

NER speelt een belangrijke rol bij het verbeteren van de precisie van andere NLP-taken, zoals het taggen en parseren van gedeelten van spraak.

4. Kan BERT naamentiteitsherkenning uitvoeren?

Ja, BERT kan worden gebruikt voor NER.