Tabele, które nie zostały wykryte za pomocą tabula i camelot

0

Pytanie

Próbowałem wyjąć tabel z plików PDF, które, jak mi się wydaje, nie mają odpowiedniego formatu. Tabele w tych plikach PDF są w formacie tabeli, ale nie są zamknięte prawidłowo z właściwymi granicami. enter image description herePrzyczepię wzór pdf i dane wyjściowe z obiema bibliotekami. Gdy próbowałem użyć tabula do wykrywania tabel, na wszystkich stronach pdf wraca puste ramki danych.

wprowadź 0 dla poszczególnych stron, 1 dla wszystkich, 2 dla konkretnej strony: 2 wprowadź numer strony: 25 w tabeli na tej stronie nie znaleziono w табулам.

I gdy używam camelot, to samo dzieje się bez odpowiedzi, gdy używam flovor='lattice'

wprowadź 0 dla poszczególnych stron, 1 dla wszystkich stron, 2 dla stron w tabelach, zdefiniowanych w tabeli 3 dla konkretnych stron: 3 wpisz 0, aby kratki lub 1 dla przepływu: 0 wprowadź numer strony: 25 na tej stronie camelot nie znaleziono żadnych tabel.

i kiedy używam flovor='stream', Pojawia się ramka danych, w której każdy wiersz odczytany wiersz po wierszu z danymi rozdzielanymi kartami, ale w ten ramka danych zostanie również włączony zwykły tekst.

wprowadź 0 dla poszczególnych stron, 1 dla wszystkich stron, 2 dla stron w tabelach, zdefiniowanych w tabeli 3 dla konkretnych stron: 3 wpisz 0, aby kratki lub 1 dla przepływu: 1 wprowadź numer strony: 25 enter image description here

Mi po prostu potrzebny skuteczny sposób wykrywania tabeli i pobierania tych samych danych, jeśli pionowe zawierające wiersze tabeli brakuje. Biblioteki tabula i camelot pracują normalnie, jeśli tabela ma poprawny format, więzień w pionowe i poziome linie.

nlp pdf python python-camelot
2021-11-22 15:08:39
2

Najlepsza odpowiedź

0

Ta metoda może pomóc: https://camelot-py.readthedocs.io/en/master/user/advanced.html#specify-column-separators

Można określić pionowy separator do camelot, przekazując współrzędne x, najpierw należy użyć metody ".plot()" w camelot, aby zobaczyć tabelę w środku pdf i zaznacz współrzędne x, w których chcesz, aby były pionowe przegrody, a następnie przekazać je, jak pokazano poniżej:

# to get the x-coordinates
tables = camelot.read_pdf('your_pdf.pdf')
camelot.plot(tables[0], kind='text').show()

#to pass the x-coordinates
camelot.read_pdf('your_pdf.pdf', flavor='stream', columns=['x1,x2']) 
2021-11-22 15:52:19
-1

Tabele, które nie zostały wykryte za pomocą tabula i camelot

Ostatnio pracowałem nad wyjęciem tabeli z pliku PDF.

Табула i camelot też nie działały na mnie, ale pdfplumber dał mi żądany wynik.

import pdfplumber
pdf = pdfplumber.open(filepath)
table = pdf.pages[1].extract_table(table_settings=
{"vertical_strategy": "text", "horizontal_strategy": "text"})
df = pd.DataFrame(table, columns=table)
df.to_csv(outfile2, mode='a', index=False)
2021-11-27 11:30:02

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................