Notions de base de spaCy

Traitement du langage naturel avec spaCy

Azadeh Mobasher

Principal Data Scientist

Pipeline NLP de spaCy

import spacy

nlp = spacy.load("en_core_web_sm")
doc = nlp("Here's my spaCy pipeline.")
  • Importer spaCy
  • Utiliser spacy.load() pour obtenir nlp, une classe Language
    • L'objet Language est le pipeline de traitement du texte
  • Appliquer nlp() à tout texte pour obtenir un conteneur Doc
Traitement du langage naturel avec spaCy

Pipeline NLP de spaCy

 

spaCy applique des étapes de traitement via sa classe Language :

Pipeline « Language » de spaCy

Traitement du langage naturel avec spaCy

Objets conteneurs dans spaCy

  • Plusieurs structures de données représentent le texte dans spaCy :

 

Name Description
Doc Conteneur donnant accès aux annotations linguistiques
Span Tranche d'un objet Doc
Token Un jeton individuel : mot, ponctuation, espace, etc.
Traitement du langage naturel avec spaCy

Composants du pipeline

  • Le pipeline de traitement de langue spaCy dépend toujours du modèle chargé et de ses capacités.

 

Component Name Description
Tokenizer Tokenizer Segmenter le texte en jetons et créer l'objet Doc
Tagger Tagger Attribuer les étiquettes de parties du discours
Lemmatizer Lemmatizer Réduire les mots à leur forme de base
EntityRecognizer NER Détecter et annoter les entités nommées
Traitement du langage naturel avec spaCy

Composants du pipeline

 

  • Chaque composant a des fonctions propres pour traiter le texte

    • Language
    • DependencyParser
    • Sentencizer
Traitement du langage naturel avec spaCy

Tokenisation

  • Toujours la première opération
  • Toutes les autres opérations exigent des jetons
  • Les jetons peuvent être des mots, des nombres et de la ponctuation
import spacy
nlp = spacy.load("en_core_web_sm")

doc = nlp("Tokenization splits a sentence into its tokens.")

print([token.text for token in doc])
['Tokenization', 'splits', 'a', 'sentence', 'into', 'its', 'tokens', '.']
Traitement du langage naturel avec spaCy

Segmentation en phrases

  • Plus complexe que la tokenisation
  • Fait partie du composant DependencyParser
import spacy
nlp = spacy.load("en_core_web_sm")

text = "We are learning NLP. This course introduces spaCy."
doc = nlp(text)

for sent in doc.sents: print(sent.text)
We are learning NLP.
This course introduces spaCy.
Traitement du langage naturel avec spaCy

Lemmatisation

  • Un lemme est la forme de base d'un jeton
  • Le lemme de eats et ate est eat
  • Améliore la précision des modèles linguistiques
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("We are seeing her after one year.")

print([(token.text, token.lemma_) for token in doc])
[('We', 'we'), ('are', 'be'), ('seeing', 'see'), ('her', 'she'), 
('after', 'after'), ('one', 'one'), ('year', 'year'), ('.', '.')]
Traitement du langage naturel avec spaCy

Passons à la pratique !

Traitement du langage naturel avec spaCy

Preparing Video For Download...