ComenzarEmpieza gratis

PhraseMatcher en spaCy

Al procesar texto no estructurado, a menudo tienes listas y diccionarios largos que quieres escanear y hacer coincidir en textos dados. Los patrones de Matcher se crean manualmente y cada token debe codificarse individualmente. Si tienes una lista larga de expresiones, Matcher deja de ser la mejor opción. En ese caso, la clase PhraseMatcher nos ayuda a hacer coincidir diccionarios extensos. En este ejercicio, practicarás cómo recuperar patrones con formas coincidentes para varios términos usando la clase PhraseMatcher.

El modelo en_core_web_sm ya está cargado y listo para que lo uses como nlp. La clase PhraseMatcher está importada. Tienes disponible una cadena text y una lista de terms.

Este ejercicio forma parte del curso

Procesamiento del Lenguaje Natural con spaCy

Ver curso

Instrucciones del ejercicio

  • Inicializa una clase PhraseMatcher con un attr para hacer coincidir la forma de los terms dados.
  • Crea patterns para añadir al objeto PhraseMatcher.
  • Encuentra coincidencias para los patrones dados e imprime los índices de tokens de inicio y fin y la sección coincidente del text dado.

Ejercicio interactivo práctico

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

text = "There are only a few acceptable IP addresse: (1) 127.100.0.1, (2) 123.4.1.0."
terms = ["110.0.0.0", "101.243.0.0"]

# Initialize a PhraseMatcher class to match to shapes of given terms
matcher = ____(nlp.____, attr = ____)

# Create patterns to add to the PhraseMatcher object
patterns = [nlp.make_doc(____) for term in terms]
matcher.____("IPAddresses", patterns)

# Find matches to the given patterns and print start and end characters and matches texts
doc = ____
matches = ____
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Editar y ejecutar código