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.

Spacy: procesamiento del lenguaje natural (NLP) sobre tokens para anotar un archivo IOB

Tengo un archivo que está anotado en formato IOB. Ahora he agregado cada token de la columna uno a una lista de oraciones, de manera que cada oración sea una lista de tokens. Luego itero sobre la lista de tokens mientras itero sobre la lista de oraciones. El código:

with open('/content/drive/MyDrive/Spacy/Test/annotated_tuebadz_spacy.tsv', 'w+', encoding='utf-8') as tsvfile:
    wrt = csv.writer(tsvfile, delimiter='\t')
    nlp = spacy.load("/content/drive/MyDrive/Spacy/model/model-best")

    for sent in sent_list:
        for token in sent:
            doc = nlp(token)
            if doc[0].ent_iob_ == "O":
                label = doc[0].ent_iob_ + doc[0].ent_type_
            else:
                label = doc[0].ent_iob_ + "-" + doc[0].ent_type_
            print(doc.text, label)
            wrt.writerow((doc.text, label))

donde sent_list es la lista de oraciones tokenizadas, donde cada oración consiste en tokens. [[ "I", "am", "a", "robot", "."], ["How", "are", "you", "?"]]. Quiero comparar manualmente las anotaciones de oro en el script original, por lo que quiero mantener el estilo de tokenización.

Ahora, mi pregunta: los resultados son mucho más bajos que las puntuaciones al usar el script de evaluación de SpaCy (que no anotaría el archivo en sí). ¿Es el problema que no utiliza información de contexto? ¿Cómo puedo mejorar el script? ¿Tienen alguna sugerencia? También se apreciarían otras estrategias.

¡Gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Podría haber múltiples razones para las puntuaciones más bajas en comparación con el script de evaluación de Spacy. Una posible razón podría ser que el script de evaluación tiene en cuenta la información de contexto al realizar predicciones, mientras que su script solo considera un token a la vez.

    Para mejorar el script, podría considerar utilizar el análisis de dependencias para incluir información de contexto. Por ejemplo, podría extraer las dependencias de cada oración y utilizarlas para hacer predicciones más informadas. Además, también podría considerar utilizar algoritmos de aprendizaje automático como CRF (Campos Aleatorios Condicionales), que se utilizan comúnmente para tareas de etiquetado de secuencias como el Reconocimiento de Entidades Nombradas.

    Además, es esencial asegurarse de que las anotaciones en dorado en el script original sean de alta calidad para obtener puntuaciones de evaluación precisas. Podría considerar el uso de herramientas de anotación como Prodigy para asegurarse de que las anotaciones en dorado cumplan con los estándares de calidad.

    En general, mejorar el script requeriría experimentar con diferentes estrategias y ajustar hiperparámetros para obtener mejores resultados.

Comments are closed.