Hacer match de un término único en spaCy
Los patrones de RegEx no son triviales de leer, escribir ni depurar. Pero no estás perdido: spaCy ofrece una alternativa legible y de nivel producción, la clase Matcher. La clase Matcher puede hacer match de reglas predefinidas con una secuencia de tokens en un contenedor Doc dado. En este ejercicio practicarás el uso de Matcher para encontrar una sola palabra.
Puedes acceder al texto correspondiente en example_text y usar nlp y doc para acceder, respectivamente, a un modelo de spaCy y al contenedor Doc de example_text.
Este ejercicio forma parte del curso
Procesamiento del Lenguaje Natural con spaCy
Instrucciones del ejercicio
- Inicializa una clase
Matcher. - Define un patrón para que haga match con
witchen minúsculas enexample_text. - Añade los patrones a la clase
Matchery encuentra los matches. - Itera por los matches e imprime los índices de tokens de inicio y fin y el span del texto que hizo match.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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)