Accueil
Cours après cours
Devoirs
Horaires et locaux
Au sujet du livre de cours
Consultez vos notes
Liens utiles
Contact
Les séminaires RALI/LLI
|
|
Quelques infos sur le TP1
Tout le monde m'a rendu un TP qui répondait aux consignes de
base. Quelques TP sont excellents.
Barême
J'ai noté votre travail avec le barême suivant:
Tout travail remis répondant aux spécifications minimales du sujet
obtenait la note de 17. Un certains nombre de facteurs vous
permettaient ensuite d'aller chercher au plus 3 points; en voici une
liste non exhaustive:
- un très bon rapport
- des expériences poussées
- un produit final efficace (tant en temps qu'en performance)
- correction par viterbi
Un programme très lent et peu performant perdait également un point.
Quelques remarques en vrac
- Lorsque je vous impose une ligne de commande, il serait judicieux
de la respecter. Je ne le fais pas par vice, mais pour me simplifier
la vie (je peux iainsi tester tous vos tps via un script). Vous
êtes plusieurs à ne pas respecter les lignes de commandes (l'ordre des
arguments, etc.), et vous êtes également plusieurs à ne pas décrire à
même le programme, ce que le programme attends (votre programme plante
ou gèle).
- Lorsque votre programme gère plusieurs options qui règlent le
comportement du programme, toujours mettre les options par défaut aux
valeurs que vous estimez les plus intéressantes.
- Dans un rapport, il est plus intéressant de faire ressortir les
questions aux interrogations que vous vous êtes posées que de
paraphraser le sujet: je sais très bien ce qui vous a été demandé !
-
Hash_map n'est pas un buzz word que je tiens à lire
à tout prix ! Me dire "j'ai utilisé une hash_map pour coder les
n-gram" n'est pas vraiment informatif (c'est quoi la clé ? etc.). Pour
ceux qui fouillent un peu autour de l'idée minimale qui est présentée
dans les sujets, vous verrez dans le tp2 (et vous avez du voir dans le
tp1) que le choix de la structure de donnée conditionne les
performances (en temps) de votre programme. C'est cet aspet des choses
qui m'intéresse dans la section "structures de données".
- Pour le TP2: il est vrai que je ne vous ai pas spécifié où
je souhaitais que la correction se fasse. Dans l'optique d'une
verification automatique de vos programme, la seule option viable est:
sur la sortie standard (stdout pour les amoureux du C, cout pour les
fans de C++ et System.out pour les javaistes). Ceci me permet de
rediriger la sortie de vos programmes vers des fichiers dont je
controle le nom, plutôt que d'aller fouiller pour deviner la
sortie. Merci de respecter cela pour le TP2. Les traces qui ne
font pas parti de la sortie demandée peuvent être faites sur la sortie
erreur standard (stderr, cerr ou System.err).
Tests
J'ai testé vos programmes sur une machine "ordinaire" (un athlon,
500 Meg de mémoire vive) avec le modèle hans-500000.arpa et le
lexique hans-500000.vocab et j'ai
demandé la correction du texte: out-50.test; bref: des fichiers
disponibles à même le sujet. Je n'ai pas joué avec les options par
défaut de la ligne de commande de vos programmes. Les temps sont
donnés en temps utilisateur (tel que retourné par la commande système
time ).
Voici vos systèmes à précision 1: le système idéal est celui qui a
une précision de 1 en un temps de traitement nul (coin supérieur
gauche). Au départ 11 systèmes.
Voici vos systèmes à précision 2: toujours 11 systèmes.
Voici vos systèmes à précision 3: je retire le système du coin
inférieur droite pour mieux départager les systèmes du coin supérieur
gauche. Il reste donc 10 systèmes.
Conclusions
- un programme semble (sur le jeu de test) systématiquement plus rapide et meilleur.
- deux programmes sont identiques tant dans leur temps d'exécution que dans leur performance !
- la diversité est créatrice de richesses
|