Egle RAMDANI, Paris 3, Master TAL
Svetlana TSARKOVA, INALCO, DESS Traductique


Rapport du projet "barrage"









Introduction

Le projet "barrage" consiste à trouver les différents usages du mot "barrage" à partir des données disponibles sur le Web. Le but était de constituer un corpus des pages Web pour dégager les régularités d'usage de ce mot. Ce travail réunit la collecte manuelle des données et le traitement automatique (et manuel) de ces dernières. Le travail s'est fait en étapes successives. L'automatisation des étapes 2, 3 et 4 a été fait avec un script shell qui est présenté à la fin. Le script a été modifié à chaque étape et les états intermédiaires ne sont pas donnés. Le résultat de ce projet est présenté dans le tableau qui donne l'accès à tous les états du corpus. Dans les colonnes on trouve successivement URL, la page récupérée, le texte de cette page et les lignes dans ce texte contenant le mot "barrage".


Etape 1: Recherche du mot "barrage" et constitution du corpus des URLs

Moteurs de recherche

Problématiques

La recherche a commencé par exploration des résultats obtenus à l'aide de différents moteurs de recherche pour le mot "barrage". La première difficulté était de séparer les pages francophones des autres pages (anglophones majoritairement) contenant le même mot mais dans une langue différente. Les solutions trouvées sont présentées ci-dessous:

Google Option "Pages francophones"
Mozbot Option "Web francophone"
CiteSeer.IST absence de choix de langue; pas de solution spécifique trouvée
Google Print absence de choix de langue; pour n'obtenir que les résultats en français on a utilisé l'expression " barrage le"
Google Scholar absence de choix de langue; pour n'obtenir que les résultats en français on a utilisé l'expression " barrage le"
 
Commentaire:
L'expression de base de la recherche était "barrage". Pour le recherche dans les moteurs comme Google Print et Google Scholar, on y a rajouté une combinaison de deux lettres "le" qui est, entre autres, l'article défini en français que l'on devrait trouver à priori dans tout texte écrit en français. Outre sa grande fréquence, ce mot grammatical a l'avantage de ne pas orienter la recherche comme le ferait un mot lexical.

Accès aux certains pages est limité soit par un mot de passe (ex. les archives du journal "Le Monde") soit à cause des problèmes techniques.
Dans Google Print on constate également que l'accès aux documents est relativement restreint - ce sont que quelque pages que l'on peut consulter et encore faut-il s'inscrire.
Dans Google Scholar on obtient souvent des citations auxquelles il est difficile d'accéder ou des références bibliographiques qui nous ne renseignent pas beaucoup sur l'usage d'un mot. Dans ce projet, ces pages ont été ignorées. 
Etant donné que cette étape était purement manuelle, on a pu à coté des critères formels utiliser aussi des critères sémantiques. Les voici:
Commentaires:
* La notoriété d'une page joue un grand rôle dans la recherche. D'une part, cela nous permet de dégager l'usage le plus répandu d'un mot si on considère que les liens qui figurent à la tête de la liste le représentent. D'autre part, cette stratégie dissimule les usages moins courants en considérant qu'il est difficile de parcourir la totalité des pages. Pour diversifier les résultats, on a choisi de consulter les références des sites se trouvant au début, au milieu et à la fin de la liste totale référencée par le moteur de recherche. 
* La stratégie d'élimination consiste à repérer les co-occurrences du mot "barrage" dans un même usage pour éliminer par la suite les doublons de la recherche. Par exemple, on a remarqué que "barrage" dans le sens "barrage hydraulique" était souvent utilisé avec les expressions "hydraulique", "construction", "rupture" etc. En redéfinissant la recherche, on a pu éviter un grand nombre de pages qui renvoyaient au même usage du mot.    

Dictionnaires

Pour avoir une vision complète il était utile de consulter les dictionnaires et notamment ceux trouvés sur le Web. Voici les liens correspondants:
http://atilf.atilf.fr/dendien/scripts/tlfiv5/visusel.exe?12;s=1286840415;r=1;nat=;sol=1;
http://francois.gannaz.free.fr/Littre/xmlittre.php?requete=barrage
http://portail.atilf.fr/cgi-bin/dico1look.pl?strippedhw=barrage&headword=&dicoid=ACAD1932&articletype=1
 

Collecte des URLs

La collecte s'est fait manuellement à partir des listes visualisées par des moteurs de recherche. En considérant les difficultés décrites ci-dessus on n'a retenu que deux moteurs de recherche - Google et Mozbot. Dans la partie préliminaire on a dégagé des grands groupes de sens qui nous ont pérmis de regrouper les URLs dans des fichiers texte selon l'usage du mot "barrage". Les grands groupes sont les suivants:
  1.  barrage hydraulique
  2. obstacle au sens figuré
  3. obstacle physique
  4. ensemble des barres (pour la guitare)
  5. match de barrage
  6. tir de barrage
  7. test de barrage

Etape 2:  Récupération des pages Web avec wget

L'outil wget (sous linux) nous permet de récupérer les pages Web (les télécharger et les enregistrer) à partir des URLs. Wget possède de nombreuses options dont trois ont été utilisées dans ce travail:

