Archivage des données
L'archivage des données d'un point de vue technique comprend diverses phases de traitement, notamment :
Le processus de création de corpus linguistiques peut se faire au départ de multiples sources mais également sous divers formats.
Dans le cas des corpus écrits, l’extraction des données peut s’effectuer à partir de bases de données déjà existantes ou encore à partir de ressources disponibles sur Internet (e.g. https://www.english-corpora.org/). Le format des données extraites prendra préférablement la forme de fichiers .xml ou .txt. Il est important de noter qu’ une certaine cohérence au niveau du format de chaque fichier est exigée.
Dans le cas des données orales, certains corpus sont disponibles sur Internet mais en nombre beaucoup plus limité que dans le cas des corpus écrits (e.g. https://www.clarin.eu/resource-families/spoken-corpora). Il est ainsi préférable que les linguistes créent leurs propres corpus et qu’ils les annotent en fonction de leurs questions de recherche. En ce qui concerne la transcription et l’annotation des données, les linguistes analysant des données orales font habituellement usage de Praat (http://www.fon.hum.uva.nl/praat/) ou Exmaralda (https://exmaralda.org/en/partitur-editor-en/). Les données orales prennent généralement la forme de fichiers .txt si le contenu n’a pas été transcrit dans Praat ou Exmaralda, ou de fichiers .TextGrid dans le cas contraire.
Lors de la création d’un corpus de données orales, il est nécessaire de collecter des métadonnées liées aux enregistrements mais également aux locuteurs du corpus en question (pour plus d’informations, voir la page ‘Archivage des métadonnées’). La collecte de ces métadonnées peut prendre différentes formes :
-
Dans le cas où les linguistes décident de télécharger des données provenant de bases de données disponibles en ligne, celle-ci peut se faire via l’extraction de métadonnées provenant des sites sur lesquels ces données auraient été uploadées ;
-
Dans le cas où les linguistes décident de créer leur propre base de données, ceux-ci devront créer ces métadonnées en partant des fiches locuteur et enregistrement (voir lien) et les mettre sous format .txt ou .json.
L’encodage des données pose un problème particulier pour les langues naturelles. Notons cependant que cet encodage est rarement problématique pour des langues comme l’anglais qui sont considérées comme des langues alphabétiques et qui font donc usage de caractères ASCII. Pour d’autres langues qui utilisent des systèmes d’écriture différents (e.g. le chinois), l’encodage représente un problème majeur si l’on veut diffuser des données (surtout si le corpus est multilingue et contient plusieurs systèmes d’écriture).
Un problème touchant l’ensemble des langues naturelles est lié à la cohérence de l’encodage des caractères lorsque l’on souhaiter créer et diffuser des corpus. Si les données d’un corpus sont encodées avec des encodages différents, celles-ci ne pourront être affichées correctement par l’ordinateur.
L’utilisation d’Unicode permet cependant de résoudre certains de ces problèmes. En effet, Unicode permet d’afficher des caractères provenant de nombreux systèmes d’écriture. Un des formats d’Unicode particulièrement intéressant pour les linguistes étudiant les langues indo-européennes est ISO 8859-1 (aussi connu sous le nom de Latin-1). Celui-ci englobe les langues indo-européennes ‘occidentales’ (e.g. français, allemand, espagnol, italien ou encore les langues scandinaves).
Une autre considération à prendre en compte est l’identité de chaque caractère – également appelé Unicode Transformation Formats ou UTFs – et la façon par laquelle chaque valeur est représentée en bits lorsque le caractère est inséré dans un fichier. Le Standard Unicode nous fournit trois types d’UTFs : UTF-16, UTF-8 et UTF-32. En ce qui concerne la création de corpus dans des langues encodées en Latin-1, il est primordial que les données soient encodées en respectant le modèle UTF-8.
Dans le terminal sous Linux : ligne de commande ‘théorique’ pour la conversion en UTF-8 :
iconv options -f from-encoding -t to-encoding inputfile(s) -o outputfile
Exemple d’une ligne de commande ‘pratique’ :
iconv -f ISO-8859-1 -t UTF-8 input.tsv -o out.tsv
Autres type d’encodage fréquents dans les langues indo-européennes :
-
UNICODE
-
UTF-16BE
-
UTF-16LE
En ce qui concerne le traitement pur des données, une différence doit être faite entre les fichiers d’annotation qui sont au format .txt et les fichiers d’annotation qui sont déjà au format .TextGrid. Les trois phases suivantes ne concernent que les fichiers qui sont en .txt.
Plusieurs phases sont nécessaires au traitement des données de chaque fichier d’un corpus oral dans le cas où le fichier d’annotation se trouve être un fichier .txt :
-
Une phrase de pré-traitement : cette étape se fera au moyen du script perl pre_traitement.pl et a pour but de traiter les fichiers texte transcrits afin de les transformer pour qu’ils entrent correctement dans Jtrans. Marche à suivre :
-
Mettre l’ensemble des fichiers dans un dossier input ;
-
Créer un dossier avec les fichiers à insérer comme output ;
-
Ligne de commande : perl pre_traitement.pl <nom_dossier_input> <nom_dossier_output>
-
-
Une phase d’alignement texte/son via Jtrans : Jtrans va permettre d’aligner le texte du fichier .txt avec le son du fichier .wav. Marche à suivre :
-
Pour lancer Jtrans : aller dans le dossier où jtrans a été téléchargé (en général, le chemin pour aller vers le dossier sera jtrans/2/dist/jtrans
-
Ligne de commande pour lancer Jtrans : java -jar jtrans.jar
-
Pour insérer les fichiers texte et son : File > Open project et Load audio
-
Pour lancer l’alignement : cliquer sur Align au centre droit de l’écran
-
Pour exporter le résultat : Export alignement > textgrid (words only)
-
-
Une phase de post-traitement : cette phase se fera au moyen du script perl post_jtrans.pl et aura pour but de traiter le fichier de sortie de Jtrans afin de le transformer en TextGrid avec une tier pour chaque locuteur. Marche à suivre :
-
Mettre les sorties de Jtrans dans un dossier input ;
-
Créer un dossier dans lequel l’ensemble des fichiers output vont se trouver ;
-
Ligne de commande : perl post_jtrans.pl <nom_dossier_input> <nom_dossier_output>
-
La phase de traitement qui suit concerne l’ensemble des fichiers au format .TextGrid. Cette étape de tokenization aura pour but de découper chaque tour de parole énoncé en différentes séquences de mot afin de créer des fichiers .csv ou .tsv (de préférence) avec un token par ligne. Ces fichiers comprendront les colonnes suivantes :
-
Une colonne par token recherchable ;
-
Une colonne par token affichable ;
-
Le xmin de chaque token ;
-
Le xmax de chaque token ;
-
Le locuteur du token en question ;
-
Le nom du fichier ;
-
Le numéro du tour de parole.
Lorsque le traitement des données aura été effectué et que les métadonnées auront été extraites des bases de données et/ou formatées par les créateurs du corpus, il sera utile de faire une vérification du contenu entre les données brutes, les métadonnées et les fichiers son. Il est en effet recommandé de vérifier les informations suivantes :
-
Les métadonnées comprennent-elles l’ensemble des participants contenus dans l’enregistrement ?
-
Ces informations sont-elles complètes pour chaque locuteur et pour chaque enregistrement ?
-
Le texte transcrit comprend-il l’ensemble du contenu du fichier son ?
Une phase importante à effectuer après le traitement des données se situe au niveau de la lemmatisation et du POS-tagging de l’ensemble des données de chaque corpus. Cette étape supplémentaire du traitement permettra aux données d’être enrichies et comprendra les phases suivantes :
-
La lemmatisation : une forme de base (i.e. un lemme) est générée pour chaque token orthographique ;
-
Le POS-tagging : un part-of-speech tag est assigné à chaque token orthographique.
Ces deux phases sont en général effectuées grâce au logiciel TreeTagger (voir https://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/).
Dans le terminal, sous Ubuntu/Linux :
Se rendre dans le dossier où treetagger a été installé et taper la commande suivante :
sh tree-tagger-french <nom_dossier_input>/<nom_fichier_input>.tsv | tee / <nom_dossier_output>/<nom_fichier_output>.tsv
Cette phase ultime du traitement des données orales aura pour but d’insérer l’output du traitement effectué par treetagger aux fichiers .csv ou .tsv créés préalablement. Deux colonnes seront donc ajoutées à ces fichiers :
-
POS
-
lemme
Backup et archivage des données
Durant la procédure de collecte des données, il est important de réaliser des backups. Ces derniers peuvent se faire via l’utilisation de disques dur externes ou encore en mettant les données sur des serveurs protégés. Il est conseillé d’enregistrer les données dans des formats orientés préservation digitale (i.e. qui ne sont pas liés à des formats propriétaires comme ceux de programmes commerciaux comme les fichiers .docx de Microsoft Word) car ces derniers ne peuvent pas être gérés par la plupart des outils d’analyse de corpus. De plus, ces formats pourraient ne plus être supportés dans le futur, ce qui empêcheraient les utilisateurs d’accéder aux corpus en question.
Lorsque le corpus aura été finalisé, il faudra impérativement l’archiver. Une distinction doit ainsi être faite entre les backups et l’archivage des données. Les premiers font référence à des copies périodiques de fichiers, tandis que l’archivage suppose le transfert d’informations dans des dossiers séparés où elles seront stockées de manière permanente ou pour une durée déterminée au préalable. Il est donc important d’anticiper cette étape d’archivage et de contacter les personnes responsables.