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
Instructions
- Initialisez une classe
Matcher. - Définissez un motif pour faire correspondre
witchen minuscules dansexample_text. - Ajoutez les motifs à la classe
Matcheret 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)