ComenzarEmpieza gratis

Emparejamiento con sintaxis extendida en spaCy

La extracción de información basada en reglas es esencial en cualquier pipeline de NLP. La clase Matcher permite que los patrones sean más expresivos al incluir algunos operadores dentro de las llaves. Estos operadores sirven para comparaciones extendidas y se parecen a los operadores de Python in, not in y de comparación. En este ejercicio, practicarás la funcionalidad de emparejamiento de spaCy, Matcher, para encontrar coincidencias de términos dados en un texto de ejemplo.

La clase Matcher ya está importada desde la librería spacy.matcher. Usarás un contenedor Doc con un texto de ejemplo en este ejercicio llamándolo doc. También tienes disponible un modelo pre-cargado de spaCy en nlp.

Este ejercicio forma parte del curso

Procesamiento del Lenguaje Natural con spaCy

Ver curso

Instrucciones del ejercicio

  • Define un objeto matcher usando Matcher y nlp.
  • Usa el operador IN para definir un patrón que haga match con tiny squares y tiny mouthful.
  • Usa este patrón para buscar coincidencias en doc.
  • Imprime los índices de tokens de inicio y fin, y el tramo de texto de cada coincidencia.

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)

# Define a matcher object
matcher = Matcher(nlp.____)
# Define a pattern to match tiny squares and tiny mouthful
pattern = [{"lower": ____}, {"lower": {____: ["squares", "mouthful"]}}]

# Add the pattern to matcher object and find matches
matcher.____("CustomMatcher", [____])
matches = ____(____)

# Print out start and end token indices and the matched text span per match
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Editar y ejecutar código