Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

547
Views
¿Cuál es la forma ideal de incluir diccionarios (nomenclátor) en spaCy para mejorar NER?

Actualmente estoy trabajando para reemplazar un sistema basado en la extracción de entidades nltk combinada con la coincidencia de expresiones regulares donde tengo varios diccionarios de entidades con nombre. Las entidades del diccionario son tanto de tipo común (PERSONA (empleados), etc.) como de tipos personalizados (por ejemplo, HABILIDAD). Quiero usar el modelo spaCy preentrenado e incluir mis diccionarios de alguna manera para aumentar la precisión de NER. Aquí están mis pensamientos sobre los posibles métodos:

  • ¿Usar la API Matcher de spaCy, iterar a través del diccionario y agregar cada frase con una devolución de llamada para agregar la entidad?

  • Acabo de encontrar la búsqueda espacial, que parece una manera fácil de proporcionar largas listas de palabras/frases para hacer coincidir.

  • Pero, ¿y si quiero tener coincidencias parciales? ¿Hay alguna manera de agregar directamente al Vocab y, por lo tanto, tener una coincidencia aproximada a través de vectores de palabras de filtro Bloom / n-gram, o hay alguna extensión que se adapte a esta necesidad? De lo contrario, supongo que podría copiar la búsqueda espacial y reemplazar la maquinaria de flashtext con otra cosa, por ejemplo, la distancia de Levenshtein.

  • Mientras jugaba con spaCy, intenté simplemente entrenar el NER directamente con una sola palabra del diccionario (sin ningún contexto de oración), y esto "funcionó". Pero, por supuesto, tendría que tener mucho cuidado para evitar que la modelo se olvidara de todo.

Se agradece cualquier ayuda, siento que esto debe ser un requisito bastante común y me encantaría saber qué funciona mejor para las personas.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Recomendaría mirar la regla de entidad de spaCy. Si convierte su diccionario existente en el esquema de coincidencia, puede agregar reglas para cada una de sus entidades y nuevos tipos.

Esto es bastante poderoso porque puede combinarlo con el NER estadístico existente disponible en un modelo espacial estándar para lograr algunas de las "coincidencias aproximadas" que menciona. De los documentos:

La regla de entidades está diseñada para integrarse con los modelos estadísticos existentes de spaCy y mejorar el reconocedor de entidades con nombre. Si se agrega antes del componente "ner", el reconocedor de entidades respetará los intervalos de entidades existentes y ajustará sus predicciones a su alrededor. Esto puede mejorar significativamente la precisión en algunos casos. Si se agrega después del componente "ner", la regla de entidad solo agregará tramos a los documentos si no se superponen con las entidades existentes previstas por el modelo. Para sobrescribir entidades superpuestas, puede establecer overwrite_ents=True en la inicialización.

over 4 years ago · Santiago Trujillo Report

0

Uso Matcher con devoluciones de llamadas generadas dinámicamente. Creo que funciona bien.

Sentí curiosidad por saber por qué Matcher no es compatible con la coincidencia aproximada y encontré este comentario del autor de spacy sobre un problema cerrado.

Realmente desea precalcular los conjuntos de búsqueda, en lugar de hacerlo sobre la marcha en el comparador. Una vez que haya calculado previamente los valores de similitud, puede usar atributos de extensión y una comparación >= en el Matcher para realizar la búsqueda. Creo que este es un caso en el que los detalles de implementación son muy importantes, y una API que los oculta sería realmente un perjuicio.

Creo que este es un buen punto, y te dice cómo construir lo que quieres.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!