ComenzarEmpieza gratis

RegEx con EntityRuler en spaCy

Las expresiones regulares, o RegEx, se usan para la extracción de información basada en reglas con patrones complejos de coincidencia de cadenas. RegEx permite buscar patrones o reemplazar coincidencias en una cadena por otros patrones. En este ejercicio, practicarás el uso de EntityRuler en spaCy para encontrar direcciones de correo electrónico en un text dado.

El paquete spaCy ya está importado para que lo uses. Puedes usar \d para hacer coincidir patrones de cadena que representan un metacarácter que coincide con cualquier dígito del 0 al 9.

Un patrón de spaCy puede usar REGEX como atributo. En este caso, un patrón tendrá la forma [{"TEXT": {"REGEX": "<a given pattern>"}}].

Este ejercicio forma parte del curso

Procesamiento del Lenguaje Natural con spaCy

Ver curso

Instrucciones del ejercicio

  • Define un patrón para hacer coincidir números de teléfono con el formato 8888888888 para usarlo con EntityRuler.
  • Carga un modelo en blanco de inglés de spaCy y añade un componente EntityRuler a la canalización.
  • Añade el patrón compilado al componente EntityRuler.
  • Ejecuta el modelo e imprime la tupla de texto y tipo de entidades para el text dado.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

text = "Our phone number is 4251234567."

# Define a pattern to match phone numbers
patterns = [{"label": "PHONE_NUMBERS", "pattern": [{"TEXT": {"REGEX": "(____){____}"}}]}]

# Load a blank model and add an EntityRuler
nlp = spacy.____("en")
ruler = nlp.____("entity_ruler")

# Add the compiled patterns to the EntityRuler
ruler.____(patterns)

# Print the tuple of entities texts and types for the given text
doc = ____(____)
print([(ent.____, ent.____) for ent in doc.____])
Editar y ejecutar código