Named Entity Recognition (NER) är en teknik i naturlig språkbehandling (NLP) som fokuserar på att identifiera och klassificera enheter. Syftet med NER är att automatiskt extrahera strukturerad information från ostrukturerad text, vilket gör det möjligt för maskiner att förstå och kategorisera entiteter på ett meningsfullt sätt för olika applikationer som textsammanfattning, bygga kunskapsgrafer, frågesvar och kunskapsgrafkonstruktion. Artikeln utforskar grunder, metoder och implementering av NER-modellen.
Vad är Named Entity Recognition (NER)?
Namn-enhetsigenkänning (NER) kallas också enhetsidentifiering , enhet chunking, och enhetsutvinning . NER är komponenten i informationsextraktion som syftar till att identifiera och kategorisera namngivna enheter inom ostrukturerad text. NER innebär identifiering av nyckelinformation i texten och klassificering i en uppsättning fördefinierade kategorier. En entitet är det som det konsekvent talas om eller refererar till i texten, såsom personnamn, organisationer, platser, tidsuttryck, kvantiteter, procentsatser och fler fördefinierade kategorier.
NER-systemfinapplikationer över olika domäner, inklusive svar på frågor, informationssökning och maskinöversättning. NER spelar en viktig roll för att förbättra precisionen hos andra NLP uppgifter som ordspråktaggning och analys. I sin kärna är NLP bara en tvåstegsprocess, nedan är de två stegen som är involverade:
- Upptäcka enheterna från texten
- Dela in dem i olika kategorier
Tvetydighet i NER
- För en person är kategoridefinitionen intuitivt ganska tydlig, men för datorer finns det en viss oklarhet i klassificeringen. Låt oss titta på några tvetydiga exempel:
- England (Organisation) vann VM 2019 vs VM 2019 ägde rum i England (Plats).
- Washington (Location) är huvudstaden i USA vs USA:s första president var Washington (Person).
Hur fungerar Named Entity Recognition (NER)?
Hur Named Entity Recognition fungerar diskuteras nedan:
- NER-systemet analyserar hela inmatningstexten för att identifiera och lokalisera de namngivna enheterna.
- Systemet identifierar sedan meningsgränserna genom att överväga regler för versaler. Den känner igen slutet på meningen när ett ord börjar med en stor bokstav, förutsatt att det kan vara början på en ny mening. Att känna till meningsgränser hjälper till att kontextualisera enheter i texten, vilket gör att modellen kan förstå relationer och betydelser.
- NER kan tränas för att klassificera hela dokument i olika typer, såsom fakturor, kvitton eller pass. Dokumentklassificering förbättrar mångsidigheten hos NER, vilket gör att den kan anpassa sin enhetsigenkänning baserat på de specifika egenskaperna och sammanhanget för olika dokumenttyper.
- NER använder maskininlärningsalgoritmer, inklusive övervakad inlärning, för att analysera märkta datamängder. Dessa datauppsättningar innehåller exempel på kommenterade enheter, som vägleder modellen i att känna igen liknande enheter i ny, osynlig data.
- Genom flera träningsiterationer förfinar modellen sin förståelse av kontextuella egenskaper, syntaktiska strukturer och entitetsmönster, och förbättrar kontinuerligt dess noggrannhet över tiden.
- Modellens förmåga att anpassa sig till ny data gör att den kan hantera variationer i språk, sammanhang och enhetstyper, vilket gör den mer robust och effektiv.
Named Entity Recognition (NER) Metoder
Lexikonbaserad metod
NER använder en ordbok med en lista med ord eller termer. Processen går ut på att kontrollera om något av dessa ord finns i en given text. Det här tillvägagångssättet används dock inte ofta eftersom det kräver ständig uppdatering och noggrant underhåll av ordboken för att vara korrekt och effektiv.
Regelbaserad metod
Den regelbaserade NER-metoden använder en uppsättning fördefinierade regler som styr utvinningen av information. Dessa regler är baserade på mönster och sammanhang. Mönsterbaserade regler fokuserar på ordens struktur och form, och tittar på deras morfologiska mönster. Å andra sidan tar kontextbaserade regler hänsyn till de omgivande orden eller sammanhanget där ett ord förekommer i textdokumentet. Denna kombination av mönsterbaserade och kontextbaserade regler förbättrar precisionen av informationsextraktion i Named Entity Recognition (NER).
Maskininlärningsbaserad metod
Klassificering i flera klasser med maskininlärningsalgoritmer
- Ett sätt är att träna modellen för flerklassklassificering använder olika maskininlärningsalgoritmer, men det kräver mycket märkning. Förutom märkning kräver modellen också en djup förståelse av sammanhang för att hantera meningarnas tvetydighet. Detta gör det till en utmanande uppgift för en enkel maskininlärningsalgoritm.
Villkorligt slumpmässigt fält (CRF)
- Villkorligt slumpmässigt fält implementeras av både NLP Speech Tagger och NLTK. Det är en probabilistisk modell som kan användas för att modellera sekventiell data som till exempel ord.
- CRF kan fånga en djup förståelse av meningens sammanhang. I denna modell, ingången

