Analisi delle dipendenze in NLP [spiegato con esempi]

Pubblicato: 2021-03-10

L'elaborazione del linguaggio naturale è un concetto interdisciplinare che prende i fondamenti della linguistica computazionale e dell'intelligenza artificiale per capire come le lingue umane interagiscono con la tecnologia.

La PNL richiede una comprensione approfondita di varie terminologie e concetti per applicarli in modo tangibile agli scenari del mondo reale. Alcuni di questi concetti di base includono il tagging della parte del discorso (POS), la modellazione del linguaggio statistico, l'analisi sintattica, semantica e del sentimento, la normalizzazione, la tokenizzazione, l'analisi delle dipendenze e l'analisi del collegio elettorale, tra gli altri.

In questo articolo, esamineremo i fondamenti dell'analisi delle dipendenze per ottenere una prospettiva su come viene implementata nella PNL.

Sommario

Analisi delle dipendenze

Dependency Parsing (DP) si riferisce all'esame delle dipendenze tra le parole di una frase per analizzarne la struttura grammaticale. Sulla base di ciò, una frase è suddivisa in più componenti. Il meccanismo si basa sul concetto che esiste un legame diretto tra ogni unità linguistica di una frase. Questi collegamenti sono chiamati dipendenze.

Prendiamo ad esempio la frase " Preferisco il volo mattutino attraverso Denver".

Il diagramma seguente spiega la struttura delle dipendenze della frase:

Fonte

Le relazioni tra ogni unità linguistica, o parola, della frase, sono indicate utilizzando archi diretti in una struttura di dipendenza tipizzata. Come indicato nel diagramma, la radice dell'albero "preferire" costituisce la testa della frase sopra.

La relazione tra due parole qualsiasi è contrassegnata da un tag di dipendenza. Ad esempio, la parola "volo" modifica il significato del sostantivo "Denver". Pertanto, puoi notare una dipendenza da volo -> Denver dove il volo è la testa e Denver è il bambino o dipendente. È indicato da nmod che rappresenta un modificatore nominale.

Questo costituisce il caso di dipendenza tra ogni due parole in cui una funge da testa e l'altra è dipendente. Attualmente, la tassonomia della dipendenza universale V2 è composta da 37 relazioni sintattiche universali come specificato nella tabella seguente:

Etichetta di dipendenza Descrizione
acl modificatore di clausola di un sostantivo (clausola adnominale)
acl:recl modificatore di clausola relativa
avv modificatore di proposizione avverbiale
advmod modificatore avverbiale
advmod: emph sottolineando la parola, intensificatore
advmod: lmod modificatore avverbiale locativo
amo modificatore aggettivale
app modificatore apposizioni
aus ausiliario
aus: passa ausiliario passivo
Astuccio marcatura del caso
cc congiunzione coordinativa
cc:precong precongiunto
ccomp complemento a clausole
cfr classificatore
composto composto
composto:lvc costruzione del verbo leggero
composto:prt particella del verbo frasale
composto: redup composti duplicati
composto:svc composti di verbi seriali
cong congiunto
poliziotto copula
csgg soggetto clausole
csubj: passa soggetto passivo clausole
dip dipendenza non specificata
det determinante
det:numgov quantificatore pronominale che regola il caso del sostantivo
det:nummod quantificatore pronominale che concorda nel caso con il sostantivo
det:poss determinante possessivo
discorso elemento del discorso
dislocato elementi dislocati
espl imprecazione
espl: impers imprecazione impersonale
espl:passato pronome riflessivo usato nel passivo riflessivo
es: pv clitico riflessivo con un verbo intrinsecamente riflessivo
fisso espressione multiparola fissa
piatto espressione multiparola piatta
piatto: estero parole straniere
appartamento: nome nomi
va con va con
iogg oggetto indiretto
elenco elenco
marchio marcatore
nmod modificatore nominale
nmod:poss modificatore nominale possessivo
nmod:tmod modificatore temporale
nsubj soggetto nominale
nsubj: passa soggetto nominale passivo
nummod modificatore numerico
nummod:gov modificatore numerico che regola il caso del sostantivo
ogg oggetto
obl nominale obliquo
obl: agente modificatore dell'agente
obl: arg argomento obliquo
obl: lmod modificatore locativo
obl: tmod modificatore temporale
orfano orfano
paratassi paratassi
punto punteggiatura
riparando disfluenza ignorata
radice radice
vocativo vocativo
xcomp complemento a clausole aperte

Analisi delle dipendenze tramite NLTK

L'analisi delle dipendenze può essere eseguita utilizzando il pacchetto Natural Language Toolkit (NLTK), che è una raccolta di librerie e codici utilizzati nell'elaborazione statistica del linguaggio naturale (NLP) del linguaggio umano.

Possiamo usare NLTK per ottenere l'analisi delle dipendenze attraverso uno dei seguenti metodi:

  1. Parser probabilistico di dipendenza proiettiva : questi parser utilizzano la conoscenza del linguaggio umano raccolta da frasi analizzate manualmente per prevedere nuove frasi. È noto che commettono errori e lavorano con un insieme limitato di dati di addestramento.
  2. Parser Stanford : questo è un parser in linguaggio naturale implementato su Java. È necessario il parser Stanford CoreNLP per eseguire l'analisi delle dipendenze. Il parser include diverse lingue tra cui inglese, cinese, tedesco e arabo.

