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:
- ¿Cuál es el significado de este salto de entidad (cómo puede ser None el span)?
- ¿Es esto un problema grave?
- ¿Cómo puede afectar al rendimiento y cómo podemos superarlo?
- 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“`
davy.ai
Respuestas: