Blog d'un jeune (chercheur) entrepreneur en TAL

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

26janv.

Interroger OpenStreetMap en Python avec OsmApi

Le projet OpenStreetMap permet de générer de très jolies cartes qui illustreront prochainement Wikipédia. Mais l'intérêt du projet ne s'arrête pas à la création des cartes. Il s'agit bel et bien, à l'instar de Wikipédia, de créer une base de données géographique libre de droit.

Ces données sont accessibles au travers d'une API à qui sait où chercher. Je présente dans ce billet l'utilisation d'une bibliothèque Python permettant d'interroger cette API développer par un collègue Nantais.

Lire la suite

25janv.

OpenStreetMap : requêtes avancées avec l'XAPI

OpenStreetMap est à la cartographie ce que Wikipédia est à l'encyclopédie. Le plus souvent les utilisateurs se contentent des cartes générées que ce soit pour imprimer un plan ou bien à des fins de navigation. Lorsque l'on souhaite accéder aux données du projet il faut habituellement utiliser l'API qui est assez limitée en fonctionnalités et en surtout en masse de données accessibles.

L'XAPI permet de récupérer des données plus vastes et filtrées.

Lire la suite

07janv.

Nettoyage des pages Web avec Web-Harvest

Dans un projet en cours, j'ai besoin d'un outil de nettoyage des pages Web. Par nettoyage des pages Web, j'entends l'isolement et l'extraction des éléments de la page qui constituent son contenu et le filtrage du reste (menus, publicité, scripts...). J'ai notamment proposé avec mon encadrant un sujet de stage à destination des M1 ALMA de l'Université de Nantes. (Le sujet a été écrit en quelques minutes et je me rends compte de plusieurs fautes, veuillez m'en excuser).

Lors de l'écriture de ce sujet de stage, j'ai découvert Web-Harvest, un outil d'extraction de contenu depuis le Web.

Lire la suite

17juil.

Du bon usage des ressources dans UIMA

Les ressources sont un aspect de UIMA que j'ai peu abordé et que j'ai très peu utilisé, sauf récemment lorsque l'on a entraîné un modèle français HMM pour le HMM Tagger (il faut que j'écrive un billet à ce sujet d'ailleurs). Pourtant les ressources, et leur rôle, sont assez mal compris au sein d'UIMA.

Lire la suite

13juil.

Installer Subclipse pour Eclipse Helios

Pour Debian Squeeze, Eclipse Helios n'est pas encore packagée. Je métais contenté de Galileo jusqu'à maintenant mais Subclipse a, pour une raison que je n'arrive toujours pas à m'expliquer, cessé de fonctionner. Après multiples vaines tentatives de retrouver un environnement de travail fonctionnel, j'ai aboutit à Eclipse Helios + Subclipse.

Lire la suite

29juin

"Le réseau n'est pas accessible" incongrue dans Eclipse (ou n'importe quelle application Java)

Depuis ma dernière mise-à-jour dans Debian Squeeze, je me suis aperçu qu'Eclipse (ou bien n'importe quelle application Java) n'était plus en mesure de se connecter au réseau. L'application retourne inéluctablement le message "Le réseau n'est pas accessible", quand bien même toutes les autres applications se connectent sans problème.

Apparemment ce comportement est dû à l'utilisation exclusive d'IPv6 dans Java (JVM Sun ou OpenJDK indifféremment)... ce qui sur les réseaux toujours en IPv4 ne mène à rien, et correspond effectivement à un réseau inaccessible.

La solution consiste à passer l'option -Djava.net.preferIPv4Stack=true à la JVM à son lancement. Pour Eclipse, il suffit d'ajouter cette ligne au fichier eclipse.ini (/etc/eclipse.ini) pour Debian.

La discussion concernant ce bug chez Debian : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560142

22juin

Debian : échec du lancement des applications graphiques en root

Je viens tout juste de quitter Ubuntu qui commençait sérieusement à m'agacer avec ses versions pas vraiment finies et ses mises-à-jour de version qui plantent tout. Alors je suis revenu sous la distribution reine : Debian.

Le premier petit accroc que je viens de rencontrer concerne le lancement de l'outil update-manager. Lorsque que je le lance à partir de ma zone de notification, il m'invite à taper mon mot de passe afin de passer root et de s'exécuter, puis se crache lamentablement avec un Failed to run update-manager as user root, suivi d'un petit Failed to communicate with gksu-run-helper.

