Python und PYPDF - So extrahieren Sie Text aus den Seiten, damit zwischen den Linien Räume bestehen

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

  •  16-09-2019
  •  | 
  •  

Frage

Wenn ich ein Seitenobjekt einer PDF -Seite mit PYPDF und ExtractText () erstelle, dann ist es, dass die Zeilen miteinander verkettet werden. Wenn beispielsweise Zeile 1 der Seite "Hallo" und Zeile 2 "Welt" besagt, ist der resultierende Text von ExtractText () "helloWorld" anstelle von "Hallo Welt". Weiß jemand, wie man das behebt oder Vorschläge für eine Arbeit hat? Ich brauche den Text wirklich, um Leerzeichen zwischen den Zeilen zu haben, weil ich Text Mining in diesem PDF -Text mache und keine Räume zwischen Zeilen töten ...

War es hilfreich?

Lösung

Dies ist ein häufiges Problem bei der PDF -Parsen. Sie können auch nachfolgende Striche rechnen, die Sie in einigen Fällen beheben müssen. Ich habe mir eine Problemumgehung für eines meiner Projekte ausgedacht, die ich hier in Kürze beschreiben werde:

ich benutzte pdfminer XML aus PDF extrahieren und auch verkettete Wörter in der XML gefunden. Ich habe das gleiche PDF wie HTML extrahiert und die HTML kann durch Linien der folgenden Regex beschrieben werden:

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

Die Spannweiten sind absolut positioniert und haben einen Top-Stil, mit dem Sie feststellen können, ob ein Linienverlust passiert ist. Wenn ein Zeilenunterbrechung stattfand und das letzte Wort in der letzten Zeile keinen nachverfolgungen Armaturenbrett hat, können Sie das letzte Wort in der letzten Zeile und das erste Wort in der aktuellen Zeile trennen. In den Details kann es schwierig sein, aber Sie können möglicherweise fast alle Text -Parsen -Fehler beheben.

Außerdem möchten Sie vielleicht eine Wörterbuchbibliothek wie wie verzaubern Finden Sie über Ihren Text Fehler, und wenn das vom Wörterbuch vorgeschlagene Fix wie das Fehlerwort ist, aber mit einem Speicherplatz irgendwo, ist das Fehlerwort wahrscheinlich ein Parsenfehler und kann mit dem Vorschlag von Wörterbüchern behoben werden.

Das Parsen von PDF saugt und wenn Sie eine bessere Quelle finden, verwenden Sie sie.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top