Dependency Parser ou comment trouver les vrais voisins de votre mot

Cet article passe en revue la théorie afin de démystifier cette partie insuffisamment connue du NLP.

DANS CET ARTICLE

Prêt à extraire l'or de vos données ?

Cet article passe en revue la théorie afin de démystifier cette partie insuffisamment connue du NLP. Ensuite, dans un second article, nous vous proposerons des outils pour vous aider à comprendre comment implémenter facilement un Dependency Parser.

Quand on pense aux voisins d'un mot, on peut penser au voisinage comme leur emplacement dans une phrase, leur relation avec d'autres mots (sujet, déterminant, etc.), appelé syntaxe, ou comme leur similarité de sens, appelé sémantique. Ce qui nous intéresse ici, c'est le voisinage syntaxique.

Vocabulaire

D'abord, définissons un peu de vocabulaire pour que ce soit plus clair pour tout le monde.

  • La sémantique est le domaine linguistique et philosophique qui étudie le sens et l'interprétation. Elle s'appuie beaucoup sur les liens entre les mots pour comprendre la phrase, et elle analyse les changements de sens. En programmation, la sémantique est le résultat attendu d'un programme.
  • La syntaxe est le domaine linguistique de la grammaire. La syntaxe est le domaine linguistique de la grammaire. C'est l'étude des règles qui régissent la structure des mots dans les phrases. En programmation aussi, les erreurs de syntaxe conduisent souvent à des bogues, car les règles sont souvent beaucoup plus strictes que dans le langage oral.

Qu’est-ce qu’un dependency parser ?

Un dependency parser ou analyseur en dépendances souligne les relations de dépendance dans une phrase (qui est le sujet, qui est l’objet…). C’est un outil de linguistique informatique construit sur un ensemble de règles spécifiques à la langue analysée. Un dependency parser peut aussi être construit à partir d’un modèle de machine learning qui prend un corpus étiqueté manuellement et en dérive les règles grammaticales.

Example of Dependency Tree : "What is a parser ? "
Exemple d'arbre de dépendance : "Qu'est-ce qu'un parser ? "

Qu’est-ce que ça fait ? Comment ça marche ?

Le parser organise les éléments d’une phrase en fonction de leur importance syntaxique et sémantique, et des liens qui existent entre eux.

En Traitement Automatique du Langage (TALN/TAL ou NLP en anglais), le dependency parser fait apparaître la structure grammaticale de chaque phrase. L’objectif est de mieux définir les relations entre les mots “de tête” (comme les sujets et les objets) et ceux qui les modifient (les adjectifs, les adverbes, etc).

Une analyse en dépendances n’est possible qu’après une analyse complète appliquée sur chaque mot d’un énoncé. La mise en lumière des liens entre les mots est la dernière brique d’analyse syntaxique du texte. Une fois celle-ci effectuée, le logiciel pourra passer à l’analyse sémantique.

Un parser doit :

  • isoler les liens de hiérarchie d’une phrase grâce à sa structure grammaticale
  • faire émerger les liens de dépendance syntaxique entre les mots

UN PEU DE CULTURE GEEK

Auparavant, l’analyse en dépendances s’effectuait en “chunks” (en morceaux) pour chaque élément d’une phrase. C’est ce qu’on appelle le shallow parsing ou analyse sémantique superficielle. Cette approche, fondée sur des expressions régulières (regex), prenait en compte des informations contextuelles mais était parfois limitée par des tournures de phrases inattendues et / ou par la complexité morphosyntaxique du français.

Exemple :

Dans la phrase " Paul prend une glace au café… ", le café fait-il référence au lieu qui sert la glace, ou bien à son parfum ?

Ce type de subtilité est difficile à surmonter. C’est là qu’interviennent les architectures neuronales (deep learning). A partir d’un apprentissage profond, ces méthodes de machine learning offrent une grande diversité de traitement d’informations. Grâce à l’architecture neuronale qui lie de nombreuses connaissances entre elles, on parvient à décortiquer les syntagmes et à connecter les informations contextuelles avec justesse.

Cette technique repose sur une détection de motifs (patterns). Qu’on doive analyser des expressions figées, semi-figées ou des collocations, les patterns seront reconnus pour peu qu’ils soient suffisamment présents dans la langue.

Le dependency parser fait un travail de vectorisation des mots (word embedding) : chaque mot peut être représenté dans une équation ou un graphe en rapport avec d’autres mots. Par exemple, boulanger - homme + femme = boulangère.

Ça marche comment et avec quoi ? Après et avant quoi ?

Dernière étape du traitement morphosyntaxique, le parser permet de lier lexique, morphologie (tokenisation) et syntaxe (pos-tagging et lemmatisation). En rendant explicites les relations qui lient les différents termes de la phrase, le parser complète le tableau grammatical et détermine les éléments les plus importants pour la compréhension du message.

Exemple :

Dans la phrase "J’ai un chien, il s’appelle Médor”, Lettria identifie correctement l’apposition : "il" est bien un sujet de la 2ème proposition, mais fait référence à l’objet de la première, c'est-à-dire le chien.

À retenir

Un parser effectue un travail de hiérarchisation. Il met en évidence les relations de dépendance qui existent au sein d’une phrase, en séparant les éléments de tête des modifieurs. Chez Lettria, le parser est adapté aux besoins du français, alliant tags issus de bases de connaissances sûres et apprentissages fondés sur un machine learning rigoureux.

Callout

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.
This is some text inside of a div block.

Continuer à lire

Voir tous les articles ->
Créez votre pipeline NLP gratuitement
Démarrez ->