mercredi 20 juin 2012

Extraire le texte de documents HTML en créant des annotations à la place des balises

Traiter du SGML (e.g. HTML) ou du XML (i.e. SGML davantage contraint) est une activité commune dans nos chaînes de traitement TAL (Traitement Automatique des Langues). Par ailleurs, souvent les traitements que nous souhaitons réaliser (segmentation en phrases, en mots, étiquetage morpho-syntaxique, reconnaissance d'entités nommées...) ne fonctionnent que sur du texte simple (plain text).

1. Tika MarkupAnnotator vs. uima-connectors XML2CAS

A ma connaissance, il y a au moins deux composants UIMA "librement" disponibles pour 
  1. extraire le texte d'un document SGML sans en modifier ses offsets 
  2. transformer les balises d'un document SGML en annotations UIMA au dessus des zones de texte couvertes.
Il s'agit du Tika MarkupAnnotator [1] et du uima-connectors XML2CAS [3]. 
  • Pour chacun d'eux l'on peut spécifier la vue à analyser et la vue dans laquelle il faut produire le texte.
  • Chacun d'eux produit des annotations correspondantes aux balises. Le système de types est évidement différent dans sa forme même si l'on retrouve globalement dans le fond la même information. 
  • XML2CAS travaille seulement avec de l'XML et vous autorise à spécifier les noms des éléments que vous voulez transformer en annotations afin de restreindre la taille du CAS
  • MarkupAnnotator offre la possibilité de traiter de l'XML mal formée (i.e. du SGML et en particulier HTML). Cela relativement simplement en ajoutant la bibliothèque du TagSoup parser dans le classpath [5].
Le premier est disponible dans les Annotator addons de Apache UIMA [2] et le second requiert de récupérer la bibliothèque uima-common pour fonctionner (au final [3] et [4]).


2. Quelques détails sur mon test
Personnellement j'ai testé les deux au sein d'un projet java Eclipse en déclarant les dépendances  suivantes dans mon classpath (en plus de celles de UIMA):
  • UIMA_HOME/addons/annotator/TikaAnnotator/lib/tika-core-0.7.jar
  • UIMA_HOME/addons/annotator/TikaAnnotator/lib/tika-parsers-0.7.jar
  • UIMA_HOME/addons/annotator/TikaAnnotator/lib/uima-an-tika.jar
  • chemin/vers/votre/lib/uima-common-v120111.jar
  • chemin/vers/votre/lib/uima-connectors-v111205.jar
  • chemin/vers/votre/lib/tagsoup-1.2.1.jar
J'ai ajouté la UIMA nature au projet et ajouté le répertoire desc aux build path pour me faciliter la tâche. J'ai créé un descripteur d'Analysis Engine que j'ai changé en aggregate afin de rajouter, les composants que je souhaitais tester, dans ma pipeline (section aggregate du descripteur) : 
MarkupAnnotator et connectors.xml.XML2CASAE.
J'ai surchagé les paramètres des deux composants (section parameter) et n'ai pas oublié de les configurer (section parameter settings). 
Puis j'ai déclaré les types en sortie (section capabilities).
Enfin j'ai lancé ma chaîne à l'aide du Document Analyser. Lorsque j'ai testé sur du HTML je n'avais pas retiré le composant XML2CAS de ma pipeline.



jeudi 12 avril 2012

Sujet de thèse en Traitement Automatique des Langues et Multilinguisme

English version below.

-------------------------------------------------------------------------------

Sujet de thèse en Traitement Automatique des Langues et Multilinguisme

L'équipe du Traitement Automatique du Langage Naturel (TALN) du Laboratoire
Informatique de Nantes Atlantique (LINA UMR CNRS 6241) à l'Université de Nantes
propose un sujet de thèse en Informatique dans les domaines du Traitement
Automatique des Langues et du Multilinguisme.

*Titre:*
Analyse des structures discursives des textes et alignement de terminologies
multilingues en corpus comparables ; pour une modélisation discursive de la
notion de contexte.

*Résumé : *
La traduction automatique est l'une des activités de recherche les plus
ambitieuses de notre temps. Ce travail de thèse propose de s'attaquer à l'un de
ses enjeux, à savoir l'"alignement de terminologies multilingues" en corpus
comparables, et ce en explorant de nouvelles méthodes de mise en correspondance
des termes, à savoir à l'aide d'"analyses des structures discursives des
textes". L'approche état de l'art consiste à établir une mise en correspondance
des termes en mesurant la similarité de leurs contextes d'apparition à l'aide
de dictionnaires bilingues préexistants. Les problèmes fondamentaux de cette
approche sont qu'elle repose sur une modélisation très pauvre du contexte
d'apparition d'un terme (un sac de mots apparaissant autour des termes
analysés) et qu'elle présuppose l'existence de ressources lexicales bilingues
pour être réalisée.
Ce travail a pour objectif d'expérimenter des contextes de termes définis sur
la base de résultats d'analyses du discours ainsi que réfléchir à la définition
d'une notion de contexte discursif plus en adéquation avec la tâche.
Ce sujet émerge dans la continuité du projet européen TTC et du projet ANR
MeTRICC dont l'équipe TALN assure les coordinations.

*Mots clefs :*
Traduction, Alignement de terminologies multilingues, Analyse et modélisation
des structures du discours, Corpus comparables

*Profil et compétences recherchés: *
M2 Recherche informatique ou école d'ingénieurs
Bon niveau en anglais
Bonnes notions en apprentissage automatique
Bonnes connaissances en programmation Java/Python
Affinités avec le logiciel libre et le développement collaboratif

*Procédure de candidature* :
La date butoir de réception des candidatures est  le 20 Avril 2012 mais
la position restera ouverte jusqu'à ce qu'elle soit attribuée.
La thèse démarrera en Octobre 2012 et sera financée par une allocation ministérielle.
Les candidats intéressés sont invités à prendre contact le plus tôt possible
et à envoyer les informations suivantes : une lettre de motivation incluant votre
positionnement par rapport aux compétences attendues, un CV, un relevé
de notes avec classement au Master (au moins pour la période écoulée), un
lien vers un site web présentant le programme de votre master et des lettres
de recommandations de vos encadrants scientifiques.
Cette thèse pourra être précédée d'un stage de master recherche financé
sur le même thème. Prendre contact.

*Contact : *
Nicolas Hernandez et Emmanuel Morin (prenom.nom à univ-nantes.fr)

*Plus d'information sur le sujet de thèse :*
http://www.edstim.fr/these/sujets-de-these/informatique
http://e.nicolas.hernandez.free.fr/pub/rec/12 




-------------------------------------------------------------------------------
Researcher  position available: PhD in Natural Language Processing

The University of Nantes (West coast of France) offers an opening for a 3-year
PhD position at the LINA Computer Sciences Laboratory in the NLP Team (TALN).

LINA TALN leads research in several NLP domains such as term extraction,
syntactic and semantic analysis, and develops several applications (e.g.
machine translation, opinion mining, plagiarism detection).
LINA TALN participates in various projects founded by regional, national
and European sources.
http://www.lina.univ-nantes.fr/

*Subject:*
Discourse structure analysis and multilingual terminology alignment from comparable corpora.
Toward a discourse definition of the notion of context

*Brief description: *
Multilingual terminology alignment from comparable corpora is one of the major
issue of the automatic translation problem. To tackle this issue, the baseline
approach proposes to align terms whose contexts are considered as similar
thanks to bilingual dictionaries. This approach presents some drawbacks since
the context model is quite simple (a bag of words occurring around the
considered term) and because it requires external resources for performing.
The current study aims at exploring a new approach for building term contexts.
The idea is to use a more linguistically inspired approach: in particular to
use discourse analysis both for providing semantically delimited text area
around term occurrences and rhetorically dependent utterances in relation to
the utterance where a term occurs. The work will start by trying out
state-of-art discourse analysis methods, then it will go into the definition of
a discourse context notion related to the task in depth. This research will
pursue the works accomplished in the national and European projects MeTRICC
and TTC.

*Topics :*
Machine translation, Multilingual terminology alignment, Discourse analysis,
Comparable corpora

*Qualifications:
The ideal candidate would have:
- (or soon receive) a Master degree in computer science/engineering
- a background in NLP and/or machine learning
- programming skills in JAVA/Python
- experience in open source development (appreciated)
- good English proficiency and ability to learn French (if appropriate)

*Application procedure:*
The application deadline is April 20, 2012 , but consideration of candidates
will continue until the position is filled. It is expected to start on October 2012.
Candidates interested in the position are asked to contact Nicolas Hernandez
and Emmanuel Morin (firstname.lastname at univ-nantes.fr) with the following
documents: A letter of motivation outlining your interest in the specific project,
a curriculum vitae, at least two recommendation letters from a senior
researcher/professor who can judge your potential as a future PhD student.

The program will be funded by a grant from the French government.
Median annual earnings are between 20,000 and 24,000 Euros.

*More information on:*
http://www.edstim.fr/these/sujets-de-these/informatique
http://e.nicolas.hernandez.free.fr/pub/rec/12 

Master Informatique spécialité ATAL : Apprentissage et Traitement Automatique de la Langue

A la rentrée 2012/2013 ouvrira à l'université de Nantes un Master Informatique spécialité ATAL (Apprentissage et Traitement Automatique de la Langue).

Le Master ATAL viser à former des spécialistes de l'apprentissage automatique aux particularités des applications informatiques relevant du traitement automatique de la langue (TAL). Il s'agit notamment de pouvoir mettre en oeuvre des nouvelles applications prenant en compte des masses de données complexes et hétérogènes.

La formation se veut pratique et fondamentale. Le but est de former en deux ans des étudiants issus de filières informatiques à un ensemble de techniques d'apprentissage automatique et de traitement automatique de la langue qui sont au coeur des applications en ingénierie des langues (comme en recherche d'information, en aide à la traduction, en analyse d'opinions).

La formation s'inscrit dans une dynamique internationale en s'appuyant sur des personnalités scientifiques reconnues dans leurs domaines de compétences.

Plus d'information sur atal.univ-nantes.fr

jeudi 8 mars 2012

Sélection d'articles de ACL'2011 et EMNLP'2011

Les articles suivant ont été sélectionnés pour leurs accointances avec le traitement automatique du discours.

Le programme de ACL'2011 est disponible à
http://aclweb.org/anthology-new/P/P11/

  • P11-1100 [bib]: Ziheng Lin; Hwee Tou Ng; Min-Yen Kan Automatically Evaluating Text Coherence Using Discourse Relations

et EMNLP'2011 http://aclweb.org/anthology-new/D/D11/

  • D11-1002 [bib]: Li Wang; Marco Lui; Su Nam Kim; Joakim Nivre; Timothy Baldwin Predicting Thread Discourse Structure over Technical Web Forums
  • D11-1015 [bib]: Lanjun Zhou; Binyang Li; Wei Gao; Zhongyu Wei; Kam-Fai Wong Unsupervised Discovery of Discourse Relations for Eliminating Intra-sentence Polarity Ambiguities
  • D11-1028 [bib]: Amit Dubey; Frank Keller; Patrick Sturt A Model of Discourse Predictions in Human Sentence Processing

mercredi 22 février 2012

Listes de diffusion en TAL et disciplines cousines

Ce post sert de complément et de correction à la liste que j'avais constituée des listes de diffusion en Traitement Automatique des Langues (TAL) et disciplines cousines (Ingénierie des connaissances, ingénierie du document, sciences cognitives et linguistiques) : Corpora-list, Elsnet-list, LN, LN-FORUM, RTP-DOC, Info-ic, parislinguists, RISC, Bull-I3, ARTIST, Orbital, Discours, Linguist

RTP-DOC


EGC - extraction et de la gestion de connaissances
  • http://www.egc.asso.fr/13-FR-Liste_de_diffusion

RISC  - relais d'information sur les sciences de la cognition
  • http://www.risc.cnrs.fr 
  • Cette liste est modérée. Pour envoyer un message à la liste. : Pourinfos [ à ] risc.cnrs.fr 

chercheurs_sdl - sciences du langage
  • abonnement https://listes.univ-metz.fr/wws/info/chercheurs_sdl 
  • https://listes.univ-metz.fr/wws/compose_mail/chercheurs_sdl

lundi 16 janvier 2012

Animation des rencontres "Outils et instruments logiciels pour le TAL" au sein de l'équipe TALN

Depuis septembre 2010, j'anime au sein de l'équipe des rencontres "Outils et instruments  logiciels pour le TAL" connues aussi sous le nom de "réunions logiciels".

J'utilise ce post pour rappel du principe et les commentaires pour présenter les différentes interventions qui ont lieu.

La motivation de ces rencontres sont l'échange de connaissances
et l'entraide pour la prise en main d'un nouveau logiciel.

L'objectif pour le présentateur est simple : faire connaître un
logiciel et donner un aperçu de l'utilisation de celui-ci. La présentation prend la forme d'une
démonstration d'un cas d'utilisation. Suivant le logiciel, cela prend
15 à 30 minutes questions comprises.

Il faut prendre logiciel (au sens très large) [2] : cela peut concerner un
développement personnel, une bibliothèque, une application, un analyseur
particulier de données...

Je vous invite à vous proposer pour présenter un logiciel que vous pensez être
pertinent pour l'équipe (même si vous n'en connaissez que quelques fonctions),
ainsi qu'à émettre des demandes de démonstration. Je me propose de
coordonner pour trouver un intervenant dans le cas de demandes. On pourra
discuter plus tard sur les modalités d'ouverture de ces réunions à des
participants hors équipe.

