Les Tables pas détecté par tabula et de camelot

0

La question

J'ai essayé d'extraire des tableaux à partir de fichiers Pdf qui ne sont pas au bon format que je pense. Les tableaux de ces fichiers ont un format de tableau mais pas fermé correctement avec verical frontières. enter image description here Je vais joindre l'exemple de fichier pdf et de sortie avec les deux bibliothèques. Quand j'ai essayé d'utiliser la table pour la table de détection, un vide datadrame est retourné sur toutes les pages en pdf.

entrez 0 pour les pages uniques, 1 pour tous, 2 pour page spécifique: 2 entrez le numéro de page: 25 pas de tables trouvé sur cette page par tabula.

Et quand j'utilise camelot il n'y a même pas de réponse quand je l'utilise flovor='lattice'

entrez 0 pour les pages uniques, 1 pour toutes les pages, 2 pages dans les tableaux sont détectés par tabula, 3 pour des pages spécifiques: 3 entrez 0 pour un treillis ou d'1 pour stream: 0 entrez le numéro de page: 25 pas de tables trouvé sur cette page par camelot.

et quand j'utilise flovor='stream', Je reçois un dataframe que a chaque ligne de lire ligne par ligne, avec séparées par une tabulation des données, mais il faudra inclure du texte normal dans la mesure où dataframe.

entrez 0 pour les pages uniques, 1 pour toutes les pages, 2 pages dans les tableaux sont détectés par tabula, 3 pour des pages spécifiques: 3 entrez 0 pour le treillis ou 1 pour les flux: 1 entrez le numéro de page: 25 enter image description here

J'ai juste besoin d'un moyen efficace pour détecter la table et d'en extraire les mêmes données vertical joignant la table de lignes ne sont pas présents. Les deux tabula et camelot bibliothèques fonctionnent très bien si la table est dans le bon format délimitée par des lignes verticales et horizontales.

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

La meilleure réponse

0

Cette méthode peut vous aider à: https://camelot-py.readthedocs.io/en/master/user/advanced.html#specify-column-separators

Vous pouvez trouver spécifier la verticale de l'élément de séparation à camelot en passant par les coordonnées x, vous devez d'abord utiliser le ".plot()" méthode de camelot pour voir le tableau à l'intérieur du pdf et de prendre note du x coordonnées de l'endroit où vous souhaitez la verticale séparateurs à puis de les transmettre à comme ci-dessous:

# 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

Les Tables pas détecté par tabula et de camelot

J'ai été récemment à extraire de la table à partir de PDF.

Tabula et camelot n'a pas fonctionné pour moi non plus, mais pdfplumber m'résultat requis.

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

Dans d'autres langues

Cette page est dans d'autres langues

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