chargement...

Journal de bord
Semaine - 9

07/04

Xiaohua :

Basé sur ce qu'on a fait la semaine dernière, je commençais à "organiser" toute la structure de mes scripts, et aussi à concevoir la structure du fichier de sortie, aussi json que xml. Pendant le cours,nous avons appris un nouvel objet, dataclass, qui pourrait simplifier nos opérations de données. À travers la pratique et l'exécution d'une série de codes, j'ai approximativement compris la logique et la structure de dataclass. En outre, grâce à la démonstration du prof, j'ai saisi globalement le processus. Cependant, cette tâche comprend plusieurs types de structures de données similaires mais distinctes, telles que xml.etree, json, dataclass, les dictionnaires et les listes Python, et il m'a fallu beaucoup de temps pour clarifier les relations et les méthodes de manipulation entre ces différents types.
J'ai choisi trankit comme outil NLP pour la génération de POS et de lemma, mais l'exécution de cet outil crée un fichier cache dans le dossier actuel, donc j'ai modifié le fichier gitignore pour sauvegarder ce fichier ainsi que le dossier contenant les corpus localement, afin de tester le code. De plus, un gros problème de trankit est son temps de chargement relativement lent. L'emplacement de la ligne de code trankit.Pipeline('french') est donc très important. S'il est placé dans une boucle for-in, le module trankit sera chargé à chaque itération, c'est pourquoi je l'ai placé en dehors de la boucle. Enfin, en observant les résultats, j'ai constaté que pour certains articles contractés (des/du/aux), trankit ne pouvait pas reconnaître leur lemma ou pos, j'ai donc écrit une instruction if pour gérer ce problème.
  {
    "form": "des",
    "lemma": null,
    "pos": null
          },
                  
                  
Enfin, après plusieurs ajustements, j'ai produit des fichiers xml et js au format standard (bien sûr, en fonction de l'extension spécifiée par l'utilisateur), mais je n'ai pas pu trier le contenu par date.
Nous pourrons peut-être combiner les trois analyseurs NLP(spacy,trankit,stanza) et sélectionner l'outil correspondant en fonction de l'entrée de l'utilisateur.

10/04

Yingzi:

En me basant sur la structure des scripts de Xiaohua, j'ai choisi d'utiliser l'outil Spacy pour effectuer l'analyse syntaxique dans le cadre de l'exo de cette semaine. J'ai utilisé tout à bord la fonction nlpde Spacy pour créer un objet Doc contenant une analyse syntaxique complète du texte. :
Ensuite, j'ai parcouru chaque token du document à l'aide d'une boucle for. Pour chaque token, j'ai extrait son lemme et sa partie du discours à l'aide des attributs lemma_ et pos_ de l'objet Token.
Enfin, j'ai stocké les résultats dans un dictionnaire, où chaque clé correspond au texte brut du token, et chaque valeur est une liste contenant le lemme et la partie du discours du token.
En plus de l'outil Spacy utilisé pour l'analyse syntaxique, j'ai également inclus dans le script la méthode que j'ai utilisée dans le premier exercice de la semaine 6 avec le module feedparser. Ainsi, l'utilisateur dispose de plusieurs options pour extraire le titre et la description de chaque article, notamment en utilisant les modules re, etree ou feedparser.