Coincidencia de frases eficiente
A veces es más eficiente hacer coincidir cadenas exactas en lugar de escribir patrones que describan los tokens individuales. Esto es especialmente cierto para categorías finitas de elementos, como todos los países del mundo.
Ya tenemos una lista de países, así que usémosla como base para nuestro script de extracción de información. Hay una lista de nombres en forma de cadena disponible en la variable COUNTRIES. El objeto nlp y un doc de prueba ya se han creado y se ha impreso doc.text en la consola.
Este ejercicio forma parte del curso
NLP avanzado con spaCy
Instrucciones del ejercicio
- Importa
PhraseMatchere inicialízalo con elvocabcompartido como la variablematcher. - Añade los patrones de frases y llama al matcher sobre el
doc.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Import the PhraseMatcher and initialize it
from spacy.____ import ____
matcher = ____(____)
# Create pattern Doc objects and add them to the matcher
# This is the faster version of: [nlp(country) for country in COUNTRIES]
patterns = list(nlp.pipe(COUNTRIES))
matcher.add('COUNTRY', None, *patterns)
# Call the matcher on the test document and print the result
matches = ____(____)
print([doc[start:end] for match_id, start, end in matches])