logo

Nosaukta entītijas atpazīšana

Nosauktās entītijas atpazīšana (NER) ir tehnika dabiskās valodas apstrāde (NLP) kas koncentrējas uz entītiju identificēšanu un klasificēšanu. NER mērķis ir automātiski iegūt strukturētu informāciju no nestrukturēta teksta, ļaujot mašīnām jēgpilni saprast un klasificēt entītijas dažādām lietojumprogrammām, piemēram, teksta apkopošanai, zināšanu diagrammu veidošanai, atbildēm uz jautājumiem un zināšanu diagrammu veidošanai. Rakstā tiek pētīts NER modeļa pamati, metodes un ieviešana.

Kas ir nosauktās entītijas atpazīšana (NER)?

Vārda entītijas atpazīšana (NER) tiek saukts arī par entītijas identifikācija , vienības sadalīšana, un entītijas ieguve . NER ir informācijas ieguves sastāvdaļa, kuras mērķis ir identificēt un klasificēt nosauktās entītijas nestrukturētā tekstā. NER ietver galvenās informācijas identificēšanu tekstā un klasificēšanu iepriekš noteiktu kategoriju komplektā. Entītija ir lieta, par kuru konsekventi runā vai atsaucas tekstā, piemēram, personu vārdi, organizācijas, atrašanās vietas, laika izteiksmes, daudzumi, procenti un vairāk iepriekš definētu kategoriju.

NER sistēmas fin lietojumprogrammas dažādās jomās, tostarp atbildes uz jautājumiem, informācijas izguve un mašīntulkošana. NER ir svarīga loma citu precizitātes uzlabošanā NLP tādi uzdevumi kā runas daļas marķēšana un parsēšana. Savā pamatā NLP ir tikai divpakāpju process, tālāk ir norādīti divi soļi, kas ir saistīti.



  • Entītiju noteikšana no teksta
  • Klasificējot tos dažādās kategorijās

Neskaidrība NER

  • Personai kategorijas definīcija ir intuitīvi diezgan skaidra, bet datoriem klasifikācijā ir zināmas neskaidrības. Apskatīsim dažus neskaidrus piemērus:
    • Anglija (organizācija) uzvarēja 2019. gada Pasaules kausa izcīņā pret 2019. gada Pasaules kausu, kas notika Anglijā (atrašanās vieta).
    • Vašingtona (atrašanās vieta) ir ASV galvaspilsēta pret ASV pirmais prezidents bija Vašingtona (persona).

Kā darbojas nosaukto entītiju atpazīšana (NER)?

Nosauktās entītijas atpazīšanas darbība ir apspriesta tālāk:

  • NER sistēma analizē visu ievades tekstu, lai identificētu un atrastu nosauktās entītijas.
  • Pēc tam sistēma identificē teikuma robežas, ņemot vērā lielo burtu lietojuma noteikumus. Tas atpazīst teikuma beigas, kad vārds sākas ar lielo burtu, pieņemot, ka tas varētu būt jauna teikuma sākums. Teikumu robežu pārzināšana palīdz kontekstualizēt teksta entītijas, ļaujot modelim izprast attiecības un nozīmes.
  • NER var apmācīt klasificēt veselus dokumentus dažādos veidos, piemēram, rēķinos, čekos vai pasēs. Dokumentu klasifikācija uzlabo NER daudzpusību, ļaujot tai pielāgot entītiju atpazīšanu, pamatojoties uz dažādu dokumentu tipu specifiskajām īpašībām un kontekstu.
  • NER izmanto mašīnmācīšanās algoritmus, tostarp uzraudzītu mācīšanos, lai analizētu marķētas datu kopas. Šajās datu kopās ir ietverti anotētu entītiju piemēri, kas modelim palīdz atpazīt līdzīgas entītijas jaunos, neredzētos datos.
  • Izmantojot vairākas apmācības iterācijas, modelis uzlabo izpratni par kontekstuālajām iezīmēm, sintaktiskajām struktūrām un entītiju modeļiem, laika gaitā nepārtraukti uzlabojot tā precizitāti.
  • Modeļa spēja pielāgoties jauniem datiem ļauj tam apstrādāt valodas, konteksta un entītiju veidu variācijas, padarot to izturīgāku un efektīvāku.

Nosauktās entītijas atpazīšana (NER) Metodes

Leksikonā balstīta metode

NER izmanto vārdnīcu ar vārdu vai terminu sarakstu. Process ietver pārbaudi, vai konkrētajā tekstā ir kāds no šiem vārdiem. Tomēr šī pieeja netiek plaši izmantota, jo tai ir nepieciešama pastāvīga vārdnīcas atjaunināšana un rūpīga apkope, lai tā būtu precīza un efektīva.

Uz kārtulām balstīta metode

