Blog d'un jeune (chercheur) entrepreneur en TAL

Aller au contenu | Aller au menu | Aller à la recherche

Sciences & Recherche

Fil des billets - Fil des commentaires

05mai

Web2Day 2013 : données et analyse prédictive

Les 16 et 17 mai prochains se déroulera la 5ème édition du web2day, le festival du numérique dédié à lʼinnovation et au Web. L'évènement est organisé par lʼassociation Atlantic 2.0, le réseau des acteurs du Web et de lʼinnovation numérique en Pays de la Loire, et prendra place à Stereolux, sur lʼîle de Nantes, pour la deuxième année consécutive.

Lors de cette édition j'aurai l'immense plaisir d'animer la partie du thème sur l'enjeux des données dédiée à l'analyse prédictive, ou «Comment peut-on utiliser les données du moment pour prédire les données à venir ?». L'autre partie du thème sur l'opportunité économique des données est gérée par Claire de Libertic, ultime experte de l'open data.

Lire la suite

21nov.

Travaux Pratique TALN - Contexte syntaxique

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.

Lire la suite

14nov.

Travaux Pratique TALN - Morphologie et contexte syntaxique

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.

Lire la suite

24oct.

Travaux Pratique TALN - Le lexique

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.

Lire la suite

05avr.

Présentation aux Rendez-vous de la recherche à la Cantine de Nantes

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 !

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.

Lire la suite

17mar.

I'm going to defend my PhD thesis !

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.

Lire la suite

17mar.

Visualiser un espace à plusieurs dimensions en 3D

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.

Lire la suite

12janv.

Cours de TALN (3) : n-grammes

Voilà le troisième et dernier opus du cours dont je parlais ici. J'avais présenté le premier opus ici et le second ici.

Lire la suite

09janv.

Cours de TALN (2) : morphologie et étiquetage des rôles grammaticaux

Voilà le second opus du cours dont je parlais ici. J'avais présenté le premier opus ici.

Lire la suite

09janv.

Python et Tree Tagger

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.

Lire la suite

06janv.

PPDA accusé de plagiat... une opportunité pour ma thèse ?

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 ?

Lire la suite

04janv.

Petit script pour découvrir les expressions rationnelles

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.

Lire la suite

03janv.

Cours de TALN (1) : expressions rationnelles

Voilà, suite à mon précédent billet, je me suis décidé à me lancer dans l'écriture du cours que je dois donner demain.

Lire la suite

03janv.

Un cours de TALN parfait ?

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 !

Lire la suite

20sept.

UIMA insights : le doigt dans le workflow

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.

Lire la suite

08sept.

Un rapide tokeniseur en mots pour le français

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.

Lire la suite

26août

Calculer le recouvrement de deux textes avec NLTK

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.

Lire la suite

01avr.

Parcours des annotations couvertes par une autre annotation

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.

Lire la suite

16mar.

Tests unitaires pour UIMA avec UUTUC

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).

Lire la suite

- page 1 de 3