web-dev-qa-db-fra.com

Avancé PDF Analyse utilisant Python (extraire du texte sans tableaux, etc.)]: quelle est la meilleure bibliothèque?

Je cherche une bibliothèque PDF qui me permettra d'extraire le texte d'un document PDF. J'ai consulté PyPDF et cela peut extraire le texte d'un document PDF très bien. Le problème, c'est que s'il existe des tableaux dans le document, le texte dans les tableaux est extrait en ligne avec le reste du texte du document. Cela peut être problématique car cela produit des sections de texte inutiles et qui semblent brouillées (par exemple, de nombreux nombres écrasés).

Je cherche quelque chose d'un peu plus avancé. Je voudrais extraire le texte d'un PDF document, à l'exclusion de) de tableaux et de mises en forme spéciales. Existe-t-il une bibliothèque qui effectue cela? Ou suis-je forcé faire du post-traitement sur le texte de sortie pour se débarrasser de ces sections?

79
Mike Cialowicz

Vous pouvez également consulter PDFMiner , un autre analyseur PDF en Python.

Une caractéristique intéressante de PDFMiner est que vous pouvez contrôler la façon dont il regroupe les parties de texte lors de leur extraction. Pour ce faire, vous devez spécifier l'espace entre les lignes, les mots, les caractères, etc. Ainsi, vous pouvez peut-être modifier ce que vous souhaitez, ce que vous souhaitez (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 ID d'objet et d'autres éléments. 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 composé de nombreux petits groupes de caractères placés de manière absolue dans la page. Le but de PDF est de conserver la mise en page. Il n’est pas orienté contenu, mais présentation.

57
Etienne

C'est un problème difficile à résoudre car les fichiers PDF similaires peuvent avoir une structure très différente selon leur mode de production. Dans le pire des cas, la bibliothèque devrait essentiellement se comporter en OCR. D'autre part, le fichier PDF peut contenir une structure et des métadonnées suffisantes pour permettre de supprimer facilement les tableaux et les figures, dont la bibliothèque peut être adaptée pour tirer parti.

Je suis à peu près sûr qu'il n'y a pas d'outils open source permettant de résoudre votre problème pour une grande variété de fichiers PDF, mais je me souviens d'avoir entendu parler d'un logiciel commercial prétendant faire exactement ce que vous demandez. Je suis sûr que vous les rencontrerez en googlant.

0
akaihola