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.

Creación de archivos binarios Spacy Doc para NER

Estoy intentando crear un objeto binario de documentos para el NER personalizado. Tengo alrededor de 100 etiquetados para entrenamiento (solo como comienzo).

Estoy recibiendo un mensaje de salto de entidad durante la creación.

Mi duda es:

  1. ¿Cuál es el significado de este salto de entidad (cómo puede ser None el span)?
  2. ¿Es esto un problema grave?
  3. ¿Cómo puede afectar al rendimiento y cómo podemos superarlo?
  4. Si disponemos de un total de 100 datos, ¿qué proporción podemos tomar para fines de entrenamiento y evaluación?

Código:
“`import pandas as pd
import os
from tqdm import tqdm
import spacy
from spacy.tokens import DocBin
nlp = spacy.blank("en") # cargamos un nuevo modelo spacy

db = DocBin() # creamos un objeto DocBin

for text, annot in tqdm(train_data): # datos en formato anterior
doc = nlp.make_doc(text) # creamos un objeto doc a partir del texto
ents = []
for start, end, label in annot["entities"]: # agregamos índices de caracteres
span = doc.char_span(start, end, label=label, alignment_mode="contract")
if span is None:
print("Skipping entity")
else:
ents.append(span)
doc.ents = ents # etiquetamos el texto con los ents
db.add(doc)

db.to_disk("./train.spacy") # guardamos el objeto docbin“`

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Respuestas:

    1. El mensaje de saltar entidad significa que la anotación de entidad no se pudo agregar al documento porque el rango de caracteres no coincide con el texto. Esto puede suceder cuando los índices de caracteres proporcionados en los datos de anotación no coinciden con el texto real del documento. Esto resulta en un valor None para el rango de entidad.
    2. Si bien no es un problema grave, significa que los datos de entrenamiento no están completos y algunas entidades pueden no ser reconocidas durante el entrenamiento.
    3. Esto puede afectar el rendimiento porque cualquier entidad que se salte en los datos de entrenamiento no se reconocerá durante el proceso de entrenamiento. Para superar esto, es importante revisar cuidadosamente los datos de anotación para asegurarse de que los índices de caracteres coincidan con el texto real y corregir cualquier error o discrepancia.
    4. Una relación común para el entrenamiento y la evaluación es del 80/20, lo que significa que el 80% de los datos se utiliza para el entrenamiento y el 20% se reserva para la evaluación. Sin embargo, la relación real puede depender de la tarea específica y los datos disponibles, por lo que es importante experimentar con diferentes relaciones para determinar qué funciona mejor para un caso particular.

Comments are closed.