Doccano: Solicitud de función: salida a nivel de token

Creado en 3 oct. 2019  ·  4Comentarios  ·  Fuente: doccano/doccano

Descripción de la característica

doccano actualmente solo genera anotaciones a nivel de carácter. Sin embargo, algunos flujos de trabajo utilizados para NLP requieren entrada como listas de palabras y listas de etiquetas de tokens:

Sample sentence: 
['Two', ',', 'Samsung', 'based', ',', 'electronic', 'cash', 'registers', 'were', 'reconstructed', 'in', 'order', 'to', 'expand', 'their', 'functions', 'and', 'adapt', 'them', 'for', 'networking', '.']

Sample sentence labels: 
['O', 'O', 'I-ORG', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O']

Se hace referencia en un número anterior (# 7) que esto se hizo así debido al hecho de que algunos idiomas no están separados por espacios. Creo que sería bueno tener la opción y los usuarios que anotan idiomas separados por espacios pueden usarla para ingresar sin problemas a su flujo de trabajo.

Ejemplo tomado de: https://github.com/microsoft/nlp/blob/master/examples/named_entity_recognition/ner_wikigold_bert.ipynb

feature request

Comentario más útil

Tengo un plan para crear un nuevo paquete de Python llamado doccano-transformer .
Transformará documentos anotados en otros formatos como https://github.com/chakki-works/doccano/issues/362 , https://github.com/chakki-works/doccano/issues/454 y así sucesivamente. Por lo tanto, la salida del nivel de token debe incluirse en doccano-transformer .

Todos 4 comentarios

¡Hola! Escribí algo similar para mí y me encantaría contribuir con PR :) sin embargo, no estoy seguro de cómo manejar los tokens mal etiquetados. Es decir, ¿qué pasa si un token se marcó solo parcialmente? Para mis propios fines, imprimo el token mal etiquetado, que es una advertencia para el usuario de un script, y elimino la anotación del token, pero en una producción, esto no es un camino a seguir.

Las otras cosas son, ¿qué debería ser un token de "no entidad"? 'O' ? Entonces deberíamos evitar que el usuario agregue dicha etiqueta que podría ser engañosa para algunas personas. ¿O tal vez deberíamos crear el formulario donde el propio usuario pueda proporcionar el token? ¿O dejarlo en blanco?

Creo que esta solicitud de función es excelente, pero deberíamos acordar cómo abordar exactamente esto: sonrisa: me encantaría leer sus sugerencias

Tengo un plan para crear un nuevo paquete de Python llamado doccano-transformer .
Transformará documentos anotados en otros formatos como https://github.com/chakki-works/doccano/issues/362 , https://github.com/chakki-works/doccano/issues/454 y así sucesivamente. Por lo tanto, la salida del nivel de token debe incluirse en doccano-transformer .

¿Alguna actualización sobre esto? Me gustaría importar un conjunto de datos simplemente como .txt (en el que cada línea es una oración):

George Washington went to Washington.
Sam Houston stayed home.

... y expórtelo (después de anotar) de la siguiente manera, también en un .txt:

George B-PER
Washington I-PER
went O
to O
Washington B-LOC

Sam B-PER
Houston I-PER
stayed O
home O

En otras palabras, exporte en el conocido formato de anotación IOB. Entonces, para esto, Doccano debe saber automáticamente que si una entidad anotada comprende más de 1 token, debe anotarse con las etiquetas B (comienzo) e I (adentro). Además, existen esquemas de anotación más sofisticados además de IOB, como BIOES. Aquí, S (single) se usa para representar un fragmento que contiene un solo token. El esquema de anotaciones BIOES daría como resultado lo siguiente:

George B-PER
Washington E-PER
went O
to O
Washington S-LOC

Sam B-PER
Houston E-PER
stayed O
home O

Sería increíble si pudiera exportar conjuntos de datos anotados en los formatos IOB o BIOES (u otros). Muchas bibliotecas de última generación para NER requieren anotaciones a nivel de token para entrenar modelos (Flair de Zalando, Transformers de HuggingFace, ...).

Lanzamos doccano-transformer . Es compatible con la transformación de datos. Actualmente, las tareas admitidas se denominan reconocimiento de entidades y los formatos admitidos son CoNLL2003 y spaCy.

Tenemos un plan para ampliar tareas y formatos.
Por favor espérenlo.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

callmeashish picture callmeashish  ·  3Comentarios

zhangxieyang2 picture zhangxieyang2  ·  4Comentarios

attenton picture attenton  ·  3Comentarios

aribornstein picture aribornstein  ·  3Comentarios

rebby123 picture rebby123  ·  3Comentarios