Analiza dependenței în NLP [explicat cu exemple]

Publicat: 2021-03-10

Procesarea limbajului natural este un concept interdisciplinar care ia bazele lingvisticii computaționale și ale inteligenței artificiale pentru a înțelege modul în care limbajele umane interacționează cu tehnologia.

NLP necesită o înțelegere aprofundată a diverselor terminologii și concepte pentru a le aplica în mod tangibil scenariilor din lumea reală. Unele dintre aceste concepte de bază includ etichetarea părții de vorbire (POS), modelarea statistică a limbajului, analiza sintactică, semantică și a sentimentelor, normalizarea, tokenizarea, analizarea dependenței și analizarea circumscripției, printre altele.

În acest articol, ne vom uita la elementele fundamentale ale analizei dependenței pentru a obține o perspectivă asupra modului în care este implementată în NLP.

Cuprins

Analiza dependenței

Dependency Parsing (DP) se referă la examinarea dependențelor dintre cuvintele unei propoziții pentru a analiza structura gramaticală a acesteia. Pe baza acestui fapt, o propoziție este împărțită în mai multe componente. Mecanismul se bazează pe conceptul că există o legătură directă între fiecare unitate lingvistică a unei propoziții. Aceste legături sunt denumite dependențe.

Să luăm, de exemplu, propoziția Prefer zborul de dimineață prin Denver”.

Diagrama de mai jos explică structura de dependență a propoziției:

Sursă

Relațiile dintre fiecare unitate lingvistică, sau cuvânt, a propoziției, sunt indicate folosind arce direcționate într-o structură de dependență tipizată. După cum este etichetat în diagramă, rădăcina arborelui „prefer” formează capul propoziției de mai sus.

Relația dintre oricare două cuvinte este marcată de o etichetă de dependență. De exemplu, cuvântul „zbor” modifică sensul substantivului „Denver”. Prin urmare, puteți observa o dependență de la zbor -> Denver unde zborul este capul și Denver este copilul sau dependentul. Este notat cu nmod care reprezintă un modificator nominal.

Acest lucru formează cazul pentru dependența dintre fiecare două cuvinte, unde unul acționează ca cap, iar celălalt este dependent. În prezent, taxonomia Universal Dependency V2 constă din 37 de relații sintactice universale, așa cum este specificat în tabelul de mai jos:

Etichetă de dependență Descriere
acl modificatorul clauzal al unui substantiv (propoziție adnominală)
acl:relcl modificator de propoziție relativă
advcl modificator de clauză adverbială
advmod modificator adverbial
advmod:emph cuvânt accentuant, intensificator
advmod:lmod modificator adverbial locativ
amod modificator adjectival
apos modificator apozițional
aux auxiliar
aux:pass auxiliar pasiv
caz marcarea carcasei
cc conjuctie coordonatoare
cc:preconj preconjunctiv
ccomp complement clauzal
clf clasificator
compus compus
compus:lvc construcție ușoară a verbului
compus: prt particulă verb frazal
compus: redup compuși reduplicați
compus:svc compuși de verbe în serie
conj conjunctură
poliţist copulă
csubj subiect clauzal
csubj:pass subiect clauzal pasiv
dep dependenta nespecificata
det determinant
det:numgov cuantificator pronominal care guvernează cazul substantivului
det:nummod cuantificator pronominal de acord în caz cu substantivul
det:pos determinant posesiv
discurs element de discurs
dislocat elemente dislocate
expl expletiv
expl:impers impersonal impersonal
expl:trece pronume reflexiv folosit în pasiv reflexiv
expl:pv clitic reflexiv cu un verb inerent reflexiv
fix expresie fixă ​​cu mai multe cuvinte
apartament expresie plată cu mai multe cuvinte
plat: străin cuvinte străine
plat:nume nume
merge cu merge cu
iobj obiect indirect
listă listă
marcă marker
nmod modificator nominal
nmod:poss modificator nominal posesiv
nmod:tmod modificator temporal
nsubj subiect nominal
nsubj:trece subiect nominal pasiv
nummod modificator numeric
nummod:gov modificatorul numeric care guvernează cazul substantivului
obj obiect
obl nominal oblic
obl:agent modificator de agent
obl:arg argument oblic
obl:lmod modificator locativ
obl:tmod modificator temporal
orfan orfan
parataxă parataxă
punct punctuaţie
reparandum disfluență depășită
rădăcină rădăcină
vocativ vocativ
xcomp complement clauzal deschis

Analiza dependențelor folosind NLTK

Analiza dependențelor poate fi efectuată folosind pachetul Natural Language Toolkit (NLTK), care este o colecție de biblioteci și coduri utilizate în procesarea statistică a limbajului natural (NLP) a limbajului uman.

Putem folosi NLTK pentru a realiza analiza dependenței prin una dintre următoarele metode:

  1. Analizator de dependență probabilistic, proiectiv : Acești analizatori folosesc cunoștințele despre limbajul uman obținute din propoziții analizate manual pentru a prezice propoziții noi. Se știe că fac greșeli și lucrează cu un set restrâns de date de antrenament.
  2. Parser Stanford : Acesta este un parser în limbaj natural implementat pe Java. Aveți nevoie de parserul Stanford CoreNLP pentru a efectua analizarea dependențelor. Analizatorul include mai multe limbi, inclusiv engleză, chineză, germană și arabă.

Iată cum puteți utiliza analizatorul:

