LTAL, TP 15.09

Vérifiez SVP si les solutions/commentaires sont déjà en ligne.

Je vous demande la gentillesse de travailler à la maison les exercices qui n'ont pas été terminés en TP. C'est important. Pour certains, je ne vous donnerai jamais de solutions, – par ex. l'exercice 1 ci-dessous... – un minimum de décence oblige, les solutions sont dans la littérature...


Exercice 1. Revenez aux TP de la semaine dernière. J'y donne des références à deux ouvrages littéraires, The Gold Bug et The Dancing Men. Vous trouverez les textes en ligne, cherchez-les (pas d'aide de ma part, si quelqu'un n'arrive pas, c'est la honte). Ils contiennent des textes cryptés de manière triviale (substitution fixe), et la solution exploite l'analyse fréquentielle dans la langue anglaise (pas besoin d'être un spécialiste de Shakespeare, mais si quelqu'un est vraiment faible, il faudra travailler dessus, c'est essentiel pour votre carrière. Si besoin, écrivez-moi.).

Le texte dans le livre de Poe est :

5 3 ‡ ‡ † 3 0 5 ) ) 6 * ; 4 8 2 6 ) 4 ‡ . ) 4 ‡ ) ; 8 0 6 * ; 4 8 † 8 ¶ 
6 0 ) ) 8 5 ; 1 ‡ ( ; : ‡ * 8 † 8 3 ( 8 8 ) 5 * † ; 4 6 ( ; 8 8 * 9 6 * 
? ; 8 ) * ‡ ( ; 4 8 5 ) ; 5 * † 2 : * ‡ ( ; 4 9 5 6 * 2 ( 5 * — 4 ) 8 ¶ 
8 * ; 4 0 6 9 2 8 5 ) ; ) 6 † 8 ) 4 ‡ ‡ ; 1 ( ‡ 9 ; 4 8 0 8 1 ; 8 : 8 ‡ 
1 ; 4 8 † 8 5 ; 4 ) 4 8 5 † 5 2 8 8 0 6 * 8 1 ( ‡ 9 ; 4 8 ; 8 8 ; 4 ( ‡ 
? 3 4 ; 4 8 ) 4 ‡ ; 1 6 1 ; : 1 8 8 ; ‡ ? ; 
60))85;]8*:+*8!83(88)5*!; 46(;88*96*?;8)*+(;485);5*!2:*+(;4956*2(5*-4)8`8*; 4069285);)6 !8)4++;1(+9;48081;8:8+1;48!85;4)485!528806*81(+9;48;(88;4(+?3 4;48)4+;161;:188;+?; (Les espaces ne comptent pas. Attention, Wikipédia cite ce texte avec erreurs !!)

La correspondance entre les fréquences de ces symboles et les fréquences dans l'Anglais permet de reconstituer la source ; il faut quand même connaître la langue, et corriger les exceptions. Travaillez sur l'un de deux messages cryptés (cherchez les dans les originaux, j'espère que ci-dessus est correct, mais je ne suis pas sûr...), écrivez un programme qui efectue la conversion, en utilisant une table des fréquences dans l'Anglais, et en corrigeant le résultat à la main. Les livres vous donnent la solution, essayez de ne pas la regarder trop tôt (les seules personnes que vous allez duper c'est vous...)


Exercice 2. Dans une institution les adresses mail des employés suivent le pattern : prenom.nom@domaine.pays. Écrire un programme qui décortique ce texte, et sépare les éléments. Ensuite le programme imprime ces éléments (prénom, nom, domaine et pays) en mettant les premières lettres du nom et du prénom en majuscules. Il faut le faire sans expressions réguilères (cela viendra...). Voici quelques procédures (et méthodes) Python utiles, pour votre mémoire. Le mot chn ci-dessous signifie une chaîne quelconque.

Ceci est un exercice de 5 minutes ou moins - concernant le codage - mais vous devriez passer un peu plus de temps sur la lecture de la documentation.


Exercice 3. Tokenisez un long texte littéraire (par ex. la Déclaration, ou mieux, car c'est plus long : le livre de Verne). Les spécifications de nettoyage sont :


Exercice 4. Prenez le livre de Verne, sans nettoyage de l'exercice précédent. Trouvez une expression régulière, ou une séquence, si faire cela en une seule fois s'avère difficile – et éliminez les numéros de chapitres en chiffres romains. Attention à des erreurs triviales, si vous éliminez "XII" avec une telle regexp, le fragment "XIII" sera apparié, et "I" restera.


Solutions (à venir)

Semaine suivante
Retour à l'index