CommencezCommencez gratuitement

Faire correspondre un seul terme dans spaCy

Les patrons RegEx ne sont pas simples à lire, écrire et déboguer. Mais vous n'êtes pas démuni : spaCy offre une solution lisible et prête pour la production, la classe Matcher. La classe Matcher peut faire correspondre des règles prédéfinies à une séquence de jetons dans un objet Doc donné. Dans cet exercice, vous pratiquerez l'utilisation de Matcher pour trouver un seul mot.

Vous pouvez accéder au texte correspondant dans example_text et utiliser nlp et doc pour accéder respectivement à un modèle spaCy et au conteneur Doc de example_text.

Cette activité fait partie du cours

Traitement du langage naturel avec spaCy

Voir le cours

Instructions de l’exercice

  • Initialisez une classe Matcher.
  • Définissez un patron pour repérer witch en minuscules dans example_text.
  • Ajoutez les patrons à la classe Matcher et trouvez les correspondances.
  • Parcourez les correspondances et affichez les indices de jetons de début et de fin ainsi que l'étendue (span) du texte correspondant.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

nlp = spacy.load("en_core_web_sm")
doc = nlp(example_text)

# Initialize a Matcher object
matcher = Matcher(nlp.____)

# Define a pattern to match lower cased word witch
pattern = [{"lower" : ____}]

# Add the pattern to matcher object and find matches
matcher.add("CustomMatcher", [____])
matches = matcher(____)

# Print start and end token indices and span of the matched text
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Modifier et exécuter le code