Les séances précédentes ont été consacrées à l'analyse lexicale et morphologique. Il est temps de se détacher de la dimension lexicale des textes pour tendre vers la dimension syntaxique.
Sciences & Recherche
21nov.
Travaux Pratique TALN - Contexte syntaxique
23:42 - Par Fabien Poulard - Sciences & Recherche - un commentaire
14nov.
Travaux Pratique TALN - Morphologie et contexte syntaxique
18:55 - Par Fabien Poulard - Sciences & Recherche - 10 commentaires
Dans le TP précédent nous nous sommes limité à l'analyse des mots en-dehors de tout contexte. Il s'est alors agi de découper un texte en mots puis de compter ces derniers.
Dans ce second TP, nous allons nous intéresser à la morphologie des mots (leur forme textuelle). Nous explorerons notamment deux procédés de normalisation morphologique : la racinisation et la lemmatisation. Nous découvrirons ensuite que le contexte des mots, combiné à leur morphologie, peut nous apprendre bien des choses.
24oct.
Travaux Pratique TALN - Le lexique
22:38 - Par Fabien Poulard - Sciences & Recherche - 12 commentaires
Malgré notre projet de création d'entreprise, je tenais à continuer à enseigner le TALN à l'Université. Outre l'intérêt pragmatique du chef d'entreprise qui souhaite ainsi repérer les éléments prometteurs à recruter, l'enseignement est une des meilleures manières de prendre du recul sur un domaine.
Cette année je compte mettre de côté UIMA pour me concentrer sur l'expérimentation. J'ai donc décidé de me tourner vers Python, mon langage de cœur, et les bibliothèques NLTK et scikit-learn.
Pour ce premier TP, je compte faire réfléchir les étudiants sur l'analyse lexicale : découpage d'un texte en mots, calculer une distribution sur un document, puis un corpus, filtrer les mots qui participent peu à l'expression du sens et visualiser un texte à partir de son lexique.
05avr.
Présentation aux Rendez-vous de la recherche à la Cantine de Nantes
20:45 - Par Fabien Poulard - Sciences & Recherche - 3 commentaires
Aujourd'hui, J'ai joué le jeu des Rendez-vous de la Recherche (RdvR pour les intimes) à La Cantine de Nantes. J'y ai présenté mon parcours de jeune chercheur, mon équipe et mon domaine de recherche : le Traitement Automatique des Langues (TAL).
Les Rendez-vous de la Recherche sont organisés par Jean Bézivin et Jean-Pierre Guédon, L'objectif de ces présentations informelles est de faire se rencontrer le monde de la recherche et de l'industrie. Le chercheur présente ses travaux, son équipe et son domaine. Les industriels piochent dans le flot d'information les éléments qui pourraient permettre de résoudre certaines de leurs problématiques et échangent sur ce sujet avec le chercheur. Ceci peut déboucher sur des collaborations, des initiatives...
Le support de ma présentation est disponible sur scribd.
17mar.
Je soutiens ma thèse !
17:00 - Par Fabien Poulard - Sciences & Recherche - 3 commentaires
Je soutiendrai ma thèse le Jeudi 24 mars 2011 à 9h30 dans la salle 3 du LINA.
Non seulement la séance est publique, mais de plus vous êtes tous cordialement invité à y assister. Le contenu est détaillé dans la suite du billet.
17mar.
I'm going to defend my PhD thesis !
16:30 - Par Fabien Poulard - Sciences & Recherche - un commentaire
I will defend my PhD thesis on March, 24th 2011 at 9:30 am in room 3 of LINA.
Not only is the defense public, but you are welcome to attend. The thesis content is detailed in the rest of this bill.
17mar.
Visualiser un espace à plusieurs dimensions en 3D
00:03 - Par Fabien Poulard - Sciences & Recherche - 2 commentaires
L'analyse en composantes principales (ACP) permet de calculer les hyperplans d'un espace vectoriel tel qu'une projection sur ces plans conserve un maximum d'entropie. Cette approche permet entre autres choses de projeter des espaces ayant un très grand nombre de dimensions dans des espaces de dimensions réduites tout en limitant la perte d'information.
L'utilisation combinée de scikit-learn et de matplotlib permet de produire très rapidement des réductions de dimension et de les visualiser. J'utilise ces bibliothèques pour visualiser dans un espace à 2 ou 3 dimensions des espaces vectoriels correspondant à des représentations de documents à l'aide de traits particuliers.
12janv.
Cours de TALN (3) : n-grammes
00:00 - Par Fabien Poulard - Sciences & Recherche - un commentaire
09janv.
Cours de TALN (2) : morphologie et étiquetage des rôles grammaticaux
22:59 - Par Fabien Poulard - Sciences & Recherche - un commentaire
09janv.
Python et Tree Tagger
19:30 - Par Fabien Poulard - Sciences & Recherche - 17 commentaires
Tree Tagger est un outil d'étiquetage des rôles grammaticaux disponible pour plusieurs plateformes et pour plusieurs langues. Si sa licence n'est pas libre, il peut être utilisé dans un cadre de recherche ou bien pour l'éducation.
Il existe un projet de wrapper Python pour cet outil qui pourrait m'être utile pour mon cours de TALN.
06janv.
PPDA accusé de plagiat... une opportunité pour ma thèse ?
14:05 - Par Fabien Poulard - Sciences & Recherche - un commentaire
C'est l'un des sujets chauds de cette rentrée hivernale : il semblerait que le livre à paraître sur Hemingway de PPDA publié par les Éditions Arthaud soit un plagiat. C'est le quotidien L'Express qui a levé le lièvre, rapidement relayé par bien d'autres.
Cette histoire serait une très belle illustration pour conclure ma thèse sur la dérivation de texte ! Si PPDA ou les éditions d'Arthaud voulaient bien m'envoyer une version du livre, je pourrais la confronter à l'aide de mes algorithmes sur la biographie signée Peter Griffin et parue en français aux éditions Gallimard. Mais parle-t-on bien de plagiat et qu'est-ce que cela signifie ?
04janv.
Petit script pour découvrir les expressions rationnelles
15:21 - Par Fabien Poulard - Sciences & Recherche - aucun commentaire
Comme j'en discutais dans mon billet précédent, mon premier cours cette année a principalement porté sur les expressions rationnelles. J'ai tiré deux bilans de ce cours :
- il faut que les étudiants manipulent au maximum
- il faut qu'ils comprennent mieux ce qui se passe dans les moteurs d'expressions rationnelles pour corriger leurs erreurs
J'ai donc écrit un script Python pour les accompagner dans leur découverte des expressions rationnelles.
03janv.
Cours de TALN (1) : expressions rationnelles
16:54 - Par Fabien Poulard - Sciences & Recherche - un commentaire
Voilà, suite à mon précédent billet, je me suis décidé à me lancer dans l'écriture du cours que je dois donner demain.
03janv.
Un cours de TALN parfait ?
00:55 - Par Fabien Poulard - Sciences & Recherche - 12 commentaires
Depuis le début de mon doctorat j'ai eu la chance de pouvoir dispenser plusieurs enseignements autour du TALN. Malheureusement je n'ai jamais été responsable du module et je n'ai jamais tellement eu la liberté d'enseigner comme je le souhaitais. Personnellement je n'ai pas aimé la façon dont le TALN m'a été enseigné et par conséquent je n'aime pas l'enseigner de la même façon qu'il me l'a été.
Quelle aurait été le cours de TALN que j'aurais aimé avoir ? Certainement quelque chose mieux ancré dans le TALN d'aujourd'hui et orienté vers les méthodes et les applications !
20sept.
UIMA insights : le doigt dans le workflow
00:08 - Par Fabien Poulard - Sciences & Recherche - 2 commentaires
Les opérations logicielles en traitement automatique des langues sont souvent très importantes, très coûteuse, mais également parallélisables. C'est l'un des avantages indéniables d'UIMA, par le choix d'une architecture par composants, de permettre de paralléliser les traitements assez simplement.
La programmation d'un composant UIMA doit donc se faire avec en tête l'idée qu'il pourrait être déployé pour un traitement parallélisé. Lorsque comme moi on n'a pas cette habitude, on se heurte rapidement à des petits obstacles techniques. Dans le cas présent, il s'agissait de développer un composant qui exportait les résultats d'un calcul dans un fichier CSV.
08sept.
Un rapide tokeniseur en mots pour le français
00:10 - Par Fabien Poulard - Sciences & Recherche - 12 commentaires
Parmi les addons distribués avec UIMA, le composant WhitespaceTokenizer permet de découper les textes en "mots" en s'appuyant sur les espaces et autres blancs. Malheureusement si cette approche est acceptable pour l'anglais, elle est beaucoup plus problématique pour le français. Le découpage en mots n'est pas une tâche forcément évidente et qui nécessiterait un réel travail. Partagé entre la nécessité d'une tokenisation correcte et le peu de temps qui me reste pour terminer ma thèse, voici une proposition suffisamment acceptable pour mes besoins.
26août
Calculer le recouvrement de deux textes avec NLTK
00:11 - Par Fabien Poulard - Sciences & Recherche - 13 commentaires
Mon travail de thèse, sobrement intitulée Détection de dérivations de texte, consiste à évaluer la probabilité qu'un texte dérive d'un autre. Une des applications, que je déteste mais qui a l'avantage de parler à la plupart des gens, est la détection de plagiat.
Une approche, naïve mais simple à mettre en œuvre, consiste à calculer le nombre de mots que deux textes partagent. Voici une proposition d'implémentation d'une telle technique tirant partie de la bibliothèque NLTK.
01avr.
Parcours des annotations couvertes par une autre annotation
11:11 - Par Fabien Poulard - Sciences & Recherche - 10 commentaires
Lorsque l'on travaille avec Apache UIMA et que l'on ajoute un nombre important d'annotations, il arrive un moment où l'on va vouloir filtrer certaines de ces annotations en fonction d'autres. Ainsi, assez couramment on éprouve le besoin de devoir récupérer des annotations qui couvrent la même zone de texte qu'une autre. Par exemple :
- récupérer les mots contenus dans une phrases ;
- récupérer les paragraphes dans un document ;
- …
Il y a au moins deux approches dans Apache UIMA qui permettent de répondre à ce besoin : le subiterator et le FSMatchConstraint.
16mar.
Tests unitaires pour UIMA avec UUTUC
15:45 - Par Fabien Poulard - Sciences & Recherche - 11 commentaires
La qualité du code développé dans le cadre des activités de recherche scientifique n'est pas toujours aussi bon qu'on pourrait l'espérer. Outre la nécessité (évidente à mes yeux) d'ouvrir le codes des activités scientifiques financées par l'État et les collectivités territoriales, il est également nécessaire de suivre de bonnes pratiques de programmation. L'écriture de tests unitaires et leur exécution régulière est une de ces bonnes pratiques.
Je présente dans ce billet un cas d'utilisation de la bibliothèque UUTUC, présentée lors du Workshop sur l'Ingénierie Logiciel, les Tests et l'Assurance Qualité pour le Traitement des Langues Naturelles (SETQA-NLP 2009), pour tester l'implémentation d'une bibliothèque développée et utilisée dans le cadre de ma thèse (tddts-uima-shingling).
13mar.
Corpus des discours de Nicolas Sarkozy (MÀJ)
23:08 - Par Fabien Poulard - Sciences & Recherche - 2 commentaires
Dans ce billet, j'avais distribué un corpus des discours de Nicolas Sarkozy. Depuis, le président a bien entendu prononcé un certain nombre de nouveaux discours. J'ai complété le corpus constitué à l'époque en conséquence.
« billets précédents - page 1 de 3