Logo Doccano

Annotation de jeux de données avec Doccano

Pour faire de l’apprentissage supervisé, l’on a besoin d’un jeu de données annoté (ou labelisé). C’est-à-dire une liste d’exemples qui contient des entrées et leurs sorties correspondantes. Cependant, dans la vraie vie, il est presque rare d’obtenir de la donnée brute déjà annotée. Prenons l’exemple d’un modèle d’analyse de sentiment sur des commentaires laissés par les cinéphiles sur Allociné. Supposons qu’on veuille entraîner un modèle qui détermine si un commentaire est plutôt positif ou plutôt négatif. Sachant que la donnée brute récupérable sur Allociné est juste une liste de commentaires, il va falloir d’une manière ou d’une autre annoter le jeu de données pour pouvoir entraîner notre modèle. Dans cet article, je vous propose de découvrir Doccano, un outil d’annotation de texte open source.

Qu’est-ce que Doccano ?

Doccano est un outil d’annotation de texte sous forme d’application web open source. Il est possible de télécharger le projet sur le repo Github ou l’image Docker via Docker Hub. Pour ceux qui ne sont pas familiers avec Docker faites un tour sur cet article. Doccano est un outil relativement facile à déployer et à prendre en main. Mais, que peut-on faire exactement avec cet outil ?

Fonctionnalités de Doccano

Doccano permet de transformer un jeu de données brut de textes en jeu de données labelisé. C’est-à-dire, faire correspondre chaque séquence (ligne du dataset brut) à une valeur de sortie. Cette valeur de sortie peut être une autre séquence, un label, un vecteur… Tout dépend de la tâche à laquelle l’on a à faire.

Types d’annotations

Doccano offre donc une interface graphique permettant de faire les différents types d’annotation suivants : 

  • Séquence à Séquence : Permet d’associer chaque séquence du jeu de données brut à une autre séquence. Ce genre d’annotations sont utiles pour les tâches de traduction par exemple.
  • Annotation de séquence : Permet d’associer des labels à différentes parties de la séquence d’entrée. Cela sert en général pour les tâches d’extraction d’entités.
  • Classification de texte : Permet d’associer un (ou plusieurs) labels à la séquence d’entrée. On l’utilise pour les tâches de classification de texte.
  • Audio à séquence : Ce type d’annotations est un tout petit peu différent des précédents vu qu’il prend en entrée des fichiers audios. Il permet d’associer un son à une séquence de texte.

Les types de profils et rôles

Doccano permet de faire de l’annotation en équipe. Chaque membre de l’équipe à certain type de profil qui lui donne droit à un certain type d’actions.

  • Admin : Il s’agit de l’administrateur de la plateforme. Il a le droit de créer des utilisateurs, leur assigner des rôles, créer des projets, uploader des jeux de données à annoter, créer des labels, visualiser les statistiques d’annotation des autres utilisateurs, annoter, approuver des annotations et télécharger les jeux de données après annotation.
  • Approver : Il a le droit d’approuver les annotations et également d’annoter.
  • Annotator : Ne peut qu’annoter et n’a pas accès aux annotations des autres utilisateurs.

Pour commencer une annotation, l’Admin doit créer un projet et lui associer des annotators/approvers. Et à la fin de l’annotation, le jeu de données téléchargé contiendra toutes les annotations (celle de tous les utilisateurs qui ont annoté dans le projet). Il peut donc être indispensable de faire une confrontation des éventuelles annotations divergentes afin d’avoir un jeu de données final cohérent.

Exemple d’annotation avec Doccano

Déploiement

Pour l’exemple, je « run » l’image Docker en local sur mon Linux. Si vous êtes intéressé par un déploiement à plus grande échelle, il existe des liens de « déploiement en un clic » sur le repo Github de Doccano.

# Téléchargement de l'image
docker pull doccano/doccano
# Lancement du conteneur
docker run -d -p 8000:8000 \
              -e ALLOW_SIGNUP=False \
              -e ADMIN_USERNAME=admin  \
              -e ADMIN_PASSWORD=admin \
              -e ADMIN_EMAIL=admin@nothing.com \
              --name doccano \
               doccano/doccano;

On va à localhost:8000 dans notre navigateur et :

Page d'accueil Doccano

Création de projet

La première connexion se fait en mode administrateur avec les identifiants passés comme variables d’environnement lors du déploiement (admin/admin dans mon cas).

On crée un mini jeu de données de 5 lignes. Chaque ligne est un avis sur un film. On veut identifier les avis positifs et négatifs. On a affaire ici à une tâche de classification. Je vous laisse découvrir l’annotation en image.

Tuto rapide d'annotation avec Doccano

Conclusion

Dans cet article nous sommes allés à la découverte de Doccano : un outil open source et simple d’utilisation permettant de labéliser des jeux de données pour des tâches NLP. Il existe un bon nombre d’outils de labelisation de texte de ce genre mais Doccano a l’avantage d’être gratuit, facilement modifiable (si vous voulez y ajouter des fonctionnalités) et simple à prendre en main.

J’espère que cet article vous aura plu. N’hésitez pas à réagir en commentaires.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.