Le problème vient de l'utilisation de su pour l'authentification, il suffit de le remplacer par sudo. Pour ce faire :

  1. Lancez l'outil de configuration gksu-properties (à partir d'une console)
  2. Placez l'entrée Authentication mode sur sudo
  3. Fermez, c'est corrigé :)

Je ne sais pas si c'est un problème dû à quelques fichiers de configurations restant d'Ubuntu dans mon home, mais c'est un peu gênant. Il faudrait peut-être le remonter aux développeurs Debian.

02avr.

51e billet... un peu de fun : mettre en place une fausse webcam sous Ubuntu

Pour mon 51e billet sur ce blog, je me suis dit que j'allais faire quelque chose d'un peu plus détendu que d'habitude. Voici un petit tutoriel pour installer une fausse webcam sous Ubuntu Karmic.

À quoi ça sert une fausse webcam ? Potentiellement à plusieurs choses :

  • Faire passer le flux de votre vraie webcam qui n'est pas reconnue par Flash dans une fausse reconnue elle par Flash (cherchez pas ^^)
  • Balancer votre dernier film de vacance en streaming à votre mamie par la webcam, sans mettre en place de choses compliquées
  • Faire croire à votre rencard internet que vous êtes Bard Pitt (ou Angelina Jolie... c'est selon le rencard)

Lire la suite

09mar.

Utiliser Bazaar au travers de Web DAV

Dans le cadre de mon cours sur les outils pour le travail collaboratif, je fais travailler tous mes étudiants ensembles sur un même projet. Ces derniers sont alors invités (fortement) à utiliser plusieurs outils dans le cadre de leur collaboration : messagerie instantanée (IRC), wiki et gestionnaire de tickets (Trac) et un gestionnaire de version décentralisé (bazaar).

Avant je leur faisais utiliser subversion qui a un module Apache dédié et qui est pris en charge par défaut dans Trac. La nouveauté de cette année c'est l'utilisation de Bazaar...

Lire la suite

19fév.

Un peu de sécurité : renforcer SSH

Après les annonces récentes concernant la sécurité des systèmes informatiques (ici ou ), je me suis dit que ce serait pas mal de m'intéresser un peu à la sécurité de mon serveur.

Je vais commencer par SSH étant donné qu'il s'agit du moyen le plus classique pour entrer sur le serveur.

Lire la suite

19déc.

Quel est le mot français pour "workflow" ? "mail" ? "camping-car" ?

Vous trouvez que bon nombre de vos amis, vous compris, utilisez un nombre important d'anglicismes et autres mots importés de langues étrangères bien que vous soupçonniez l'existence d'un mot équivalent en Français. Vous aimeriez un outil intégré à votre traitement de texte favori du type du correcteur orthographique ? Le correcteur terminologique français est fait pour vous !

Lire la suite

24sept.

Faire fonctionner la Macbook Remote Control sous Ubuntu

Si comme moi vous av(i)ez choisi un Macbook pour la qualité du matériel et viré Mac OS X pour mettre un Linux, alors vous aimeriez peut-être également utiliser votre télécommande Macbook pour contrôler vos applications ?

Lire la suite

24sept.

Instancier une classe à partir de son nom

La chose que je préfère dans le paradigme objet, c'est la capacité d'introspection (apparemment le terme réflexion est plus apprécié en français). Dans ce billet je présente une astuce Java que j'avais déjà utilisé dans ce billet pour instancier une classe dont on ne connaît que le nom.

Lire la suite

21juil.

Créer une copie locale de Wikipedia dans une base PostgreSQL

Wikipédia est une ressource formidable en termes de connaissances ! La connaissance du monde bien sûr par son rôle d'encycolpédie, mais également une connaissance du langage : il s'agit très certainement du plus grand corpus libre de textes récents et variés. Qu'il s'agisse des articles plus ou moins spécialisés de l'encyclopédie, des ressources lexicales du Wiktionary ou encore des ressources journalistiques de Wikinews.

Si l'on veut tirer profit de ces ressources pour faire de la recherche, il est très rapidement intéressant d'avoir une copie locale de Wikipédia. Ceci économise les serveurs de la fondation et offre des performances bien supérieures.

Cette article expose pas à pas les étapes nécessaires à la création d'un miroir Wikipédia en local dans une base PostgreSQL. L'opération est presque triviale pour un miroir MySQL mais PostgreSQL offre à mon avis plus de flexibilité pour de meilleures performances.

Lire la suite

07mai

UIMA : Spécification du type d'annotation par paramètres

UIMA (Unstructured Information Management Architecture) est une architecture pour la gestion des données non structurées en passe de devenir un standard. J'utilise l'implémentation proposée par Apache dans le cadre de ma thèse sur la détection automatique de reprise pour tous mes traitements sur corpus.

Je publie dans cet article une petite astuce bien pratique qui permet de manipuler des annotations d'un type qui n'est pas connu a priori mais passé en paramètre d'un composant.

Lire la suite

29janv.

Synchroniser son travail de thèse entre son portable et le labo

En tant que doctorant on ne décide pas forcément quand est-ce que l'on se met au travail ... et on est donc amené à travailler sur une autre machine que celle du laboratoire. Unison est un logiciel très pratique qui permet de synchroniser son travail entre plusieurs machines !

Lire la suite

29déc.

Qtopia : sauvegarder les contacts au format VCF

J'ai fait l'acquisition d'un OpenMoko il y a quelques mois ... plutôt par conviction et pour "participer". Je ne pensais pas réellement utiliser le téléphone comme tel, mais plutôt comme une plateforme de tests. Malheureusement (ou heureusement) le téléphone portable que j'utilisais est mort peu de temps après mon acquisition... j'utilise donc l'OpenMoko tous les jours, avec plus ou moins de "plaisir". Afin de profiter des améliorations, bien souvent nécessaires, je flash et test de nouvelles images régulièrement ... et régulièrement je perds mon carnet d'adresses, mes sms, ...

Lassé, j'ai écrit un script python permettant de générer un fichier vcard contenant tous les contacts enregistrés dans le répertoire Qtopia (Qtextended ou Om2009.xx) à partir des informations du wiki.

Le fonctionnement est assez simple, le script prend deux paramètre :

  • le chemin vers le fichier sqlite de la base de données Qtopia
  • un nom de fichier de sortie (extension vcf pour la future importation)
shell$ ./dbtovcf.py Applications/Qtopia/qtopia_db.sqlite addressbook.vcf

Il suffit alors de charger le dit fichier à l'aide de l'application addressbook sur l'OpenMoko et suivre les indications sur son écran :

root@om-gta02:~# export DISPLAY=:0
root@om-gta02:~# export LD_LIBRARY_PATH=/opt/Trolltech/Qtopia/lib
root@om-gta02:~# /opt/Trolltech/Qtopia/bin/addressbook addressbook.vcf

Pour obtenir le script, cliquer ici !

21nov.

LaTeX : environnement exemple pour illustrer ses propos

LaTeX est sans conteste le système d'édition le plus pratique pour publier des articles scientifiques. Dans un article TAL, il est souvent utile d'illustrer ses propos à l'aide d'exemples textuels : actes langagiers réels. Voici un environnement LaTeX que j'ai confectionné dans ce but.

Lire la suite

08nov.

XUbuntu + Sugar sous QEmu

Ce billet décrit comment j'ai mis en place une démonstration de Sugar dans une machine virtuelle QEmu tournant sous XUbuntu. Pour le reste de ce billet, le terme machine hôte fera référence à la machine sur laquelle s'exécute QEmu et machine virtuelle la machine simulée par QEmu.

J'ai utilisé pour cette démonstration une Ubuntu Studio Hardy 64 bits comme machine hôte et une XUbuntu Hardy 32 bits comme machine virtuelle.

Installation de QEmu sous Ubuntu

QEmu étant empaqueté et disponible dans les dépôts Ubuntu, son installation se fait comme à l'habitude en utilisant apt-get ou aptitude, ou encore le gestionnaire graphique d'installation d'applications : Synaptic.

$ sudo aptitude install qemu

Afin de profiter de accélération matérielle, il est intéressant (pour les architectures i386 ou x84) d'installer le module noyau kqemu. La procédure d'installation est un peu plus complexe car il est nécessaire de compiler le module et de le charger en mémoire. La procédure est entièrement décrite sur le site d'Alter Ego. En voici un résumé rapide :

$ sudo aptitude install module-assistant kqemu-common kqemu-source
$ sudo module-assistant prepare
$ sudo module-assistant auto-install kqemu-source

Une fois le module compilé et installé, il ne reste plus qu'à le charger et en permettre l'accès à tous :

$ sudo modprobe kqemu
$ sudo chmod 666 /dev/kqemu

QEmu devrait désormais pouvoir tirer parti de l'accélération matérielle pour l'émulation du processeur. Si tout fonctionne correctement, la différence est notable.

Installation de XUbuntu sous QEmu

Pour installer XUbuntu sous QEmu il va nous falloir une image ISO de XUbuntu, ainsi qu'un disque virtuel. L'image ISO s'obtiend facilement sur le site officiel de la distribution. Pour ce qui est de la création du disque virtuel, nous allons utiliser l'utilitaire qemu-img plutôt que dd comme présenté dans le tutoriel d'Ubuntu

$ qemu-img create -f qcow ubuntuimage 5G

La commande ci-dessus permet ainsi de créer un disque virtuel de 5Go nommé ubuntuimage. Le format de disque choisi est qcow. Il s'agit du format de QEmu. Il permet notamment de limiter le gaspillage d'espace disque sur la machine hôte en ne requisitionnant que l'espace réellement utilisé dans le disque virtuel.

Une fois le disque virtuel créé, et l'image ISO téléchargée, il ne reste plus qu'à lancer QEmu en lui indiquant :

  • le disque virtuel à utiliser ;
  • de considérer l'image ISO comme cdrom ;
  • de démarrer à partir du cdrom ;
  • qu'il ne doit pas utiliser plus XMo de RAM (dans notre cas 128).

Encore une fois, toute la procédure, et notamment ce qui concerne l'utilisation de kqemu est décrit sur le site d'Alter Ego. Voici un résumé :

$ qemu-system-x86_64 -hda ubuntuimage -cdrom xubuntu-8.10-alternate-i386.iso -boot d -m 128 -kernel-kqemu

Le reste ne diffère en rien d'une installation standard de XUbuntu.

Installation de Sugar sous XUbuntu

L'installation de Sugar sous Ubuntu et son utilisation par défaut est très bien décrite sur le site d'OLPC. En résumé et pour ceux qui ne lisent pas l'anglais ou qu'ils veulent aller directement à l'essentiel, la démarche est la suivante.

Dans un premier temps, lancez votre XUbuntu, ouvrez un terminal et ajoutez le dépôt logicielles suivant au fichier /etc/apt/sources.list, et mettez à jour votre liste de logiciels disponibles à l'aide de aptitude update :

deb http://ppa.launchpad.net/sugarteam/ubuntu hardy main

La condition sinequanon à une bonne mise à jour est l'accès de la machine virtuelle à l'internet. Si vous êtes perdu sur ce point, n'hésitez pas à vous référer aux documentations présentes sur internet. Une fois la mise-à-jour des paquets disponibles effectuée, vous devriez pouvoir installer l'environnement éducatif du projet OLPC : http://wiki.laptop.org/go/Sugar/lang-fr :

$ sudo aptitude install sugar python-gobject

De nombreuses dépendances sont nécessaires à Sugar, l'installation peut donc demander un certain temps.

Une fois l'installation terminée, déconnectée de votre session et reconnectez-vous en ayant pris soin de sélectionner la session Sugar. Petit truc pratique, pour faire apparaître le cadre de l'environnement de travail, il suffit de déplacer le pointeur de souris dans un coin de l'écran. Vous trouverez une documentation permettant de découvrir Sugar sur le site d'OLPC.

Pour arrêter Sugar, il faut se placer dans la vue personnelle (le rond avec un seul point au centre dans le cadre), faire un clique-droit sur l'icône du bonhomme et choisir "Arrêter".

Démonstration

Voici quelques copies d'écran de Sugar tournant dans QEmu :

Connexion Sugar : choix du nom Connexion Sugar : choix de couleur du profil Environnement Sugar : journal d'activités

02sept.

Google Chrome ... bluffant ?

Google chrome fait son buzz ... le nouveau navigateur estampillé du G bleu fait son coming out ce soir sur le web. D'ici là tout le monde y va de son article. Une petite revue de presse et un résumé des faits les plus intéressants en attendant la sortie officielle ;)

Lire la suite

- page 2 de 3 -