Analyse des dépendances dans le NLP [expliqué avec des exemples]

Publié: 2021-03-10

Le traitement automatique du langage naturel est un concept interdisciplinaire qui s'appuie sur les principes fondamentaux de la linguistique informatique et de l'intelligence artificielle pour comprendre comment les langages humains interagissent avec la technologie.

La PNL nécessite une compréhension approfondie de diverses terminologies et concepts pour les appliquer concrètement à des scénarios du monde réel. Certains de ces concepts de base incluent le balisage de la partie de la parole (POS), la modélisation statistique du langage, l'analyse syntaxique, sémantique et des sentiments, la normalisation, la tokenisation, l'analyse des dépendances et l'analyse des circonscriptions, entre autres.

Dans cet article, nous examinerons les principes fondamentaux de l'analyse des dépendances pour avoir une idée de la façon dont elle est implémentée dans le NLP.

Table des matières

Analyse des dépendances

L'analyse des dépendances (DP) consiste à examiner les dépendances entre les mots d'une phrase pour analyser sa structure grammaticale. Sur cette base, une phrase est divisée en plusieurs éléments. Le mécanisme est basé sur le concept qu'il existe un lien direct entre chaque unité linguistique d'une phrase. Ces liens sont appelés dépendances.

Prenons par exemple la phrase « Je préfère le vol du matin via Denver ».

Le diagramme ci-dessous explique la structure de dépendance de la phrase :

La source

Les relations entre chaque unité linguistique, ou mot, de la phrase, sont indiquées à l'aide d'arcs dirigés dans une structure de dépendance typée. Comme indiqué dans le diagramme, la racine de l'arbre "préférer" forme la tête de la phrase ci-dessus.

La relation entre deux mots est marquée par une balise de dépendance. Par exemple, le mot "vol" modifie le sens du nom "Denver". Par conséquent, vous pouvez remarquer une dépendance de vol -> Denver où le vol est le chef et Denver est l'enfant ou la personne à charge. Il est noté nmod qui représente un modificateur nominal.

Cela constitue le cas de la dépendance entre tous les deux mots où l'un agit comme la tête et l'autre est la personne à charge. Actuellement, la taxonomie Universal Dependency V2 se compose de 37 relations syntaxiques universelles comme spécifié dans le tableau ci-dessous :

Balise de dépendance La description
ACL modificateur clausal d'un nom (clause adnominale)
acl:relcl modificateur de clause relative
advcl modificateur de clause adverbiale
advmod modificateur adverbial
advmod:emph mot accentué, intensificateur
advmod:lmod modificateur adverbial locatif
amod modificateur d'adjectif
Appos modificateur d'apposition
aux auxiliaire
aux: passe auxiliaire passif
Cas cas-marquage
cc conjonction de coordination
cc:preconj préconjoint
ccomp complément clausal
clf classificateur
composé composé
composé:lvc construction du verbe léger
composé:prt particule de verbe à particule
composé : redup composés redoublés
composé : svc composés de verbes en série
conj conjoint
flic copule
csubj sujet clausal
csubj : passer sujet passif clausal
dép dépendance non spécifiée
dét déterminant
dét:numgov quantificateur pronominal régissant la casse du nom
det:nummod quantificateur pronominal s'accordant en cas avec le nom
dét:poss déterminant possessif
discours élément de discours
disloqué éléments disloqués
expl explétif
expl: impers juron impersonnel
expl: passe pronom réfléchi utilisé dans le passif réflexif
expl:pv clitique réflexif avec un verbe intrinsèquement réflexif
fixé expression multimot fixe
appartement expression multimot plate
plat : étranger mots étrangers
plat:nom des noms
va avec va avec
jobj objet indirect
liste liste
marque marqueur
nmod modificateur nominal
nmod:poss modificateur nominal possessif
nmod:tmod modificateur temporel
nsubj sujet nominal
nsubj : passer sujet nominal passif
nummod modificateur numérique
nummod:gov modificateur numérique régissant la casse du nom
obj objet
obl oblique nominal
obl :agent agent modificateur
obl:arg argument oblique
obl:lmod modificateur locatif
obl:tmod modificateur temporel
orphelin orphelin
parataxe parataxe
pointer ponctuation
réparation disfluence outrepassée
racine racine
vocatif vocatif
xcomp complément de clause ouvert

Analyse des dépendances à l'aide de NLTK

L'analyse des dépendances peut être effectuée à l'aide du package Natural Language Toolkit (NLTK), qui est une collection de bibliothèques et de codes utilisés dans le traitement statistique du langage naturel (NLP) du langage humain.

Nous pouvons utiliser NLTK pour réaliser l'analyse des dépendances via l'une des méthodes suivantes :

  1. Analyseur de dépendance probabiliste et projectif : ces analyseurs utilisent la connaissance du langage humain glanée à partir de phrases analysées à la main pour prédire de nouvelles phrases. Ils sont connus pour faire des erreurs et travailler avec un ensemble restreint de données de formation.
  2. Analyseur Stanford : Il s'agit d'un analyseur de langage naturel implémenté sur Java. Vous avez besoin de l'analyseur Stanford CoreNLP pour effectuer l'analyse des dépendances. L'analyseur comprend plusieurs langues, dont l'anglais, le chinois, l'allemand et l'arabe.

