Résumé du Cours 7 et 8

Bonjour! Aujourd’hui on se retrouve pour les résumés des cours 7 et 8.

Cours 7

On continue toujours le script, et notamment le traitement des liens qui ne sont pas encodés en UTF-8. Il s’agit dans un premier temps de vérifier que les encodages détectés soient bien connus d’iconv.

Pour ces encodages là, le traitement va être similaire à ceux qui sont effectués pour les liens en UTF-8, car c’est la valeur de l’encodage qui change ici. Donc ce qui changerait surtout ce serait le « UTF-8 » à cet endroit:

Donc il faudrait plutôt remplacer « UTF-8 » par une variable telle que $EncodageURL et faire le lynx à partir de l’encodage des urls de notre corpus, et convertir en UTF-8 juste après avec iconv.

On note aussi le « utf8_ » présent dans la seconde ligne du screen du dessus, après ./DUMP-TEXT/, il sert à nommer le fichier qui est effectivement en UTF-8.

Mais dans tous les cas, les liens UTF-8 et ceux dans un autre encodage seront traités par la même fonction.

Donc on a une condition (« if ») si l’url est en UTF-8: on lance la fonction pour traiter cette url
Une seconde condition (« if ») si l’url n’est pas en UTF-8 mais est reconnu par iconv: on lance la fonction
Une dernière condition (« else ») où l’url n’est pas en UTF-8 et non reconnu par iconv > l’url n’est pas traitée, et on montre un résultat vide (c’est une fonction qui se chargera d’afficher les résultats vides).

Autre cas de figure: si l’encodage est « vide », il faut utiliser le programme « detect-encoding », qui va tester la page aspirée en question. Ensuite, on revient aux conditions « si l’url n’est pas en UTF-8 mais est reconnue ou non par iconv » pour déterminer la suite d’instructions à effectuer. Pour faire ce « rappel », il nous suffit juste de rappeler la fonction, et non de refaire toute une structure conditionnelle.

Après cela, nous sommes passés à la partie TD, où chacun travaillait sur ses projets, pour consulter nos avancées, c’est dans l’onglet « Journal de Bord » !

Cours 8

Pour ce cours, l’objectif est de finaliser le code pour le traitement des URLs qui ne sont pas en UTF-8, et voir ce qu’on doit présenter pour le site final, et comment le préparer, et enfin la préparation des corpus pour l’analyse.

Donc actuellement, on est en phase de finalisation des traitements d’URLs, quelques questions ont été posées sur ce sujet en début de cours.

Présentation du site final à faire

Nous avons vu plusieurs exemples de site issu des projets des années précédentes, pour que l’on puisse se faire une idée de ce qu’il faut rendre. Les différentes pages du styles sont au format html, et on peut ajouter une feuille de style, qui serait quant à lui au format css.

Ensuite, nous avons vu un exemple de modèle de site « à remplir », et vu comment le modifier. Ce modèle est assez simple, en voici d’ailleurs un court extrait:

Donc comme on peut le voir, tout est prêt, il ne reste plus qu’à modifier! Selon nos compétences, on peut aller plus ou moins loin dans la modification, ou bien créer le site de toute pièce directement !

Les URLs et le corpus

Donc on doit essayer de constituer nos corpus à partir des URLs, qui contiennent nos données, mais elles sont morcelées. Donc ce qu’on veut c’est analyser tous nos dumps de fichier.

Pour cela, on va devoir regrouper les données que l’on a construites. Le problème ici, c’est qu’il va falloir être vigilent sur les fichiers à regrouper, car dans nos dossiers DUMP-TEXT par exemple, il y a des fichiers temporaires (avant qu’ils soient convertis), des fichiers index, etc.

Il nous faut repérer les données textuelles qui correspondent à un tableau. C’est là que le « utf8_nomfichier » vu dans le cours précédent est utile! On sait qu’il faut sélectionner tous les fichiers dump « utf8_ » qui ont été produit par le script et qui ne sont pas vides.

Ces fichiers seront réunis dans un nouveau répertoire PREPARATION_CORPUS_TABLEAU4

Maintenant, comment concaténer ces fichiers?

On pourrait penser faire

cat utf8* > CORPUS-TABLEAU4.txt

Mais faire ça mélange toutes nos données ! Car il ajoute bêtement un fichier à la suite d’un autre, mais sans indication particulière (il n’y a pas de découpages en « partie », et donc on ne pourra plus savoir de quel dump venait un certain bout de texte).

Il faudra donc coder l’origine de chaque fichier qui sera concaténé, via des balises, comme sur le schéma suivant:

Donc comment devons-nous concaténer chaque fichier en introduisant à chaque fois une balise qui porte la trace de l’origine des données?

Dans le terminal, nous tapons donc:

for file in 'ls utf8_4*' do echo "<partie=$file>" >> CORPUS.txt;

Pour chacun des fichiers, je crée la balise « partie » qui sera accompagné du nom du fichier. A cela on ajoute une balise de fin tel que:

for file in 'ls utf8_4*' do echo "<partie=$file>" >> CORPUS.txt; cat $file >> CORPUS.txt ; echo "</partie> >> CORPUS.txt

Après cela, nous allons devoir également utiliser un outil de textométrie pour analyser nos données textuelles, qui sera iTrameur pour nous. Bien évidemment, il faudra faire attention à ce que ce logiciel charge bien notre corpus et prenne en compte (et comprenne correctement) nos balises nouvellement crées.

Si on prend un corpus:

Pour vérifier une seconde fois que les balises sont bien prises en compte, il faut aller dans l’onglet « cadre » du menu, il donne à voir la structuration qu’il y a dans le corpus.

On voit bien une succession de trois parties, comme nous avons actuellement donc le découpage est bien fait.

Maintenant, est-ce que nous avons la même structuration bien définie avec notre CORPUS.txt ?

On a un résultat qui s’en rapproche, le découpage semble donc bien fait !

… Et pourtant non, car si on fait la seconde vérification avec l’onglet cadre, et bien c’est vide. Alors d’où vient le problème?

Quand on regarde de plus près, on voit qu’il y a des résidus de balises produites par lynx (qui ressemblent à nos balises d’indication de fichier), dont on aimerait se débarrasser:

Il suffit de les débusquer avec l’outil « rechercher et remplacer », et faire à nouveau un ménage… Donc on peut les remplacer par « rien », ce qui nettoie les chevrons ouvrant et fermant qui ne nous intéresse pas, ou utiliser la commande egrep, sed ou tr si on préfère faire une correction automatisée!

Une autre solution aussi serait d’intégrer l’étape de nettoyage directement dans le script pour traiter les urls.

Après, il reste d’autres résidus désagréables mais qui ne sont pas gênant pour le traitement du corpus. Pour ça, c’est à nous de choisir si nous voulons un truc bien nettoyé et nickel, quitte à y passer plus de temps, ou alors laisser ça comme ça mais que ce soit moins propre.

Donc il nous faut baliser automatiquement notre corpus, nettoyer les chevrons indésirables, et si possible nettoyer au maximum le reste des résidus.

Laisser un commentaire