Appariement avec la syntaxe étendue dans spaCy
L’extraction d’informations basée sur des règles est essentielle dans toute pipeline NLP. La classe Matcher permet de créer des motifs 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 entraîner 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 via l’appel à doc. Un modèle spaCy préchargé est également accessible via nlp.
Cet exercice fait partie du cours
Traitement du langage naturel avec spaCy
Instructions
- Définissez un objet matcher en utilisant
Matcheretnlp. - Utilisez l’opérateur
INpour définir un motif qui correspond àtiny squaresettiny mouthful. - Utilisez ce motif pour trouver des 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 cet exemple de code.
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)