din nltk.parse.stanford import StanfordDependencyParser

path_jar = 'path_to/stanford-parser-full-2014-08-27/stanford-parser.jar'

path_models_jar = 'path_to/stanford-parser-full-2014-08-27/stanford-parser-3.4.1-models.jar'

dep_parser = StanfordDependencyParser(

path_to_jar = path_jar, path_to_models_jar = path_models_jar

)

rezultat = dep_parser.raw_parse('Am împușcat un elefant în somn')

dependență = rezultat.next()

listă(dependență.triple())

Rezultatul programului de mai sus este după cum urmează:

[

((u'shot', u'VBD'), u'nsubj', (u'I', u'PRP')),

((u'shot', u'VBD'), u'dobj', (u'elephant', u'NN')),

((u'elephant', u'NN'), u'det', (u'an', u'DT')),

((u'shot', u'VBD'), u'prep', (u'in', u'IN')),

((u'in', u'IN'), u'pobj', (u'sleep', u'NN')),

((u'sleep', u'NN'), u'poss', (u'my', u'PRP$'))

]

Analiza circumscripției

Analiza circumscripției se bazează pe gramatici fără context. Aici, arborele de analiză include propoziții împărțite în sub-expresii, fiecare aparținând unei categorii gramaticale. Fiecare unitate lingvistică sau cuvânt dintr-o propoziție acționează ca un nod terminal, care are nodul său părinte și o etichetă de parte a vorbirii.

De exemplu, expresia „o pisică” și „o cutie sub pat” sunt sintagme substantive, în timp ce „scrie o scrisoare” și „condu o mașină” sunt expresii verbale.

Să luăm în considerare un exemplu de propoziție Am împușcat un elefant în pijama mea”. Iată o reprezentare grafică a arborelui de analiză a circumscripției:

Sursă

Arborele de analiză din stânga se referă la împușcarea unui elefant purtând pijama, iar arborele de analiză din dreapta indică subiectul care împușcă un elefant în pijama.

Întreaga propoziție este împărțită în subfaze până când ne rămân cuvinte terminale. VP denotă o frază verbală și NP denotă fraze nominale.

Analiza dependenței vs Analiza circumscripției

Analiza circumscripției poate fi, de asemenea, implementată folosind parserul Stanford. În esență, analizează o propoziție dată conform analizorului de circumscripție și, ulterior, convertește arborele de analiză a circumscripției într-un arbore de dependență.

Dacă scopul tău este de a împărți o propoziție în sub-fraze, ar trebui să implementezi analizarea circumscripției. Cu toate acestea, dacă doriți să explorați dependențele dintre cuvintele dintr-o propoziție, ar trebui să utilizați analiza dependențelor.

Checkout: Idei și subiecte de proiecte NLP

Concluzie

Dacă ați găsit acest articol util, ar trebui să consultați certificarea PG de 6 luni de la upGrad în învățare automată și NLP , care oferă mentorat personalizat din partea experților din industrie ai Flipkart, Gramener și Zee5.

Programul este conceput pentru ingineri, software/IT, date și alți profesioniști care doresc să pună un punct în știința datelor și învățarea automată. Această certificare postuniversitară de la IIIT BBangalorethe se mândrește cu o creștere a salariului mediu de 58% este tot ce aveți nevoie pentru a obține poziții avansate de Data Analyst, Data Scientist, ML Engineer și NLP Engineer în companii de top. Blocați-vă locul astăzi la doar Rs. 3.034 pe lună!

La ce folosește analiza dependenței în NLP?

În procesarea limbajului natural, analiza dependenței este o tehnică folosită pentru a identifica relațiile semantice dintre cuvintele dintr-o propoziție. Analizatorii de dependență sunt utilizați pentru a mapa cuvintele dintr-o propoziție la roluri semantice, identificând astfel relațiile sintactice dintre cuvinte. Analiza dependenței este o abordare binecunoscută pentru analiza sintactică a textelor în limbaj natural la nivelul structurii de suprafață. În această metodă, structura sintactică a unei propoziții este recuperată dintr-o succesiune liniară de jetoane de cuvinte, prin analiza dependențelor sintactice dintre cuvinte și identificarea categoriei sintactice a fiecărui cuvânt.

Care sunt aplicațiile de analiză a dependențelor?

Iată o listă cu mai multe domenii de aplicație în care este utilizată analiza dependențelor. Una dintre utilizările majore ale analizei dependențelor este în etichetarea rolului semantic (SRL) și extragerea informațiilor, care sunt componente ale procesării limbajului natural. Analiza dependenței este, de asemenea, utilizată pentru fragmentarea sintactică și analizarea circumscripțiilor în afara sarcinilor NLP. Analiza dependenței este fundamental diferită de analiza structurii frazei, care mapează cuvintele dintr-o propoziție la marcatorul de frază sau structura arborescentă corespunzător.

Care este diferența de bază dintre analiza sintactică și analiza dependenței?

Diferența dintre analizatorul sintactic și analizatorul de dependență este că, un parser de dependență construiește un arbore de analiză, iar un analizator sintactic construiește un arbore de sintaxă. Analiza sintactică implică utilizarea unor reguli predefinite pentru a defini sintaxa și un parser de dependență, pe de altă parte, poate înțelege tot felul de fraze și, de asemenea, poate face față intrărilor ambigue. Un parser de dependență poate fi folosit pentru recunoașterea frazelor, fragmentarea, analiza dependenței, fragmentarea și analizarea.