Tabula ve camelot ile algılanmayan tablolar

0

Soru

Düşündüğüm uygun biçimde olmayan pdf'lerden tablolar çıkarmaya çalıştım. Bu pdf'lerdeki tablolar bir tablo biçimine sahiptir, ancak doğru kenarlıklarla düzgün şekilde kapatılmamıştır. enter image description hereÖrnek pdf'yi ekleyeceğim ve her iki kütüphaneyle de çıktı alacağım. Tablo algılaması için tabula'yı kullanmaya çalıştığımda, pdf'deki tüm sayfalarda boş bir veri çerçevesi döndürülür.

tek sayfalar için 0, tümü için 1, belirli sayfa için 2 girin: 2 sayfa numarasını girin: 25 bu sayfada tabula tarafından tablo bulunamadı.

Ve camelot kullandığımda kullandığımda aynı yanıt yok flovor='lattice'

tek sayfalar için 0, tüm sayfalar için 1, tablolardaki sayfalar için 2 tabula tarafından algılanır, belirli sayfalar için 3 girin: 3 kafes için 0 veya akış için 1 girin: 0 sayfa numarasını girin: 25 bu sayfada camelot tarafından tablo bulunamadı.

ve kullandığımda flovor='stream' Sekmeyle ayrılmış verilerle satır satır okunan her satıra sahip bir veri çerçevesi alıyorum, ancak normal metni de bu veri çerçevesine dahil edecek.

tek sayfalar için 0, tüm sayfalar için 1, tablolardaki sayfalar için 2 tabula tarafından algılanır, belirli sayfalar için 3 girin: 3 kafes için 0 veya akış için 1 girin: 1 sayfa numarasını girin: 25 enter image description here

Tabloyu algılamak ve dikey çevreleyen tablo çizgileri yoksa aynı verileri ayıklamak için etkili bir yola ihtiyacım var. Tablo dikey ve yatay çizgilerle çevrelenmiş uygun biçimdeyse, hem tabula hem de camelot kitaplıkları iyi çalışıyor.

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

En iyi cevabı

0

Bu yöntem size yardımcı olabilir: https://camelot-py.readthedocs.io/en/master/user/advanced.html#specify-column-separators

Dikey ayırıcıyı camelot'a x koordinatlarını ileterek bulabilirsiniz, önce " kullanmalısınız.pdf içindeki tabloyu görmek ve dikey ayırıcıların olmasını istediğiniz x koordinatlarını not etmek için camelot'taki plot()" yöntemi aşağıdaki gibi iletilir:

# 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

Tabula ve camelot ile algılanmayan tablolar

Son zamanlarda PDF'den tablo çıkarmak için çalışıyorum.

Tabula ve camelot da benim için çalışmadı ama pdfplumber bana gerekli sonucu verdi.

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

Diğer dillerde

Bu sayfa diğer dillerde

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