Deep Learning-baserad metod
- Deep learning NER-systemet är mycket mer exakt än tidigare metod, eftersom det är kapabelt att sätta ihop ord. Detta beror på det faktum att den använde en metod som kallas ordinbäddning, som är kapabel att förstå det semantiska och syntaktiska förhållandet mellan olika ord.
- Det kan också lära sig analyser ämnesspecifika såväl som ord på hög nivå automatiskt.
- Detta gör NER för djupinlärning användbar för att utföra flera uppgifter. Djup lärning kan göra det mesta av det repetitiva arbetet själv, därför kan forskare till exempel använda sin tid mer effektivt.
Hur implementerar man NER i Python?
För att implementera NER-systemet kommer vi att utnyttja Spacy-biblioteket. Koden kan köras på colab, dock i visualiseringssyfte. Jag rekommenderar den lokala miljön. Vi kan installera de nödvändiga biblioteken med hjälp av:
!pip install spacy !pip install nltk ! python -m spacy download en_core_web_sm>
Installera viktiga bibliotek
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 använder Spacy
I följande kod använder vi SpaCy, ett naturligt språkbehandlingsbibliotek för att bearbeta text och extrahera namngivna enheter. Koden itererar genom de namngivna enheterna som identifieras i det bearbetade dokumentet och skriver ut varje enhets text, starttecken, sluttecken och etikett.
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>
Utdatat visade namnen på entiteterna, deras start- och slutpositioner i texten och deras förutsedda etiketter.
Visualisera
Dedisplacy.render>funktion från spaCy används för att visualisera de namngivna enheterna i en text. Den genererar en visuell representation med färgade höjdpunkter som indikerar de erkända enheterna och deras respektive kategorier.
Python3
from> spacy>import> displacy> displacy.render(doc, style>=>'ent'>)> |
>
>
Produktion:

Med hjälp av följande kod kommer vi att skapa en dataram från de namngivna enheterna som extraherats av spaCy, inklusive text, typ (etikett) och lemma för varje entitet.
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>
Dataramen ger en strukturerad representation av de namngivna enheterna, deras typer och lemmatiserade former.
Vanliga frågor (FAQs)
1. Vad är syftet med NER-systemet?
Syftet med NER är att automatiskt extrahera den strukturerade informationen från ostrukturerad text, vilket gör det möjligt för maskiner att förstå och kategorisera enheter på ett meningsfullt sätt för olika applikationer som textsammanfattning, bygga kunskapsgrafer, frågesvar och kunskapsgrafkonstruktion.
2. Vilka är metoder för NER i NLP?
Metoder för NER i NLP inkluderar:
- Lexikonbaserad NER.
- Regelbaserad
- ML-baserad
- Baserat på djupinlärning.
3. Vilka är användningarna av NER i NLP?
NER spelar en viktig roll för att förbättra precisionen i andra NLP-uppgifter som ordstämtaggning och parsning.
4. Kan BERT göra namngivna enheter?
Ja, BERT kan användas för NER.
