Tabelas não detectado com tábua e camelot

0

Pergunta

Eu tentei extrair tabelas de PDFs que não estão no formato adequado que eu acho. As tabelas estes PDFs tem um formato de tabela, mas não fechado corretamente com verical fronteiras. enter image description here Vou anexar o pdf de exemplo e de saída com duas bibliotecas. Quando eu tentei usar o tabula para detecção de tabela, um espaço em branco datadrame é devolvido em todas as páginas em pdf.

introduza 0 para páginas únicas, de 1 para 2 para a página específica: 2 introduza o número de página: 25 não há tabelas, consultar esta página por tábua.

E quando eu uso camelot não há mesmo nenhuma resposta quando eu uso flovor='lattice'

introduza 0 para páginas únicas, 1 para todas as páginas 2 páginas, em tabelas, são detectados por tábua, 3 para páginas específicas: 3 introduza 0 para treliça ou 1 para fluxo: 0 introduza o número de página: 25 não há tabelas encontradas nesta página de camelot.

e quando eu uso flovor='stream', Eu recebo uma dataframe que tem cada linha de ler linha por linha separados por tabulação de dados, mas vai incluir texto normal, bem como no que dataframe.

introduza 0 para páginas únicas, 1 para todas as páginas 2 páginas, em tabelas, são detectados por tábua, 3 para páginas específicas: 3 introduza 0 para treliça ou 1 para fluxo: 1 introduza o número de página: 25 enter image description here

Eu só precisa de uma forma eficiente para detectar tabela e extrair os mesmos dados se vertical colocando linhas da tabela não estão presentes. Tanto tabula e camelot bibliotecas estão funcionando bem, se a tabela está no formato adequado, delimitadas por linhas verticais e horizontais.

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

Melhor resposta

0

Este método pode ajudar você a: https://camelot-py.readthedocs.io/en/master/user/advanced.html#specify-column-separators

Você pode encontrar especificar o separador vertical para camelot, passando coordenadas x, primeiro você deve usar o ".enredo()" método em camelot para ver a tabela no interior do pdf e anote as coordenadas x, onde você deseja que o vertical seperators para ser, em seguida, transmiti-los, como abaixo:

# 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

Tabelas não detectado com tábua e camelot

Eu tenho sido recentemente de trabalho para extrair tabela de PDF.

Tabula e camelot não funcionou para mim, mas pdfplumber me resultado necessário.

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

Em outros idiomas

Esta página está em outros idiomas

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