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
Instructions de l’exercice
- Initialisez une classe
Matcher. - Définissez un patron pour repérer
witchen minuscules dansexample_text. - Ajoutez les patrons à la classe
Matcheret 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)