CommencerCommencer gratuitement

Faire correspondre un terme unique dans spaCy

Les motifs RegEx ne sont pas simples à lire, écrire ni déboguer. Mais vous n’êtes pas démuni : spaCy propose une alternative 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 conteneur Doc donné. Dans cet exercice, vous allez vous entraîner à utiliser 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.

Cet exercice fait partie du cours

Traitement du langage naturel avec spaCy

Afficher le cours

Instructions

  • Initialisez une classe Matcher.
  • Définissez un motif pour faire correspondre witch en minuscules dans example_text.
  • Ajoutez les motifs à la classe Matcher et cherchez les correspondances.
  • Itérez sur 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 cet exemple de code.

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