29/03
Xiaohua : "Avantage de yield."
Pendant le cours, on a étudié les scrpits du prof, qui utilise
la fonction yield pour renvoyer un generateur. Par rapport à la
fonction returnliste, c'est plus efficace et rapide.
Mais les scripts ne sont pas faciles à comprendre donc il faut
du temps pour les apprendre et les concaténer avec les miens,
comme c'est pas un copier-coller, pas tellement simple o(╥﹏╥)o.
31/03
Xiaohua:
J'ai fait une comparaison entre mes scripts et ceux avec yield
pour voir la différence. J'utilise time pour regarder leur
vitesse :
/Users/xiaohua/opt/anaconda3/envs/macrun/bin/python3 pluri_extraire_xml.py 0.12s user 0.15s system 98% cpu 0.268 total
/Users/xiaohua/opt/anaconda3/envs/macrun/bin/python3 extract_many_base.py -m 0.05s user 0.02s system 78% cpu 0.083 total
Donc le deuxième, avec la fonction yield, semble plus rapide et
moins vorace au CPU. Ainsi, j'ai amélioré mes scripts d'après
les contenus dans les corrigés. Mais j'ai aussi gardé les miens
dans le dossier original scripts. Dans le nouveau script multi,
(autrefois les fonctions souvent renvoie tout dans une liste,
maintenant ils renvoyent les générateurs qui donnent les données
avec des itérations.)
Problèmes rencontrés :
1. Difficile de savoir quelles parties à garder et à remplacer.
2. Ne savoir pas la nature des résultats d'un générateur. (J'ai
utilisé la fonction next et type pour les identifier )
3. Il y a des articles bien particuliers : Ayant marché le
scrpit sur des articles d'une période de 2 jours, j'ai élargi ma
plage de recherche pour essayer de trouver des articles sur une
période de trois mois, mais j'ai découvert que la variable
"desc" est parfois "NoneType". Pour résoudre ce problème, je
limite la période peu à peu pour trouver le texte brut:
<item><title><![CDATA[Le discours de François Sureau]]></title><pubDate>Sat, 05 Mar 2022 11:03:43 +0100</pubDate><description><![CDATA[]]></description>.....</item>
Il y a des descriptions vides! Donc j'ai ajouté un if title and
desc is not None:
Pour les exos de Xquery et d'annotations, il faut encore du
temps.
02/04
Yingzi:
Après que le prof ait corrigé l'exercice 2 en classe, j'ai
réalisé que je n'avais pas compris les consignes. J'ai développé
mon code en utilisant le fichier sample.xml de l'exercice 1
comme objet de traitement, alors que le deuxième exercice
nécessitait l'utilisation des fichiers du dossier nommé 2022
comme corpus. J'ai donc dû modifier à nouveau mon propre code
pour le deuxième exercice en suivant la version corrigée par le
prof en classe. En lisant la version révisée de l'exercice 2 de
mon collègue Xiaohua, qui incorporait une partie de son code
précédent ainsi que la version corrigée donnée par le prof, j'ai
décidé de réaliser l'exercice 2bis en m'inspirant de la version
de Xiaohua sur sa branche XC-s7.