es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

TypeError: add() toma exactamente 2 argumentos posicionales (se han proporcionado 3)

¿Por qué estoy obteniendo este error? ¿Alguien puede decirme, por favor, o explicarme cómo usarlo con un ejemplo simple?

TypeError                                 Traceback (most recent call last)
/tmp/ipykernel<em>33/3577035061.py in <module>
      6 # Objeto de la clase Matcher
      7 matcher = Matcher(nlp.vocab)
----> 8 matcher.add("matching</em>1", None, pattern)
      9 
     10 matches = matcher(doc)
/opt/conda/lib/python3.7/site-packages/spacy/matcher/matcher.pyx in spacy.matcher.matcher.Matcher.add()
TypeError: add() toma exactamente 2 argumentos posicionales (3 dados)

En el siguiente enlace: https://spacy.io/api/matcher

Imagen

En el siguiente enlace: https://i.stack.imgur.com/P0BRd.png

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que se llamó al método add() de la clase Matcher con tres argumentos posicionales, mientras que este espera solo dos.

    Para agregar un patrón al matcher, el método add() debe ser llamado con los siguientes argumentos:

    • label: una cadena de texto utilizada para identificar el patrón.
    • on_match (opcional): una función de devolución de llamada que se ejecuta cuando se encuentra el patrón.
    • pattern: una lista de diccionarios que representan el patrón a buscar.

    Aquí hay un ejemplo de cómo utilizar la clase Matcher con un patrón simple:

    import spacy
    from spacy.matcher import Matcher
    
    nlp = spacy.load("en_core_web_sm")
    
    doc = nlp("El zorro marrón rápido salta sobre el perro perezoso")
    
    # crear un objeto Matcher
    matcher = Matcher(nlp.vocab)
    
    # definir un patrón a buscar
    pattern = [{"LOWER": "zorro"}]
    
    # agregar el patrón al matcher
    matcher.add("patron_zorro", None, pattern)
    
    # buscar todas las coincidencias en el documento
    matches = matcher(doc)
    
    # imprimir las partes coincidentes
    for match_id, start, end in matches:
        parte_coincidente = doc[start:end]
        print(parte_coincidente.text)
    

    En este ejemplo, el atributo LOWER se utiliza para buscar la palabra “zorro” en minúscula. El método add() se llama con la etiqueta “patron_zorro”, ninguna función de devolución de llamada (por eso None), y la lista de patrones. Finalmente, el objeto matches es una secuencia de tuplas, donde cada tupla contiene el ID de la coincidencia, el índice inicial y el índice final de la parte coincidente.

Comments are closed.