-i wget lit les URLs dans un fichier
-a wget crée un fichier trace pour le rapport de son activité
-O cette option permet de choisir le nom pour la page récupérée

L'utilisation du wget a limité le choix des pages parce qu'il s'est avéré que les pages repérées sur Google Print ou Google Scholar sont irrécupérables avec cet outil.
Un autre problème s'est apparu lors de l'enregistrement des pages. Le nom donné aux fichiers est le nom de base (basename) des URLs que le script récupère. Pourtant, cette récupération ne se fait pas toujours correctement. Par exemple, le nom de base peut être absent dans un URL et dans ce cas, la page enregistrée va porter le nom "index1", "index2" etc. En revanche, le nom sous lequel le script va "connaître" ce fichier est constitué de la partie droite de URL. Comme ce deux noms ne sont pas identiques, le fichier reste inaccessible pour les traitements automatiques ultérieurs .
On a constaté également des changements des certaines caractères dans le nom de base. Par exemple "?" sera transcrit comme "@" et cela pose problème aux traitements automatiques ultérieurs.
C'était le cas avec URL "http://www.infobebes.com/htm/actu/article.asp@id_art=3753" qui est devenu "article.asp?id_art=3753" lors de l'enregistrement.
Etant donné que ces changements de nom ne se produisaient pas souvent, on a préféré de supprimer ces URLs plutôt que les traiter manuellement. 
En outre, il faut préciser que wget reconnaît seulement le schéma de URL commençant par " http:// "

Le résultat est présenté dans le tableau récapitulatif.



Etape 3: Récupération de l'information textuelle des pages Web

Les pages Web contiennent des informations diverses dont on a besoin de garder seulement le texte. Pour récupérer le texte de chaque page Web on a utilisé lynx - un navigateur Web qui fonctionne en mode texte. Le texte a été sauvegardé pour des traitements ultérieurs. Voici la commande utilisée:

lynx -dump url  > ../../Dump-texte/nom_du_répertoire/nom_du_fichier.txt

Le résultat est présenté dans le tableau récapitulatif.
   


Etape 4: Filtrage du mot "barrage" avec egrep

Etant donné que le but final du projet était de dégager les différents usages du mot "barrage", on devait filtrer les textes pour ne garder que le contexte de ce mot. L'outil de filtrage était "egrep". Les options utilisées avec egrep sont listées ici:
-i ignore la casse
-n affiche chaque ligne son numéro dans le fichier
-v affiche les lignes qui ne contiennent pas le motif
-Bn affiche un nombre n de lignes avant
-An affiche un nombre n de lignes après

Commentaires:
Option -i permet de chercher  toutes les occurrences d'un mot sans spécifier s'il contient des majuscules ou des minuscules.
Option -n est utile dans le cas où on a besoin de retrouver une occurrence dans le texte d'origine (pour clarifier le contexte par exemple).
Option -v était utilisée principalement pour éliminer les URLs que lynx liste à la fin de chaque page et qui ne nous renseignent pas sur l'usage du mot recherché.
Le contexte du mot recherché était limité à une ligne avant est après. Ce serait insuffisant dans le cas où le texte était organisé en lignes très courtes mais étant donné que nous n'avons pas rencontré ce problème, ce contexte restait inchangé.

Le résultat est présenté dans le tableau récapitulatif.



Présentation du script

#!/bin/bash
echo "Donnez le nom du fichier (html) ou le tableau sera créé:";
read tablo;
echo "<html><head><title>TableauURL</title></head><body>" > $tablo;
echo "<table left border="1">" >> $tablo;
echo "Donnez le nom du répertoire où sont les URLs";
read rep;
cd $rep;

for fic in `ls `
{
    mkdir ../Pages/$fic;
    mkdir ../Dump-texte/$fic;
    mkdir ../Egrep-texte/$fic;
    echo "<tr align="center">" >> ../$tablo;
    echo "<td bgcolor="#CCFFFF" colspan="4" rowspan="1"><big>Usage: $fic</big></td></tr>" >> ../$tablo;
        for url in `cat $fic`
        {
        wget $url -O../Pages/$fic/$(basename ${url}).html;
        echo "<tr><td><a href=$url>$url</a></td>" >> ../$tablo;
        echo "<td><a href=Pages/$fic/$(basename ${url})>$(basename ${url})</a></td>" >> ../$tablo;
        lynx -dump $url > ../Dump-texte/$fic/$(basename ${url}).txt;
        echo "<td><a href=Dump-texte/$fic/$(basename ${url}).txt>$(basename ${url}).txt</a></td>" >> ../$tablo;
        egrep -i -n -B1 -A1 barrage ../Dump-texte/$fic/$(basename ${url}).txt | egrep -v http:// > ../Egrep-texte/$fic/$(basename ${url})egrep.txt;
        echo "<td><a href=Egrep-texte/$fic/$(basename ${url})egrep.txt>$(basename ${url})egrep.txt</a></td></tr>" >> ../$tablo;
        }
}
echo "</table></body></html>" >> ../$tablo;

Une version du script commentée est aussi disponible.


Les résultats du lancement de ce script sont les suivants:

Une structure de stockage des données :
                                                           
                                                             

Et un tableau qui nous permet d'accéder à tous les états du corpus.