CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Définissez un objet matcher en utilisant Matcher et nlp.
  • Utilisez l’opérateur IN pour définir un motif qui correspond à tiny squares et tiny 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)
Modifier et exécuter le code