Grèves dans le monde

La vie multilingue des mots sur le web

Étapes

Finalité

Le script préparé a pour but de générer une page html contenant un tableau avec 10 colonnes (dont 1 numérote les urls). Ainsi, chaque étape correspond à la constitution d'une de ces colonnes.

URLS

La première étape du projet consistait à choisir les urls qui constitueraient notre corpus. Notre choix s'est principalement porté sur les articles de presse afin de pouvoir observer les grèves dans un contexte international. Nous avons donc choisi 50 urls par langue soit 150 urls au total.

Aspiration des pages

Pour cette étape, nous avons utilisé la commande "wget - O" afin d'aspirer les pages. Bien évidemment, on pouvait recontrer le problème du fameux "404 Not Found".

De ce fait, s'il y avait une erreur à cette étape, le tableau html afficherait une erreur à la colonne "Retour Wget" et un fichier Erreur.txt serait également créé contenant la position exacte de l'échec d'aspiration (tableau et numéro d'url).

À la fin de cette opération nous avions nos 4 premières colonnes.

Dumps

Il s'agissait ensuite de transformer le contenu de la page aspirée en un text brut (format .txt). Pour ce faire, nous avons utilisé la commande lynx.

C'est à cette étape que les problèmes d'encodage ont commencé à se poser. En effet il nous a d'abord fallu déterminer l'encodage de la page aspirée. Pour ce faire, nous avons utilisé la commande "file -i". Si le résultat était en utf-8, le fichier était automatiquement dumpé avec lynx.

Sinon on effectuait le dump en encodage initial en comparant l'encodage trouvé (non-utf8) à la liste des encodages connus par la commande iconv (iconv -l).

Enfin si l'encodage était toujours inconnu, nous avons eu recours à la commande "egrep -i "<meta.*charset" " afin de voir si l'encodage était spécifié dans le code de la page HTML pour ensuite le dumper avec lynx.

La commande lynx a marché dans 99% des cas sauf pour l'arabe où parfois le dump était illisible même si l'encodage est connu. Une alternative est d'utiliser la commande "elinks" qui a réussi à bien dumper le fichier mais avec beaucoup plus de parasites car elle n'a pas autant de filtres que lynx. Nous avons donc remplacé les 3-4 urls arabes qui étaient dans ce cas là.

Contextes

Une fois les dumps constitué, nous avons passé à l'extraction des motifs de recherche en contexte. Pour ce faire, nous avons utilisé, une nouvelle fois, la commande "egrep -i -A 1 -B 1" afin d'afficher le motif avec une ligne avant et une ligne après.

Une autre manière de trouver les contextes a été d'utiliser le "programme" minigrep fourni en cours. Cependant, pour l'arabe, la commande egrep avait de bien meilleurs résultats que minigrep et pouvait afficher plus de résultats.

Occurences

Les chiffres affichés dans cette colonne se basent sur les fichiers contextes (.txt) fourni avec la commande egrep en utilisant le filtre -c (count) pour compter le nombre d'occurences.

Index

Nous sommes enfin arrivés à la dernière colonne, qui représente un index global de toutes les formes apparues dans les dumps.

L'opération était simple, la commande "tr" nous a permis de remplacer tous les espaces par de nouvelles lignes.

Puis la commande grep -v (invert matching) nous a permis d'exclure tous les caractères qui ne sont pas des lettres ni des chiffres ni des tirets du bas.

De plus, afin d'éviter d'avoir 2 lignes pour la même forme (majuscule et minuscule), nous avons utilisé la commande "tr [:upper:] [:lower:]" pour que tous les mots soient en minuscule.

Puis un uniq -c pour avoir le nombre d'occurences de chaque forme.

Enfin un sort -bnr (ignorant les blancs, triant par valeur numérique et qui affichera les occurences par ordre décroissant).

Nuages

Pour les nuages, nous avons utilisé le site Woordle afin de montrer les mots qui ont eu le plus d'occurences dans notre corpus. Pour les trois langues, on voit clairement le mot grève.Cependant la différence est dans le type de grève. Le français et l'anglais montrent que la plupart des grèves sont par les travailleurs ou workers, labor. Alors que le nuage arabe montre plus des grèves de la faim et celles d'enseignants.

Trameur

Toutes les fonctionnalités offertes par le trameur se basent sur les dumps générés. Cependant, ces dumps sont remplis de mots parasite, parfois de publicité en une autre langue que celle du site et d'énormément de caractères "inutiles". Nous avons donc intégré au script des lignes qui me permettent de le nettoyer un minimum mais les arbres offerts par le trameur n'était pas aussi clairs que les nuages, précisément à cause de la quantité de mots vides/inutiles présents dans notre corpus.

Pour obtenir des résultats plus probants, il aurait fallu nettoyer le corpus à la main ce qui va à l'encontre du but de ce projet. De ce fait, seuls les nuages sont affichés sur ce site.

Cependant, le script contient toujours les lignes de nettoyage qui pourraient servir dans le cadre d'un corpus mieux nettoyé ou provenant de sources plus "propres" comme des thèses ou autre.