Voici comment vous pouvez utiliser l'analyseur :

de nltk.parse.stanford importer StanfordDependencyParser

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

path_models_jar = 'chemin_vers/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

)

result = dep_parser.raw_parse('J'ai abattu un éléphant dans mon sommeil')

dependency = result.next()

liste (dépendance.triples())

La sortie du programme ci-dessus est la suivante :

[

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

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

((u'éléphant', 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'dormir', u'NN')),

((tu dors', u'NN'), u'poss', (u'mon', u'PRP$'))

]

Analyse de circonscription

L'analyse de circonscription est basée sur des grammaires sans contexte. Ici, l'arbre d'analyse comprend des phrases divisées en sous-phrases, chacune appartenant à une catégorie de grammaire. Chaque unité linguistique ou mot dans une phrase agit comme un nœud terminal, qui a son nœud parent et une étiquette de partie du discours.

Par exemple, les phrases « un chat » et « une boîte sous le lit » sont des phrases nominales, tandis que « écrire une lettre » et « conduire une voiture » ​​sont des phrases verbales.

Considérons une phrase d'exemple " J'ai abattu un éléphant dans mon pyjama. " Voici une représentation graphique de l'arbre d'analyse de circonscription :

La source

L'arbre d'analyse sur la gauche fait référence à la prise de vue d'un éléphant en pyjama et l'arbre d'analyse sur la droite indique le sujet qui tire sur un éléphant en pyjama.

La phrase entière est divisée en sous-phases jusqu'à ce qu'il reste des mots terminaux. VP désigne une phrase verbale et NP désigne des phrases nominales.

Analyse de dépendance vs analyse de circonscription

L'analyse de circonscription peut également être implémentée à l'aide de l'analyseur de Stanford. Il analyse essentiellement une phrase donnée selon l'analyseur de circonscription et convertit ensuite l'arbre d'analyse de circonscription en un arbre de dépendance.

Si votre objectif est de diviser une phrase en sous-phrases, vous devez implémenter l'analyse de circonscription. Cependant, si vous souhaitez explorer les dépendances entre les mots d'une phrase, vous devez utiliser l'analyse des dépendances.

Checkout : Idées et sujets de projets PNL

Conclusion

Si vous avez trouvé cet article utile, vous devriez consulter la certification PG de 6 mois d'upGrad en apprentissage automatique et PNL qui offre un mentorat personnalisé par des experts de l'industrie de Flipkart, Gramener et Zee5.

Le programme est conçu pour les ingénieurs, les logiciels / l'informatique, les données et les autres professionnels qui souhaitent se lancer dans la science des données et l'apprentissage automatique. Cette certification post-universitaire de l'IIIT BBangalorethe bénéficie d'une augmentation de salaire moyenne de 58%, c'est tout ce dont vous avez besoin pour décrocher des postes avancés d'analyste de données, de scientifique de données, d'ingénieur ML et d'ingénieur NLP dans les meilleures entreprises. Bloquez votre siège aujourd'hui à seulement Rs. 3 034 par mois !

À quoi sert l'analyse des dépendances en NLP ?

Dans le traitement du langage naturel, l'analyse des dépendances est une technique utilisée pour identifier les relations sémantiques entre les mots d'une phrase. Les analyseurs de dépendance sont utilisés pour mapper les mots d'une phrase à des rôles sémantiques, identifiant ainsi les relations syntaxiques entre les mots. L'analyse des dépendances est une approche bien connue pour l'analyse syntaxique des textes en langage naturel au niveau de la structure de surface. Dans cette méthode, la structure syntaxique d'une phrase est récupérée à partir d'une séquence linéaire de jetons de mots, en analysant les dépendances syntaxiques entre les mots et en identifiant la catégorie syntaxique de chaque mot.

Quelles sont les applications de l'analyse des dépendances ?

Voici une liste de plusieurs domaines d'application où l'analyse des dépendances est utilisée. L'une des principales utilisations de l'analyse des dépendances est l'étiquetage sémantique des rôles (SRL) et l'extraction d'informations, qui sont des composants du traitement du langage naturel. L'analyse de dépendance est également utilisée pour la segmentation syntaxique et l'analyse de circonscription en dehors des tâches NLP. L'analyse des dépendances est fondamentalement différente de l'analyse de la structure de la phrase, qui associe les mots d'une phrase au marqueur de phrase ou à la structure arborescente correspondante.

Quelle est la différence fondamentale entre l'analyse syntaxique et l'analyse des dépendances ?

La différence entre l'analyseur syntaxique et l'analyseur de dépendances est qu'un analyseur de dépendances construit un arbre d'analyse et un analyseur syntaxique construit un arbre de syntaxe. L'analyse syntaxique implique l'utilisation de règles prédéfinies pour définir la syntaxe et un analyseur de dépendances, d'autre part, peut comprendre toutes sortes de phrases et peut également traiter des entrées ambiguës. Un analyseur de dépendances peut être utilisé pour la reconnaissance de phrases, la segmentation, l'analyse des dépendances, la segmentation et l'analyse.