Consigne

Travail attendu pour le devoir final

Replier

Avant tout, n'oubliez pas d'illustrer les points que vous abordez à l'aide d'exemples de code commenté et de copies d'écran.

  • Le script que vous rendrez devra être téléchargeable ; son code devra être commenté, bien entendu.
  • Vous devrez commenter chacune des fonctions Python utilisées dans le script : il faudra vous renseigner en utilisant les ressources documentaires disponibles dans les Wikis du cours. L'explication d'une fonction ne doit pas excéder une à deux phrases. 
  • Les fichiers de résultats générés par votre script devront également être téléchargeables.
  • Etapes obligatoires :
    • Récupérer le code source d'une page html
    • Nettoyer le code source à l'aide d'expressions régulières
    • Générer un fichier de résultat contenant le code source nettoyé
    • Opérer des décomptes sur le texte (caractères, mots, phrases)
    • Générer un fichier de résultat contenant les résultats des décomptes
  • Les exercices et points abordés dans les wikis pour effectuer ces différentes étapes sont donc obligatoires, à l'exception de l'exercice Bonus à la fin du wiki 1.9.
  • Répondez à la question suivante : quelles sont les 5 grandes étapes de votre programme ? Vous pouvez agrémenter votre réponse d'un schéma si vous le souhaitez.
  • Expliquez votre choix de page web nettoyé. Indiquez les caractéristiques de la page choisie (encoding, charset, javascript). Donnez des exemples de difficultés de traitement de votre page web

Travail rendu

Le programme se trouve à cette adresse.
La page web analysée est "Conan the Barbarian".
J'en ai tiré la version nettoyée, ainsi que les statistiques suivantes (l'analyse obtenue ici ne tiens pas compte de la casse, mais le programme permet d'obtenir une version qui tiens compte de la casse).

NB : Les fichiers textes sont en UTF-8. En cas de problème d'affichage, sélectionner manuellement cet encodage.

Le choix de cette page web est légèrement problématique étant donné que c'est une page de wiki, sujette à des changements potentiels. Pour cette raison, la version de cette page que j'ai utilisée est accessible sur ce site. Ce choix a été motivé par la volonté d'utiliser une page contenant beaucoup de balises, du javascript, et beaucoup de texte normal (ce qui permet de tirer des statistiques plus intéressantes).

Alternativement, j'ai aussi produit des fichiers à partir de cette page voir sa version propre, voir ses statistiques..

Étapes du programme

Le déroulement du programme est explicité en détail dans les commentaires qui en accompagnent le code. On peut dégager les étapes suivantes :
  • Récupération et nettoyage de la page web
  • Découpage du texte ainsi créé en phrases et en mots
  • Calculs relatifs au texte de façon globale
  • Analyse statistique des occurrences de mots par la création et le remplissage d'un dictionnaire
  • Création de fichiers pour compiler et stocker ces informations

Comment trouver les hapax

hapax=open("hapax", "w") for word in dictionary:     if dictionary[word] == 1:         hapax.write(word + "\n")
hapax.close()