Ecco come puoi usare il parser:

da nltk.parse.stanford importa StanfordDependencyParser

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

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

dep_parser = StanfordDependencyParser(

percorso_a_jar = percorso_jar, percorso_a_jar_modelli = percorso_jar_modelli

)

result = dep_parser.raw_parse('Ho sparato a un elefante nel sonno')

dipendenza = risultato.successivo()

lista(dipendenza.triple())

L'output del programma di cui sopra è il seguente:

[

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

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

((u'elefante', 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$'))

]

Analisi del collegio elettorale

L'analisi del collegio elettorale si basa su grammatiche prive di contesto. Qui, l'albero di analisi include frasi suddivise in sottofrasi, ciascuna appartenente a una categoria grammaticale. Ogni unità linguistica o parola in una frase agisce come un nodo terminale, che ha il suo nodo padre e un tag di parte del discorso.

Ad esempio, la frase "un gatto" e "una scatola sotto il letto" sono frasi nominali, mentre "scrivi una lettera" e "guida una macchina" sono frasi verbali.

Consideriamo una frase di esempio " Ho sparato a un elefante in pigiama". Ecco una rappresentazione grafica dell'albero di analisi del collegio elettorale:

Fonte

L'albero di analisi a sinistra si riferisce alla ripresa di un elefante in pigiama e l'albero di analisi a destra indica il soggetto che spara a un elefante mentre è in pigiama.

L'intera frase è suddivisa in sottofasi finché non rimangono parole terminali. VP denota una frase verbale e NP denota frasi nominali.

Analisi delle dipendenze vs analisi del collegio elettorale

L'analisi del collegio elettorale può essere implementata anche utilizzando il parser di Stanford. Analizza essenzialmente una determinata frase secondo il parser del collegio elettorale e successivamente converte l'albero di analisi del collegio in un albero delle dipendenze.

Se il tuo obiettivo è suddividere una frase in sottofrasi, dovresti implementare l'analisi del collegio elettorale. Tuttavia, se vuoi esplorare le dipendenze tra le parole in una frase, dovresti usare l'analisi delle dipendenze.

Checkout: idee e argomenti del progetto NLP

Conclusione

Se hai trovato utile questo articolo, dovresti dare un'occhiata alla certificazione PG di 6 mesi di upGrad in Machine Learning e NLP che offre tutoraggio personalizzato da esperti del settore di Flipkart, Gramener e Zee5.

Il programma è progettato per ingegneri, software/IT, dati e altri professionisti che desiderano prendere piede in Data Science e Machine Learning. Questa certificazione post-laurea di IIIT BBangalorethe vanta un aumento medio del salario del 58% è tutto ciò di cui hai bisogno per ottenere posizioni avanzate di analista dati, scienziato dati, ingegnere ML e ingegnere NLP nelle migliori aziende. Blocca il tuo posto oggi a soli Rs. 3.034 al mese!

Qual è l'uso dell'analisi delle dipendenze in NLP?

Nell'elaborazione del linguaggio naturale, l'analisi delle dipendenze è una tecnica utilizzata per identificare le relazioni semantiche tra le parole in una frase. I parser di dipendenza vengono utilizzati per mappare le parole in una frase ai ruoli semantici, identificando così le relazioni sintattiche tra le parole. L'analisi delle dipendenze è un approccio ben noto per l'analisi sintattica dei testi in linguaggio naturale a livello di struttura superficiale. In questo metodo, la struttura sintattica di una frase viene recuperata da una sequenza lineare di token di parola, analizzando le dipendenze sintattiche tra le parole e identificando la categoria sintattica di ciascuna parola.

Quali sono le applicazioni dell'analisi delle dipendenze?

Di seguito è riportato un elenco di diverse aree applicative in cui viene utilizzata l'analisi delle dipendenze. Uno degli usi principali dell'analisi delle dipendenze è nell'etichettatura semantica dei ruoli (SRL) e nell'estrazione di informazioni, che sono componenti dell'elaborazione del linguaggio naturale. L'analisi delle dipendenze viene utilizzata anche per il chunking sintattico e l'analisi dei collegi elettorali al di fuori delle attività NLP. L'analisi delle dipendenze è fondamentalmente diversa dall'analisi della struttura della frase, che mappa le parole in una frase al corrispondente marcatore di frase o struttura ad albero.

Qual è la differenza fondamentale tra l'analisi sintattica e l'analisi delle dipendenze?

La differenza tra parser sintattico e parser di dipendenza è che un parser di dipendenza crea un albero di analisi e un parser sintattico crea un albero di sintassi. L'analisi sintattica implica l'uso di regole predefinite per definire la sintassi e un parser di dipendenze, d'altra parte, può comprendere tutti i tipi di frasi e può anche gestire input ambigui. Un parser delle dipendenze può essere utilizzato per il riconoscimento di frasi, il chunking, l'analisi delle dipendenze, il chunking e l'analisi.