Extraire le texte de PDF avec Python

Dans le cadre de notre projet d’analyse de la production scientifique de Télécom ParisTech, je récupère beaucoup de fichiers PDF. Pour en analyser le contenu, j’ai notamment besoin d’en récupérer le texte brut. Par ailleurs, comme indiqué dans le billet Des services pour l’analyse bibliographique, j’ai fait le choix d’appuyer nos développements sur des web services.

Je vais montrer ici comment je développe un service REST d’extraction de texte brut à partir de PDF en Python que je déploie sur Heroku (note: je développe sous Windows 10).

Note: je suis fraîchement convertit à Python; mon code n’a rien d’exemplaire et mérite surement d’être nettoyé/amélioré, mais il m’a suffit comme preuve de faisabilité

Créer un dossier pour mon service

Créer un environnement virtuel pour le développement local avec la commande

Créer un fichier requirements.txt avec le contenu suivant

Le fichier indique le package pdfminer pour le traitement de fichiers pdf.

(voir http://spapas.github.io/2014/06/30/rest-flask-mongodb-heroku/ pour des explications génériques sur les dépendances du projet)

Dans le dossier qui contient le fichier requirements.txt, créer un dossier pdf_service. Dans ce dossier, créer deux fichiers: __init__.py and resources.py.

__init__.py initialise l’application Flask qui va être créée

Et le fichier resources.py

Pour démarrer un serveur local

Pour les tests, j’ai créé le fichier runserver.py

lancé avec la commande

Pour créer un dépot git vide

Pour ajouter les fichiers locaux dans le git

Attention à créer un  .gitignore en indiquant les fichiers et directories à ignorer pour ne pas surcharger la communication

Pour alimenter le dépot git local

Qui va servir de référence pour les échanges avec Heroku

Pour se connecter à Heroku

puis les informations de votre compte

Pour détruire un service sur Heroku

Par exemple, pour se faire de la place, supprimer des tests devenus inutiles…

heroku apps:destroy –app <nom du service à détruire>

Pour créer le service sur heroku

heroku create

Pour pousser le développement local vers heroku

(par défaut, provoque le déploiement d’un Python 2.7 et des dépendances décrites dans requirements.txt)

Pour lancer une instance du service

Pour voir ce qui tourne

Renommer le service

Utilisation de la ligne de commande pour renommer le service (voir https://devcenter.heroku.com/articles/renaming-apps)

Commande pour changer le nom du service (à partir de celui généré automatiquement par les outils heroku) et du dépot git associé (à faire dans le dossier où a été créé le service)

 

A propos Moissinac

Maitre de conférence à Télécom Paris, Département Image, Données, Signal - Groupe Multimédia Jean-Claude Moissinac a mené des recherches sur les techniques avancées pour la production, le transport, la représentation et l’utilisation des documents multimédia. Ces travaux d'abord ont évolué vers la représentation sémantique de données liées au multimédia (process de traitement de médias, description d'adaptations de média, description formelle d'interactions utilisateurs). Aujourd'hui, les travaux portent sur la constitution de graphes de connaissances. Principaux axes de recherche actuel : représentations sémantiques de connaissances, constitution de graphes de connaissances, techniques d'apprentissage automatique sur ces graphes
Ce contenu a été publié dans Cuisine traitement de textes, SemBib. Vous pouvez le mettre en favoris avec ce permalien.

2 réponses à Extraire le texte de PDF avec Python

  1. Ping : Des services pour l’analyse bibliographique | Objets Numériques et Sémantique

  2. Ping : Utiliser NLTK sur Heroku avec Python | Objets Numériques et Sémantique

Les commentaires sont fermés.