Issu de l'univers du data-journalisme, Tabula est un logiciel permettant d'extraire facilement des données tabulaires issues de fichiers PDF. Il a été développé par des journalistes pour des journalistes. Mais son usage va au-delà de cette profession : étudiants, chercheurs, etc…
Si vous avez déjà essayé de copier-coller des tableaux contenus dans des documents PDF pour les retravailler dans Libre Office par exemple, au format CSV, vous savez à quel point c'est compliqué et chronophage.
Gratuit, Libre (Licence MIT), Tabula fonctionne sous Mac, Windows et Linux. Codé en Ruby, fonctionnant avec la JVM, Tabula est un web-service puissant, disposant de fonctionnalités de détection de tableaux de deux types :
- soit par détection automatique des espaces entre les colonnes (mode stream) ;
- soit par détection automatique des caractères de colonnes (mode lattice).
Tabula a été conçu dans un esprit de maîtrise de ses données. À aucun moment vos fichiers ne voyagent sur internet. Si l'utilisation de Tabula se fait via votre navigateur, il fonctionne bien en local.
Tabula peut également être installé sur un LAN.
Limitation : Les créateurs du logiciel précisent que Tabula est conçu pour les pdf texte. Il ne fonctionne pas sur les pdf images (scan).
Toutefois, par expérience personnelle, de bons résultats peuvent cependant être obtenus sur des scans OCRisés de bonne résolution (400DPI), et au format pdf non-compressés.
Le logiciel sort aujourd'hui dans sa version 1.0.1, corrigeant quelques bugs de la version 1.0
Les nouveautés de la version 1.0
- Nouvelle interface utilisateur ;
- corrections de bugs ;
- ajout du mode de détection Lattice ;
- amélioration de la détection des colonnes non-marquées ;
- la version OS X embarque désormais sa propre version de la JVM.
Aller plus loin
- La page du projet Tabula (1796 clics)
- Le code source de Tabula sur Github (397 clics)
- Tabula sur Twitter (155 clics)
- Notes de version 1.0.1 (223 clics)
# C'est trés bon !
Posté par Graveen . Évalué à 7.
Je l'ai découvert il y a 4 jours, au détour d'un PDF dont je devais extraire des tables.
Après avoir tenté FreeOCR sur ce PDF etc…. Bref seul Tabula a fonctionné.
Bel ouvrage ! ;)
# Usage et adoption
Posté par toctoc1 . Évalué à 10.
Tout d'abord, merci au modérateur et aux relecteurs de ma première dépêche! ;)
J'utilise Tabula tous les jours dans le domaine de la compliance/analyse de relevés bancaires.
Lorsque Tabula échoue ou génère beaucoup de décalage de colonnes - ce qui arrive sur des pdf de 200 pages scannés et ocrisés - je couple Tabula avec OpenRefine pour redresser plus vite mes tableaux.
Ce magic combo Tabula/Refine a vraiment boosté ma productivité au quotidien!
L'équipe de développement fait un boulot assez remarquable.
J'ajoute que tabula est en faite une interface web à un un moteur en ligne de commande : tabula-extractor, et qui peut être scripté. https://github.com/tabulapdf/tabula-extractor
Bref, cet outil est merveilleux et je voulais vous faire partager mon enthousiasme à son sujet.
[^] # Re: Usage et adoption
Posté par Graveen . Évalué à 4.
J'ajoute que dans mon cas, les PDFs ont un watermark, certaines tables sont fragmentées sur plusieurs pages.
Le moteur par défaut n'est pas passé. Le moteur secondaire a trés bien mis en page ces tableaux.
Bref, que du bon.
Effectivement il est un peu mou, mais ce n'est pas - dans mon cas - une contrainte :)
# Extraordinaire
Posté par zyphos . Évalué à 10.
Merci beaucoup pour ce programme. Il fonctionne vraiment pas mal.
Je l'ai testé avec une liste de prix fournisseur, PDF 2,1MB, 77 pages, 760 lignes x 5 colonnes de tableaux.
# Extraction de données ?
Posté par chimrod (site web personnel) . Évalué à 2.
Je suis intéressé sur la manière dont est effectué la détection de tableau dans le pdf, et j'ai beau chercher dans le repo où est chargé le pdf, mais je suis un peu perdu. Je trouve un jar avec les dépendances dans le répertoire jar, mais je ne sais pas où trouver les sources de celui-ci…
Est-ce que tu peux détailler (vite fait) comment tu extrait le tableau ? Pour ceux qui ne connaissent pas le pdf, le langage ne garantie pas que le texte est présent de manière séquentielle dans le fichier, c'est plutôt :
avec tous les problèmes que cela peut poser (l'espace peut ne pas être représentée etc)
(Au passage, puisque ça fonctionne dans une jvm, est-ce que vous avez choisi d'utiliser pdfbox ?)
[^] # Re: Extraction de données ?
Posté par toctoc1 . Évalué à 8.
Je ne suis pas dans l'équipe de dev, juste un utilisateur de la première heure, donc mon expertise technique est limitée sur ce sujet. Je vais essayer de ne pas dire trop de bétises.
Le rendering et tout ce qui tourne autour du pdf (parsing) est géré par PDF.js depuis la version 1.0. Par le passé, c'était JPedal qui fait tout cela mais le changement a eu lieu récemment.
Pour la partie extraction du tableau, Tabula utilise deux algorithmes maisons et effectivement PDFBox.
Plutôt que de reformuler maladroitement l'aspect technique du fonctionnement de Tabula, je préfère te renvoyer vers cette page : https://github.com/tabulapdf/tabula-extractor#how-does-this-work-like-theoretically
Ces deux algo sont basés notamment sur cette publication universitaire.
[^] # Re: Extraction de données ?
Posté par chimrod (site web personnel) . Évalué à 2.
Super ! Merci beaucoup.
# le comble de l'application web
Posté par DerekSagan . Évalué à 10.
Alors déjà: c'est un super outil, je le découvre, et aux premiers tests ça marche nickel et ça va me rendre des services, trop cool :-)
Mais quand même… techniquement… oser faire un exécutable autour d'un jar qui lance une appli web sur 127.0.0.1:8080 et un navigateur, plutôt qu'une bonne vieille appli desktop, c'est-y-pas malheureux… Pourtant au moment de concevoir la pompe à shadoks consistant à lancer le browser. Je déteste les webapps, je suis partisan, mais là c'est un peu le comble…
C'est pas bien grave, l'important c'est la fonction, et elle est cool.
[^] # Re: le comble de l'application web
Posté par toctoc1 . Évalué à 5.
Ah je ne partage pas ton point de vue, mais alors pas du tout. ;)
Cette appli est utilisée par 200 personnes chez nous sans que j'aie à gérer un déploiement/mise à jour sur 200 postes. Elle tourne sur un serveur chez nous.
Ma critique sur ce plan consiste plus à penser que tant qu'à faire une webapp, un petit module de gestion des droits utilisateurs pour créer des espaces privés seraient un plus.
[^] # Re: le comble de l'application web
Posté par DerekSagan . Évalué à 1. Dernière modification le 16 septembre 2015 à 18:49.
Je n'ai pas compris ce qui te faisait penser qu'un déploiement server-side était exclusif d'une application desktop, mais j'ai quand même plussé ton point de vue.
Et puis n'importe comment l'appli est super c'est l'essentiel.
[^] # Re: le comble de l'application web
Posté par steph1978 . Évalué à 7.
Je ne vois pas vraiment le problème.
Ce choix permet:
OpenRefine a fait le même choix.
Finalement, la partie rendu est minime dans cette application, autant ne pas se coupler trop fortement avec la partie graphique et garder un moteur séparé accessible par API.
En bref ça te hérisse le poil et j'aurai un peu la même tendance (vacciné par le ggleries qui devienne ingérable dans un navigateur car trop compliquées) mais dans ce cas, je trouve que c'est un bon choix.
[^] # Re: le comble de l'application web
Posté par DerekSagan . Évalué à -3. Dernière modification le 18 septembre 2015 à 23:43.
C'est vrai que lancer deux fenêtres dont une moche en mode terminal et l'autre qui est un onglet du navigateur, c'est à la fois beau, naturel et ergonomique, et ça fait pro. Et puis c'est pas comme si le premier lancement de l'appli c'était la première impression de l'utilisateur non plus. Je ne vois pas le problème t'as raison.
[^] # Re: le comble de l'application web
Posté par Kerro . Évalué à 8.
Ça n'est pas une application « grand public » destiné à faire mouiller les copines. C'est un outil pour ceux qui bidouillent les données.
La partie esthétique ne me semble pas importante (avis perso, rien de plus). De même que mes tournevis ne sont pas anodisés noir avec manche en imitation carbone.
[^] # Re: le comble de l'application web
Posté par steph1978 . Évalué à 2.
Exactement la réponse que je voulais apporter.
Merci
[^] # Re: le comble de l'application web
Posté par DerekSagan . Évalué à 0.
C'est triste ton avis sur les filles doivent se contenter d'un tournevis rugueux et n'ont même pas le droit de mouiller avant.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.