Votre travail sera de réaliser une application, une ressource, une interface ou une bibliothèque pour Python. Votre projet doit :
Le projet peut être en lien avec d’autres cours, d’autres projets ou votre travail en entreprise (mais assurez-vous avant que ce soit OK de partager votre code avec moi dans ce cas).
Bien entendu, rien ne vous empêche de combiner ces options.
Je m’attends plus à ce que vous réalisiez un projet autonome (c’est en général plus simple), mais votre travail peut aussi prendre la forme d’un plugin/add-on/module… ou une contribution substantielle à un projet existant (pensez à spaCy par exemple) si c’est ce que vous visez, dites-le-moi très en avance et on en discute.
Dans tous les cas, je m’attends à un travail substantiel (pas juste suivre un tuto, quoi), si vous avez un doute, là encore, demandez-moi.
Pas de prompt engineering, pas de chatbots, vous en mangez assez ailleurs.
Le rendu devra comporter :
Une documentation du projet traitant les points suivants :
On attend de la documentation technique, pas une dissertation. Elle pourra prendre le format d’un ou plusieurs fichiers, d’un site web, d’un notebook de démonstration, à votre convenance.
La documentation ne doit pas, jamais, sous aucun prétexte, comporter de capture d’écran de code.
Le code Python et les codes annexes (JS par ex.) que vous avez produit. Le code doit être commenté. Des tests, ce serait bien. Évitez les notebooks, préférez les interfaces en ligne de commande ou web (ou graphiques si vous êtes très motivé⋅es)
Les éventuelles données en input et en output (ou un échantillon si le volume est important).
Il est par ailleurs fortement recommandé d’utiliser Git pour versionner vos projets. Si c’est le cas, essayez de faire un vrai dépôt Git (où on peut voit la progression de votre travail), pas juste un dépôt de code avec un seul commit.
Écrivez ! Tenez un carnet : vos questions, un compte rendu de vos discussions, les problèmes rencontrés, tout est bon à prendre et cela vous aidera à rédiger la documentation finale.
Rappelez-vous que l’évaluation consiste à juger vos compétences sur les sujets liés au cours. Plus vous me donnez d’occasions de vérifier que vous les maîtrisez réellement, plus vous avez de chances d’avoir une note élevée.
Il existe beaucoup de choses pour travailler avec des données géo-localisées. Allez voir en vrac : Geo-JSON, uMap pour créer facilement des cartes en utilisant les fonds de carte d’OpenStreetMap, leaflet une lib JS pour les cartes interactives, overpass turbo pour interroger facilement les données d’OpenStreetMap (il y a une api !).
N’hésitez pas à aller fouiller dans Ortolang ou Clarin des ressources linguistiques exploitables librement et facilement. Vous pouvez aussi aller voir du côté de l’API twitter pour récupérer des données (qui ne sont pas nécessairement uniquement linguistiques)
Quelques sources : Paris Open Data, data.gouv.fr, Google dataset search
À gros grain :
Appliquer des modèles existants à des nouvelles données.
Comparer différents modèles existants sur des données existantes ou proposer de nouveaux modèles qui font mieux.
Analyser, expliquer, sonder des modèles existants pour mettre à jour des explications sur leur manière de fonctionner ou révéler leurs failles. Vous pouvez aller voir ce qui se fait dans le workshop BlackboxNLP pour vous donner des idées. (par exemple j’ai beaucoup aimé Universal Adversarial Triggers for Attacking and Analyzing NLP).
Classification de documents : le classique, se décline en analyse de sentiment ; détection de discours haineux, de fake news.
Syntaxe : POS tagging, parsing, chunking… Attention, la concurrence est rude.
Génération de texte : résumé automatique, traduction, ASR (mais attention tout ça c’est long)
…
Commencez plutôt petit : voyez si vous pouvez reproduire l’état de l’art en piquant du code qui existe, puis modifiez-le pour arriver à vos fins.
On le répète encore une fois : si vous avez des idées, mais que vous galérez, si vous n’avez pas d’idée, s’il y a un problème contactez moi.