82 votes

Parsing PDF en utilisant Python - extraction de textes formatés et en clair

Je suis à la recherche d'une bibliothèque PDF qui me permettra d'extraire le texte d'un document PDF. J'ai regardé PyPDF, et il peut extraire le texte d'un document PDF très bien. Le problème est que si le document contient des tableaux, le texte des tableaux est extrait en ligne avec le reste du texte du document. Cela peut être problématique car cela produit des sections de texte qui ne sont pas utiles et qui ont l'air confuses (par exemple, beaucoup de chiffres mélangés ensemble).

Je voudrais extraire le texte d'un document PDF, à l'exclusion de tout tableau et formatage spécial. Existe-t-il une bibliothèque qui fait cela ?

61voto

Etienne Points 6176

Vous pouvez également jeter un coup d'œil à PDFMiner (ou pour les anciennes versions de Python, voir PDFMiner y PDFMiner ).

L'une des caractéristiques intéressantes de PDFMiner est que vous pouvez contrôler la manière dont il regroupe les parties de texte lors de leur extraction. Vous pouvez le faire en spécifiant l'espace entre les lignes, les mots, les caractères, etc. En modifiant ces paramètres, vous pourrez peut-être obtenir ce que vous voulez (cela dépend de la variabilité de vos documents). PDFMiner peut également vous donner l'emplacement du texte dans la page, il peut extraire des données par Object ID et d'autres choses encore. Alors, creusez dans PDFMiner et soyez créatif !

Mais votre problème n'est vraiment pas facile à résoudre car, dans un PDF, le texte n'est pas continu, mais constitué d'un grand nombre de petits groupes de caractères positionnés de manière absolue dans la page. L'objectif du PDF est de conserver la mise en page intacte. Il n'est pas orienté vers le contenu mais vers la présentation.

1 votes

PDFMiner semble intéressant. Je pourrais utiliser sa sortie XML, puis l'analyser pour ignorer ce que je ne veux pas. Cela nécessite encore un post-traitement important, mais pour l'instant, c'est probablement la meilleure solution. Merci.

0 votes

@Etienne, cela peut-il être utilisé si le PDF comporte également des caractères d'autres langues ?

0 votes

Il devrait fonctionner avec les caractères des autres langues. La documentation le mentionne : Les langues CJK et le support des scripts d'écriture verticale. La meilleure façon d'être sûr, c'est de le tester !

0voto

akaihola Points 10007

C'est un problème difficile à résoudre car des PDF visuellement similaires peuvent avoir une structure très différente selon la façon dont ils ont été produits. Dans le pire des cas, la bibliothèque devrait agir comme un OCR. D'un autre côté, le PDF peut contenir une structure et des métadonnées suffisantes pour faciliter la suppression des tableaux et des figures, ce dont la bibliothèque peut être adaptée pour en tirer parti.

Je suis à peu près sûr qu'il n'existe pas d'outils open source qui résolvent votre problème pour une grande variété de PDF, mais je me souviens avoir entendu parler de logiciels commerciaux prétendant faire exactement ce que vous demandez. Je suis sûr que vous les rencontrerez en cherchant sur Google.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X