Uz kārtulām balstītā NER metode izmanto iepriekš definētu noteikumu kopu, kas vada informācijas ieguvi. Šie noteikumi ir balstīti uz modeļiem un kontekstu. Uz modeļiem balstīti noteikumi koncentrējas uz vārdu struktūru un formu, aplūkojot to morfoloģiskos modeļus. No otras puses, uz kontekstu balstītie noteikumi ņem vērā apkārtējos vārdus vai kontekstu, kurā vārds parādās teksta dokumentā. Šī uz modeļiem balstīto un kontekstā balstīto noteikumu kombinācija uzlabo informācijas ieguves precizitāti nosauktajā entītiju atpazīšanas (NER).

Uz mašīnmācīšanos balstīta metode

Vairāku klašu klasifikācija ar mašīnmācīšanās algoritmiem

  • Viens veids ir apmācīt modeli vairāku klašu klasifikācija izmantojot dažādus mašīnmācīšanās algoritmus, taču tas prasa daudz marķēšanas. Papildus marķēšanai modelim ir nepieciešama arī dziļa konteksta izpratne, lai risinātu teikumu neskaidrības. Tas padara to par sarežģītu uzdevumu vienkāršam mašīnmācīšanās algoritmam.

Nosacīts izlases lauks (CRF)

  • Nosacītu izlases lauku ievieš gan NLP Speech Tagger, gan NLTK. Tas ir varbūtības modelis, ko var izmantot, lai modelētu secīgus datus, piemēram, vārdus.
  • CRF var iegūt dziļu izpratni par teikuma kontekstu. Šajā modelī ievade {	ext{X}} = left { vec{x}_{1} ,vec{x}_{2} ,vec{x}_{3}, ldots,vec{x} _{T} pa labi }
    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}

Uz dziļu mācīšanos balstīta metode

  • Dziļās mācīšanās NER sistēma ir daudz precīzāka nekā iepriekšējā metode, jo tā spēj salikt vārdus. Tas ir saistīts ar faktu, ka tajā tika izmantota metode, ko sauc par vārdu iegulšanu, kas spēj izprast dažādu vārdu semantiskās un sintaktiskās attiecības.
  • Tas arī spēj automātiski iemācīties analizēt tematus, kā arī augsta līmeņa vārdus.
  • Tādējādi dziļās mācīšanās NER ir piemērota vairāku uzdevumu veikšanai. Dziļa mācīšanās var pats veikt lielāko daļu atkārtotā darba, tāpēc pētnieki, piemēram, var efektīvāk izmantot savu laiku.

Kā ieviest NER programmā Python?

NER sistēmas ieviešanai mēs izmantosim Spacy bibliotēku. Kodu var palaist Colab, taču vizualizācijas nolūkos. Iesaku vietējo vidi. Mēs varam instalēt nepieciešamās bibliotēkas, izmantojot:

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

Instalējiet svarīgas bibliotēkas

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, izmantojot Space

Nākamajā kodā mēs izmantojam SpaCy, dabiskās valodas apstrādes bibliotēka teksta apstrādei un nosaukto entītiju izvilkšanai. Kods atkārtojas caur nosauktajām entītijām, kas identificētas apstrādātajā dokumentā, un izdrukā katras entītijas tekstu, sākuma rakstzīmi, beigu rakstzīmi un etiķeti.

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

Izvade:

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>

Izvadē tika parādīti entītiju nosaukumi, to sākuma un beigu pozīcijas tekstā un paredzētās etiķetes.

Vizualizēt

Thedisplacy.render>funkcija no spaCy tiek izmantota, lai vizualizētu nosauktās entītijas tekstā. Tas ģenerē vizuālu attēlojumu ar krāsainiem izcēlumiem, kas norāda atpazītās entītijas un to attiecīgās kategorijas.

Python3

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

Izvade:

Kā ieviest NER programmā Python?

Izmantojot tālāk norādīto kodu, mēs izveidosim datu rāmi no nosauktajām entītijām, kuras izvilktas ar spaCy, iekļaujot katras entītijas tekstu, veidu (iezīmi) un lemmu.

Python3

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

Izvade:

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>

Datu rāmis nodrošina nosaukto entītiju, to veidu un lematizēto formu strukturētu attēlojumu.

Bieži uzdotie jautājumi (FAQ)

1. Kāds ir NER sistēmas mērķis?

NER mērķis ir automātiski iegūt strukturēto informāciju no nestrukturēta teksta, ļaujot mašīnām saprast un klasificēt entītijas jēgpilnā veidā dažādām lietojumprogrammām, piemēram, teksta apkopošanai, zināšanu diagrammu veidošanai, atbildēm uz jautājumiem un zināšanu diagrammu konstruēšanai.

2. Kādas ir NER metodes NLP?

NER metodes NLP ietver:

  • Leksikā balstīta NER.
  • Pamatojoties uz noteikumiem
  • Pamatojoties uz ML
  • Pamatojoties uz dziļu mācīšanos.

3. Kādi ir NER lietojumi NLP?

NER ir svarīga loma citu NLP uzdevumu, piemēram, runas daļas marķēšanas un parsēšanas, precizitātes uzlabošanā.

4. Vai BERT var veikt nosaukto vienību atpazīšanu?

Jā, BERT var izmantot NER.