Caractéristiques linguistiques

Traitement du langage naturel avec spaCy

Azadeh Mobasher

Principal Data Scientist

Étiquetage POS

  • Les étiquettes de POS dépendent du contexte, des mots voisins et de leurs étiquettes
import spacy
nlp = spacy.load("en_core_web_sm")
text = "My cat will fish for a fish tomorrrow in a fishy way."
print([(token.text, token.pos_, spacy.explain(token.pos_)) 
        for token in nlp(text)])

Exemple d'étiquetage POS

Traitement du langage naturel avec spaCy

Quelle est l'importance des POS ?

 

  • Meilleure précision pour de nombreuses tâches de TAL

 

I will fish tomorrow.

I ate fish.

 

  • Cas d'usage en traduction

 

verb -> pescaré

noun -> pescado
Traitement du langage naturel avec spaCy

Quelle est l'importance des POS ?

 

  • La désambiguïsation lexicale (WSD) consiste à décider dans quel sens un mot est employé dans une phrase.
  • Déterminer le sens peut être crucial en traduction automatique, etc.

Exemple de WSD

Traitement du langage naturel avec spaCy

Désambiguïsation lexicale

import spacy
nlp = spacy.load("en_core_web_sm")

verb_text = "I will fish tomorrow."
noun_text = "I ate fish."


print([(token.text, token.pos_) for token in nlp(verb_text) if "fish" in token.text], "\n") print([(token.text, token.pos_) for token in nlp(noun_text) if "fish" in token.text])
[('fish', 'VERB', 'verb')] 
[('fish', 'NOUN', 'noun')]
Traitement du langage naturel avec spaCy

Analyse en dépendances

  • Explore la syntaxe d'une phrase
  • Liens entre deux tokens
  • Produit un arbre

Exemple d'analyse en dépendances

Traitement du langage naturel avec spaCy

Analyse en dépendances et spaCy

 

  • Le label de dépendance décrit le type de relation syntaxique entre deux tokens

 

Dependency label Description
nsubj Sujet nominal
root Racine
det Déterminant
dobj COD
aux Auxiliaire
Traitement du langage naturel avec spaCy

Analyse en dépendances et displaCy

  • displaCy peut tracer des arbres de dépendance
doc = nlp("We understand the differences.")

spacy.displacy.serve(doc, style="dep")

Exemple d'analyse en dépendances avec displaCy

Traitement du langage naturel avec spaCy

Analyse en dépendances et spaCy

  • L'attribut .dep_ donne le label de dépendance d'un token

 

doc = nlp("We understand the differences.")
print([(token.text, token.dep_, spacy.explain(token.dep_)) for token in doc])
[('We', 'nsubj', 'nominal subject'), ('understand', 'ROOT', 'root'),
('the', 'det', 'determiner'), ('differences', 'dobj', 'direct object'),
('.', 'punct', 'punctuation')]
Traitement du langage naturel avec spaCy

Passons à la pratique !

Traitement du langage naturel avec spaCy

Preparing Video For Download...