CommencezCommencez gratuitement

Appariement avec la syntaxe étendue dans spaCy

L'extraction d'information basée sur des règles est essentielle dans toute chaîne de traitement NLP. La classe Matcher permet de définir des gabarits plus expressifs en autorisant certains opérateurs à l'intérieur des accolades. Ces opérateurs servent à des comparaisons étendues et ressemblent aux opérateurs Python in, not in et aux opérateurs de comparaison. Dans cet exercice, vous allez vous exercer avec la fonctionnalité d'appariement de spaCy, Matcher, pour trouver des correspondances pour des termes donnés dans un texte d'exemple.

La classe Matcher est déjà importée depuis la bibliothèque spacy.matcher. Vous utiliserez un conteneur Doc d'un texte d'exemple dans cet exercice en appelant doc. Un modèle spaCy préchargé est aussi accessible via nlp.

Cette activité fait partie du cours

Traitement du langage naturel avec spaCy

Voir le cours

Instructions de l’exercice

  • Définissez un objet d'appariement en utilisant Matcher et nlp.
  • Utilisez l'opérateur IN pour définir un gabarit qui fasse correspondre tiny squares et tiny mouthful.
  • Utilisez ce gabarit pour trouver les correspondances dans doc.
  • Affichez les indices de jetons de début et de fin ainsi que la portion de texte des correspondances.

Exercice interactif pratique

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

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

# Define a matcher object
matcher = Matcher(nlp.____)
# Define a pattern to match tiny squares and tiny mouthful
pattern = [{"lower": ____}, {"lower": {____: ["squares", "mouthful"]}}]

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

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