python et pypdf - comment extraire le texte des pages afin qu'il y ait des espaces entre les lignes

StackOverflow https://stackoverflow.com/questions/1672466

  •  16-09-2019
  •  | 
  •  

Question

actuellement, si je fais un objet page d'une page pdf avec pypdf et extractText (), ce qui se passe est que les lignes sont enchaînées ensemble. Par exemple, si la ligne 1 de la page dit « bonjour » et la ligne 2 dit « monde », le texte résultant est revenu de extractText () est « helloworld » au lieu de « Bonjour tout le monde. » Est-ce que quelqu'un sait comment résoudre ce problème, ou avez des suggestions pour un travail autour? J'ai vraiment besoin du texte d'avoir des espaces entre les lignes parce que je fais l'exploration de texte sur ce texte pdf et ne pas avoir des espaces entre les lignes, il tue ....

Était-ce utile?

La solution

Ceci est un problème commun avec l'analyse pdf. Vous pouvez également attendre des tirets arrière que vous devrez corriger dans certains cas. Je suis venu avec une solution de contournement pour un de mes projets que je vais décrire ici peu:

pdfminer pour extraire XML de PDF et aussi trouvé des mots concaténés dans le fichier XML. Je tirai le même PDF en HTML et le code HTML peut être décrit par des lignes de l'expression rationnelle suivante:

<span style="position:absolute; writing-mode:lr-tb; left:[0-9]+px; top:([0-9]+)px; font-size:[0-9]+px;">([^<]*)</span>

Les portées sont en position absolue et ont un style haut que vous pouvez utiliser pour déterminer si un saut de ligne est arrivé. Si un saut de ligne est passé et le dernier mot sur la dernière ligne ne dispose pas d'un tableau de bord de fuite, vous pouvez séparer le dernier mot sur la dernière ligne et le premier mot de la ligne actuelle. Il peut être difficile dans les détails, mais vous pourriez être en mesure de corriger presque toutes les erreurs d'analyse de texte.

En outre, vous pouvez lancer une bibliothèque dictionnaire comme enchanter sur votre texte , trouver des erreurs et si le correctif proposé par le dictionnaire est comme le mot d'erreur, mais avec un espace quelque part, le mot d'erreur est susceptible d'être une erreur d'analyse et peut être fixé à la suggestion de dictionnaires.

PDF Parsing suce et si vous trouvez une meilleure source, utilisez-le.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top