Caractéristiques linguistiques

Traitement du langage naturel avec spaCy

Azadeh Mobasher

Principal Data Scientist

Étiquetage POS

  • Les étiquettes 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

Pourquoi les POS sont‑elles importantes ?

 

  • 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

Pourquoi les POS sont‑elles importantes ?

 

  • La désambiguïsation lexicale (WSD) consiste à décider dans quel sens un mot est utilisé 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 jetons
  • Produit un arbre

Exemple d'analyse en dépendances

Traitement du langage naturel avec spaCy

Analyse en dépendances et spaCy

 

  • L'étiquette de dépendance décrit le type de relation syntaxique entre deux jetons

 

Étiquette de dépendance Description
nsubj Sujet nominal
root Racine
det Déterminant
dobj Complément d'objet direct
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

  • Attribut .dep_ pour accéder à l'étiquette de dépendance d'un jeton

 

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...