On devra encore
un peu ajuster notre script, mais on peut quand même continuer notre aventure. Le
but de la prochaine phase est de ajouter trois colonnes à notre tableau. La
première colonne contient l’extraction du contexte autour du mot qu’on a choisi
(« jouer » et sa traduction en anglais et en italien) en format .txt
et la deuxième colonne contient la même chose en format .html. La dernière
colonne va contenir le contage du mot choisi.
La commande egrep
est la commande de filtrage qui permet à la machine de faire une recherche d’une
chaîne de caractères dans un fichier. La syntaxe
de la commande est :
egrep -options chaîne_de_caractères nom_du_fichier
Pour identifier
dans les contextes le mot « jouer », on aura besoin d’utiliser les
expressions régulières ! Les expressions régulières, même si difficiles à déchiffrer, sont très utiles parce que servent pour décrire de
manière générique des chaînes de caractères pour les traiter. Par
exemple, on a déjà utilisé une expression
régulière quand on a localisé
dans la page html la chaîne de caractères « charset ». Grâce à une expression régulière, on va construire un « modèle » :
le programme cherche le modèle et il trouve toutes les chaînes de caractères qui ressemblent au modèle choisi. Par exemple, le modéle \ble\b pour trouver l’article « le » ou le motif « le ».
Comment implémenter
les expressions régulières ? En utilisant des caractères
spéciaux, des opérateurs:
[ ] représente un
caractère (Ex. R [iau]ng =
ring, rang, rung)
| permet de
marquer une alternative (Ex. Francesca|Ardas
– Francesca, Ardas)
( ) pour délimiter
la portée de l’opérateur | (Ex. in
(any|every) – in any, in every)
[0-9] un caractère
entre 0 et 9
^ négation d’une chaîne de caractères: comme ça on désigne un caractère qu’on ne veut pas (Ex. [^Dd] = ni D ni d). On peut
l’utiliser pour supprimer de balises html, comme par exemple dans :
Sed –e “s/<[^<>]*>//”
Puis on a des caractères
qui permettent de quantifier des expressions :
? option par
rapport à l’expression qui le précède
* ce qui précède: il n’y a pas ou il y a pour n occurrences
+ au moins une
occurrence
. permet de
représenter n’importe quel caractère sauf le retour à la ligne
Et des opérateurs
de frontière :
^ début de chaîne de caractères
$ fin de chaîne de caractères
Donc ^$ est une de
chaîne de caractères vide
\w n’importe quel
caractère alphanumérique
\b frontière de
mot
Le paranthesage nous
permet d’organiser la portée d’un opérateur. Toutefois, il y a un ordre d’importance,
une hiérarchie à respecter :
fermeture
(*) > concaténation > union