2015-02-16 11 views
25

Czy istnieją biblioteki open source, które obsługują identyfikację tabeli & ekstrakcji?Wyodrębnij/zidentyfikuj tabele z pythona PDF

przez to znaczy:

  1. zidentyfikować struktury tabeli istnieje
  2. klasyfikować tabeli z jego zawartością
  3. pobiera dane z tabeli w przydatnego formatu wyjściowego np JSON/CSV itd

ja przejrzałem podobne pytania na ten temat i okazało się, co następuje:

  • PDFMiner który rozwiązuje problemu 3, ale wydaje się, że użytkownik ma obowiązek podać do PDFMiner gdzie dla każdej tabeli istnieje tabela (popraw mnie, jeśli się mylę)
  • pdf-table-extract, która próbuje rozwiązać problem 1, ale zgodnie z listą To-Do, nie może obecnie zidentyfikować tabel oddzielonych białymi znakami. To jest problem, ponieważ wszystkie tabele w moich plikach PDF są oddzielone białymi znakami!

Obecnie myślę, że musiałbym poświęcić wiele czasu na opracowanie rozwiązania uczenia maszynowego w celu identyfikacji struktur tabeli z plików PDF. Dlatego wszelkie alternatywne podejścia byłyby więcej niż mile widziane!

+4

Jeśli możesz używać także narzędzi spoza Pythona, możesz rzucić okiem na [tabula] (http://tabula.technology/). – mkl

+0

dzięki. Na pewno się tym zajmiemy. Jestem chętny do znalezienia rozwiązania w python, choć ze względu na szybkość, w której można zapisać Pythona –

Odpowiedz

17

powinno się przyjrzeć się tej odpowiedzi kopalni:

a także rzucić okiem na wszystkich linków zawartych w nim.

Tabula/TabulaPDF jest obecnie najlepszym narzędziem do ekstrakcji tabel, które jest dostępne do skrobania PDF.

+2

tylko aktualizacja skuteczności tej odpowiedzi ... Zhackowałem rozwiązanie razem używając 'tabula' w zeszłym roku do iteracji przez około 100 Pliki PDF, które miały kilka wspólnych formatów. Nie była ładna, ale była najlepsza z najgorszych i zaoszczędzonych znacznych chwil. –

+0

Czy https://pypi.python.org/pypi/pdftable spełni wymagania? –

8

Chciałbym tylko dodać do bardzo pomocny odpowiedź od Kurt Pfeifle - jest tam teraz wrapper Pythona do Tabula, a to wydaje się działać bardzo dobrze do tej pory: https://github.com/chezou/tabula-py

To będzie konwertować tabelę PDF do ramki danych Pandy. Możesz także ustawić obszar w współrzędnych x, y, co jest oczywiście bardzo przydatne w przypadku nieregularnych danych.

15

Po wielu owocnych godzinach eksploracji bibliotek OCR, ramek ograniczających i algorytmów grupowania - znalazłem rozwiązanie tak proste, że sprawia, że ​​chcesz płakać!

Mam nadzieję, że korzystasz z systemu Linux;

pdftotext -layout NAME_OF_PDF.pdf

AMAZING !!

Teraz masz ładny plik tekstowy z wszystkimi informacjami ustawieni w ładne kolumn, teraz jest trywialny do formatowania do csv etc ..

To dla takich momentach, że kocham Linux, ci faceci wymyślił ZADOWALAJĄCE rozwiązania wszystkiego i umieścił to ZA DARMO!

+0

Link do dokumentów? przykłady? Jeśli biblioteka, o której wspomniałeś, jest tą, którą podejrzewam, nie wydaje się spełniać kryteriów dla 1. lub 2. –

+0

Dzięki, to działa bardzo dobrze! :) –

+0

OMG, zadziałało to zadziwiająco dobrze !!! – vy32

Powiązane problemy