Doccano: Demande de fonctionnalité : sortie au niveau du jeton

Créé le 3 oct. 2019  ·  4Commentaires  ·  Source: doccano/doccano

Description de fonctionnalité

doccano ne produit actuellement que des annotations au niveau des caractères. Cependant, certains flux de travail utilisés pour la PNL nécessitent une entrée sous forme de listes de mots et de listes d'étiquettes de jetons :

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']

Il est mentionné dans un numéro précédent (#7) que cela a été fait comme ceci en raison du fait que certaines langues ne sont pas séparées par des espaces. Je pense qu'il serait bon d'avoir l'option et les utilisateurs qui annotent des langues séparées par des espaces peuvent l'utiliser pour une entrée transparente dans leur flux de travail.

Exemple tiré de : https://github.com/microsoft/nlp/blob/master/examples/named_entity_recognition/ner_wikigold_bert.ipynb

feature request

Commentaire le plus utile

J'ai l'intention de créer un nouveau package Python nommé doccano-transformer .
Il transformera les documents annotés dans d'autres formats tels que https://github.com/chakki-works/doccano/issues/362 , https://github.com/chakki-works/doccano/issues/454 et ainsi de suite. Ainsi, la sortie au niveau du jeton doit être incluse dans doccano-transformer .

Tous les 4 commentaires

Salut! J'ai écrit quelque chose de similaire pour moi-même et j'adorerais contribuer aux relations publiques :) cependant, je ne sais pas comment gérer les jetons mal étiquetés. À savoir, et si un jeton n'était marqué que partiellement ? Pour mes propres besoins, j'imprime le jeton mal étiqueté, qui est un avertissement pour l'utilisateur d'un script, et supprime l'annotation du jeton, mais dans une production, ce n'est pas une voie à suivre.

L'autre chose est, que devrait être le jeton « non-entité » ? 'O' ? Ensuite, nous devrions empêcher l'utilisateur d'ajouter une telle étiquette qui pourrait être trompeuse pour certaines personnes. Ou peut-être devrions-nous créer le formulaire où l'utilisateur lui-même peut fournir le jeton ? Ou le laisser vide ?

Je pense que cette demande de fonctionnalité est excellente, mais nous devrions nous mettre d'accord sur la manière exacte d'aborder cela :sourire: J'aimerais lire vos suggestions

J'ai l'intention de créer un nouveau package Python nommé doccano-transformer .
Il transformera les documents annotés dans d'autres formats tels que https://github.com/chakki-works/doccano/issues/362 , https://github.com/chakki-works/doccano/issues/454 et ainsi de suite. Ainsi, la sortie au niveau du jeton doit être incluse dans doccano-transformer .

Des mises à jour à ce sujet ? J'aimerais importer un ensemble de données simplement au format .txt (dans lequel chaque ligne est une phrase) :

George Washington went to Washington.
Sam Houston stayed home.

... et exportez-le (après avoir annoté) comme suit, également dans 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 d'autres termes, exportez dans le format d'annotation IOB bien connu. Donc, pour cela, Doccano doit savoir automatiquement que si une entité annotée comprend plus d'un jeton, il doit être annoté avec les étiquettes B (début) et I (intérieur). En outre, il existe des schémas d'annotation plus sophistiqués en plus de l'IOB, tels que BIOES. Ici, S (single) est utilisé pour représenter un morceau contenant un seul jeton. Le schéma d'annotation BIOES donnerait les résultats suivants :

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

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

Ce serait génial si je pouvais exporter des ensembles de données annotés aux formats IOB ou BIOES (ou autres). De nombreuses bibliothèques de pointe pour NER nécessitent une annotation au niveau du jeton afin de former des modèles (Flair de Zalando, Transformers de HuggingFace,...).

Nous avons sorti doccano-transformer . Il prend en charge la transformation des données. Actuellement, les tâches prises en charge sont nommées reconnaissance d'entité et les formats pris en charge sont CoNLL2003 et spaCy.

Nous avons un plan pour étendre les tâches et les formats.
S'il vous plaît attendez-le avec impatience.

Cette page vous a été utile?
0 / 5 - 0 notes