Segmenter du texte brut avec SegmentAnt

Dans des langues telles que le français ou l’anglais (entre autres), les différentes entités linguistiques, ou plus simplement les “mots”, sont plus ou moins intuitivement identifiables à l’écrit car ils tendent à être séparés par un caractère dédié : l’espace.

Ce séparateur n’est pas commun à toutes les langues écrites, et n’est notamment pas utilisé en chinois et en japonais. Un lecteur humain sera évidemment capable d’identifier les entités qui composent le texte pour pouvoir le comprendre, mais ce n’est pas forcément le cas des outils de traitement automatique utilisés lors de l’exploration d’un corpus. Il peut alors devenir nécessaire de segmenter le texte d’origine, en y insérant un caractère séparateur.

SegmentAnt, développé par Laurence Anthony, est un logiciel qui vous permettra de segmenter du texte en chinois ou en japonais extrêmement facilement, sans écrire une ligne de code.

Continuer la lecture de « Segmenter du texte brut avec SegmentAnt »

Lire (et modifier) un fichier XML avec Python

Un article précédent a montré comment générer facilement un corpus textuel avec Python. Le corpus ainsi produit se présentait sous forme d’un fichier au format XML, écrit notamment grâce à xml.etree.ElementTree, qui fait partie de la librairie standard.

ElementTree s’avère donc utile pour créer des fichiers XML, mais permet aussi de lire des fichiers préexistants, notamment dans le but de les modifier.

Voici comment procéder pour lire l’arborescence d’un fichier XML et lui apporter des modifications.

Continuer la lecture de « Lire (et modifier) un fichier XML avec Python »

Déclaration XML automatique

Lorsqu’on automatise la création d’un corpus, ou tout autre document, structuré en XML, il est important de veiller à générer également une déclaration XML cohérente avec le contenu du fichier. Il y a plusieurs façons d’y parvenir, notamment en faisant appel à bs4 ou à xml.etree.ElementTree.

Continuer la lecture de « Déclaration XML automatique »

Produire un corpus web format XML en 15 lignes de code

Pour effectuer certaines tâches, disposer d’un corpus textuel est très utile, voire indispensable : faire des essais pour un projet dont le corpus de travail est en cours de constitution, tester des scripts et traitements, prendre en main un nouvel outil et/ou le comparer à d’autres outils similaires…

Ce sont des usages qui relèvent principalement des phases préparatoires d’un projet, et pour lesquels il est surtout important de pouvoir construire un corpus rapidement et sans trop d’effort. Ce n’est pas grave si sa constitution n’est pas particulièrement précise puisqu’elle ne nécessite qu’un investissement limité et que les résultats obtenus n’ont pas vocation à être exploités en conditions réelles.

Je vous présente ici un script Python de web scraping très simple, qui vous permettra d’obtenir un corpus textuel au format XML tout à fait adapté à ce type d’utilisation.

Continuer la lecture de « Produire un corpus web format XML en 15 lignes de code »

Uniformiser l’encodage d’un corpus avec Python

Quelques articles de ce carnet ont déjà été consacrés au traitement de données dans le cadre de la constitution d’un corpus, notamment l’étiquetage morphosyntaxique (pour le chinois, avec les étiqueteurs PyNLPIR et Jieba). Toutefois je n’y avais pas abordé la question de l’encodage des caractères.

Concernant les corpus écrits, l’encodage est un paramètre important.
Il doit :

  • Permettre la reconnaissance de tous les caractères présents dans le corpus .
  • Être le même dans tous les fichiers composant le corpus.
  • Être compatible avec les outils de traitement qui seront utilisés par la suite.

Lorsqu’on construit un corpus textuel, les données ne valident pas forcément ces critères au moment de leur collecte, et il est alors indispensable d’uniformiser l’encodage au plus vite.

Je vais détailler ici l’écriture d’un script Python permettant de convertir automatiquement en utf-8 un ensemble de fichiers, quel(s) que soi(en)t leur(s) encodage(s) d’origine.

Continuer la lecture de « Uniformiser l’encodage d’un corpus avec Python »