Les rencontres sont au rythme d'une demi-heure tous les mois voire toutes les 6 semaines.
Elles sont planifiées sur l'agenda de l'équipe (aussi consultable en ligne sur [1]).

[1] Agenda des réunions de l'équipe TALN
[2] Instrument, outil, utilitaire et ressource
http://www.revue-texto.net/Corpus/Publications/Habert/Habert_Portrait.html#2.1.

jeudi 5 janvier 2012

Définition d'un descripteur primitif d'Analysis Engine



La dernière étape consister à créer un descripteur indiquant au framework UIMA comment utiliser le composant. En particulier il définit la classe métier de l'Annotator, le Type System manipulé, les Types qui sont utilisés comme input et ceux qui seront des output. C'est aussi ici que sont déclarés les paramètres et les ressources partagées utilisés si il y a lieu.

La création du descripteur du composant est facilitée à travers Eclipse et les plugins installés. Dans le répertoire desc/opinionRecognizer du projet (ou seulement desc si vous n'avez pas packagé votre projet) :
  • Créer le fichier descripteur du composant, opinionRecognizerAE.xml en cliquant dessus avec le bouton droit et New - Other - UIMA - Analysis Engine Descriptor File.
  • Sur la première page (onglet Overview accessible au bas du cadre) spécifier le nom de la classe qui implémente votre code métier (i.e. opinionRecognizer.OpinionRecognizerAE).
  • Sous l'onglet Type System, ajouter (Add) par nom (by name) le type system défini pour votre composant (i.e. desc/opinionRecognizer/opinionRecognizerTS.xml).
  • Enfin sous l'onglet Capabilities, spécifiez les types des annotations qui doivent apparaître en sortie (i.e. SentenceAnnotation, TokenAnnotation et Opinion).
Si en cliquant sur ce fichier pour l'ouvrir, vous n'accédez qu'à son contenu XML, alors demandez d'ouvrir avec le Component Descriptor Editor en cliquant sur le fichier avec le bouton droit.