L'objectif de cette partie est de lister un ensemble de critères à prendre en compte pour le choix d'un logiciel d'annotation. De nombreux logiciels d'annotation sont disponibles (certains sont open source, d'autres sont payants). Certains critères seront plus ou moins déterminants en fonction des spécificités de chaque projet.
Dans certains cas, les besoins en termes d'annotation peuvent être très spécifiques et il peut être bénéfique de développer un logiciel d'annotation "sur mesure" (ce qui suppose d'avoir les ressources pour un tel développement, qui nécessite un développeur et un designer).
Lorsque le logiciel a une communauté d'utilisateurs et de développeurs actifs, de nouvelles fonctionnalités ou des améliorations sont susceptibles d'être développées. Un autre avantage des logiciels open source est qu'ils sont gratuits.
En particulier, le caractère open source pourra permettre d'avoir :
Des contributions actives au code source
Une communauté d'utilisateurs importante (cela aura pour avantage de pouvoir en général bénéficier d'aide à la résolution de bugs, en postant des issues par exemple)
Les logiciels d'annotation n'offrent pas tous les mêmes fonctionnalités. Il est important de choisir un logiciel qui soit adapté aux types de tâches définies par votre schéma d'annotation. Parmi les types d'annotation, on trouve :
Classification de document (attribuer un label à chaque document)
Sequence to sequence (NER, POS Tagging, extraction d'information ): attribuer un label à un sous-ensemble de mots du documents
Relations : fonction qui permet deux entités annotées entre elles (les liens peuvent dirigés ou non)
Question-Réponse
Parsing syntaxique (ex : Treebank, voir l'article et pour une application en français voir The French Question Bank )
L'UX est également un aspect important. Parmi les critères de l'expérience utilisateur, on compte :
La sélection des segments
La facilité à sélectionner parmi différents tags
La gestion de tags multiples
Les raccourcis claviers pour les différents tags
La facilité à corriger un tag erroné
La facilité à corriger la longueur du segment sélectionné
La lisibilité du texte et des annotations
La gestion des textes longs
Les formats d'entrées et de sorties permis par le logiciel font partie des critères à prendre en compte, en particulier pour permettre une interopérabilité entre différents logiciels. Parmi les formats standards de données textuelles annotées, on compte :
CONLL
xml / html
JSON
Lorsque plusieurs annotateurs contribuent au projet, il est particulièrement recommandé d'utiliser un logiciel qui propose une interface de gestion de projet afin que le chef de projet puisse suivre l'avancement du projet et contrôler et corriger les annotations des différents annotateurs.
L'aspect collaboratif
Les différents rôles: administrateur/manager, curateur, annotateur
Le suivi de l'avancée des différentes tâches
La facilité d'attribuer les documents aux différents annotateurs
Le suivi de la qualité
Correction des annotations par le chef de projet
Résolution des conflits (lorsqu'un même document est annoté par plusieurs annotateurs avec des divergences)
Le crowdsourcing : le fait de pouvoir collecter des annotations d'un public très large (exemple de la plateforme d'annotation PIAF)
Certains logiciels d'annotation incluent des modules de suggestions d'annotations (à l'aide de modèle d'apprentissage automatique notamment) ou permettent d'implémenter des règles de pré-annotation déterministes.
Les fonctionnalités à rechercher dans ce domaines peuvent être :
La suggestion de tags par des modèles entraînés directement dans la plateforme
La possibilité d'intégrer votre propre modèle de pré-annotation
La facilité d'installation du logiciel d'annotation est également un critère à prendre en compte et le choix optimal dépendra des compétences disponibles dans votre équipe (certains logiciels open source nécessitent des compétences en développement informatique pour l'installation), de vos ressources informatiques (serveur disponible) de la sensibilité de vos données.
Saas ou on premise : un logiciel SaaS (Software as a Service) est directement utilisable en ligne alors qu'un logiciel on premise aura son architecture hébergée sur votre propre serveur
Docker ou non : Docker permet de faciliter le déploiement du logiciel sur un serveur
Docker est un logiciel libre permettant de lancer des applications dans des conteneurs logiciels. Il permet ainsi de faciliter le déploiement d'une application sur un serveur.
Les solutions Saas présentent l'avantage de ne nécessiter ni serveur ni installation. Si les données à annoter sont sensibles, il faudra cependant s'assurer que les modalités de stockage des données sur la solution en ligne sont conformes aux exigences de sécurité et de protection des données.