Constitution du corpus

Il m’a fallu constituer deux corpus :

  1. le corpus de référence, constitué de l’ensemble des documents appartenant à la discipline « sciences de l’information et de la communication » dans la plateforme Isidore ;
  2. le corpus cible ou de comparaison, constitué de l’ensemble des documents traitant du sujet « éditorialisation » dans la plateforme Isidore (appartenant généralement à la même discipline).

J’ai donc exécuté une première requête paginée (script getArticlesList.bash) auprès d’Isidore pour chacun de ces deux corpus afin d’obtenir la liste des documents. J’ai constitué une liste d’identifiants uniques (correspondant à l’URI de chaque document sur Isidore), grâce à la réponse XML.

$ head uris.txt

# Extrait de la liste des identifiants uniques des documents
# Le fichier uris.txt a été constitué grâce à une requête
# paginée auprès d’Isidore.
10670/1.blw380
10670/1.604dgi
10670/1.2gkn1u
10670/1.4i3ccv
10670/1.m9r634
10670/1.zapuaq
10670/1.rawgup
10670/1.4ftz9a
10670/1.1mywom
10670/1.322s1i
...

En constituant ainsi une liste d’identifiants, je suis ensuite en mesure de requêter Isidore pour obtenir la réponse détaillée de chacun des documents au format XML, dont je pourrai ensuite extraire les métadonnées utiles à la segmentation de mon corpus. En transformant la liste des identifiants URIs en liste d’URLs, j’ai pu obtenir l’ensemble des fichiers XML correspondant aux documents indexés par Isidore, grâce à une simple commande wget.

# La commande wget peut lire une liste d’URLs
# dans un fichier texte.
wget -i urls.txt \
  --limit-rate=200k \
  --directory-prefix=corpus \
  --adjust-extension

Je segmente ensuite les textes contenus dans les fichiers XML provenant d’Isidore, dont le balisage verbeux constituerait une source importante de bruit dans l’analyse. Des recettes d’extraction automatique ont été écrites dans le Makefile, en tirant partie du logiciel xq et de la manipulation XPath. On peut générer les fichiers txt correspondant à chacun des documents XML :

make corpus
Exemple de règle d’extraction de métadonnées avec Make/xpath
# make corpus/*.concepts.txt
#
# Extraire les concepts d’un article XML dans le fichier
# correspondant "*.concepts.txt"
corpus/%.concepts.txt : corpus/%.xml
	@ echo Création du fichier $@
	@ xq $< -x '//concept/prefLabel[@xml:lang="fr"]' > $@
	@ mv $@ corpus/concepts/  ## déplacer dans dossier (plus pratique)

Le patron des fichiers générés ressemblera à ceci, où <uri-isidore> correspond à l’URI d’une entrée dans Isidore :

corpus/
├── <uri-isidore>.abstract.txt
├── <uri-isidore>.concepts.txt
├── <uri-isidore>.title.txt
└── <uri-isidore>.xml

Avec un fichier txt correspondant à chaque document XML récupéré d’Isidore, je suis désormais en mesure d’effectuer des manipulations et analyses sur les corpus cible et de référence. L’annexe II rend disponibles pour téléchargement les fichiers de corpus (dossiers compressés au format ZIP).

Antidictionnaire

Un antidictionnaire (antidictionnaire.txt) contient une liste de mots trouvés dans le corpus qu’il faudra éviter de comptabiliser (mots-clés marqués dans le XML comme étant en français, mais qui sont en réalité de l’espagnol ou de l’anglais, ou encore les mots-outils qui accompagnent un mot-clé à des fins de catégorisation pour la plateforme Isidore).