Objectifs
Le cours a pour objectif de vous rendre autonome en programmation Python : apprendre les bases du langage, utiliser des modules, comprendre les messages d’erreur, trouver et comprendre la documentation.
L’accent sera mis sur le traitement de données textuelles et les problèmes liés aux données multilingues.
Évaluation
Vous serez évalués de la façon suivante :
Programme
Tous les supports sont sur github.
17 septembre 2018 : Passage en revue des bases en Python (Grands Moulins, 7.02)
Télécharger le fichier .ipynb et dans le même dossier taper la commande
> jupyter notebook chifoumi.ipynb
24 septembre 2018 : Précisions, fichiers et chaînes de car. (Grands Moulins, 7.02)
- slides ou ici pour la version non interactive
- Exos : pour un mot donné par l’utilisateur, comptez et affichez le nombre de voyelles et de consonnes. Pour ceux qui sont à l’aise : temperatures (CodinGame)
1er octobre 2018 : Structures de données
- slides ou ici pour la version non interactive
- Exos :
- À partir du fichier tsv sem_Ef9POe.conll : pour chaque POS listez les types classés par ordre d’occurrence décroissante, pour chaque type de chunk indiquez les longueurs min et max (en nb de mots).
- Pour ceux qui sont à l’aise : mime-type (CodinGame)
8 octobre 2018 : Structures de données (2)
- slides ou ici pour la version non interactive
- Notebook : dictonnaire de rimes
- Exos :
- compter le nb d’occurrences de chaque mot de brise marine. Utilisez un objet Counter comme vu sur la diapo
- reprendre le script
voyelles.py
et compter le nb d’occurrences de chaque voyelle et chaque consonne
15 octobre 2018 : structures de données (3)
22 octobre 2018 : fonctions et expressions régulières
- slides ou ici pour la version non interactive
- Exos :
5 novembre 2018 : séance de travail sur les dictionnaires
- notebook : abréviations et les données au format pickle
- Exos : continuer le notebook sur les abréviations. Essayer de découvrir les abréviations inconnues de votre lexique. Vous pouvez essayer ou combiner plusieurs approches.
- Repérer les mots de deux, trois ou quatre lettres
- Parmi ces mots, distinguer ceux qui n’ont pas de voyelle ou une seule voyelle.
- Utiliser les fréquences pour distinguer les erreurs de saisie (freq > 2 pour les abréviations).
- S’aider de lexique.org pour distinguer les mots courts du lexique français des abréviations candidates.
12 novembre 2018 : fonctions
- slides ou ici pour la version non interactive
- notebook : vocabulaire commun
- séance de travail : À partir des données de open data IDF sur les conservatoires en IDF et les données de l’INSEE sur la population française par département (ici mais utilisez ce fichier simplifié), calculez le nombre moyen de conservatoires par département et par habitant. Puis faites le même calcul pour les moins de 20 ans.
- Exos : pas d’exos because révisions
19 novembre 2018 : examen
26 novembre 2018 : modules et packages
- slides ou ici pour la version non interactive
- Exos : Écrire un script avec des fonctions et un main qui parse le fichier conll et donne le nombre de phrases, le nombre de mots et le nombre de mots d’une catégorie morpho-syntaxique choisie par l’utilisateur.
Correction simple, version objet (enfin c’est à vous d’utiliser les classes proposées)
Trouver les mots dont le lemme se termine en ‘ment’ qui ne sont pas des adverbes, les afficher avec un classement par fonction
Compter les nombres de séquences ADJ-NOUN et NOUN-ADJ
Trouver les têtes qui ont au moins deux dépendants de type ADJ
Y-a-t’il des sujets inversés dans le fichier ?
3 décembre 2018 : classes, objets
- slides ou ici pour la version non interactive. Merci à Loïc Grobol pour la refonte compléte des supports.
10 décembre 2018 : classes, objets
17 décembre 2018 : travail en groupes sur le projet
Outils
Vous aurez besoin d’un interpréteur Python et d’un éditeur de texte.
Python & co.
Vous travaillerons avec Python3.
Les supports de cours sont sous forme de diapos html et surtout de notebooks. Pour utiliser les notebooks (anciennement ipython notebook maintenant jupyter notebook) vous aurez besoin d’installer Jupyter sur votre machine de travail.
Je vous incite également à utiliser le shell interactif ipython
qui est une version améliorée du shell python
(ipython est inclus dans jupyter).
Deux options pour l’installation :
-
installer uniquement les outils nécessaires avec pip :
- installer Python3
sudo apt-get install python3
- installer pip
sudo apt-get install python3-pip
- installer jupyter
python3 -m pip install jupyter
-
installer anaconda. La solution de facilité qui comprend python3, pip, jupyter et une foule de modules dont on ne se serivra pas.
Éditeur de texte
Pas un traitement de texte, pas un IDE, un éditeur de texte.
Ressources
Il y a beaucoup, beaucoup de ressources disponibles pour apprendre Python. Ce qui suit n’est qu’une sélection.
Livres
- How to think like a computer scientist, by Jeffrey Elkner, Allen B. Downey, and Chris Meyers.
Vous pouvez l’acheter. Vous pouvez aussi le lire ici
- Dive into Python, by Mark Pilgrim.
Ici vous pouvez le lire ou télécharger le pdf.
-
Learning Python, by Mark Lutz.
-
Beginning Python, by Magnus Lie Hetland.
-
Python Algorithms: Mastering Basic Algorithms in the Python Language, by Magnus Lie Hetland.
Peut-être un peu costaud pour des débutants.
- Programmation Efficace. Les 128 Algorithmes Qu’Il Faut Avoir Compris et Codés en Python au Cours de sa Vie, by Christoph Dürr and Jill-Jênn Vie.
Si le cours vous paraît trop facile. Le code Python est clair, les difficultés sont commentées. Les algos sont très costauds.
Web
Je vous conseille vivement d’utiliser un (ou plus) des sites et tutoriels ci-dessous.