textract / extraction_preprocessing.py
Italo Xesteres
Adiciona função preprocess_text em extraction_preprocessing
acad2dd
Raw
History Blame Contribute Delete
1.52 kB
import re
import pdfplumber
import tabula
def extract_and_preprocess(pdf_path):
"""
Extrai o texto (via pdfplumber) e as tabelas (via tabula) de um arquivo PDF.
Realiza pré-processamento do texto, removendo quebras de linha e espaços extras,
e segmenta o texto em sentenças, atribuindo IDs.
Retorna uma lista de dicionários com sentenças e uma lista de DataFrames (tabelas).
"""
text = ""
with pdfplumber.open(pdf_path) as pdf:
for page in pdf.pages:
page_text = page.extract_text() or ""
text += page_text + "\n"
# Remove quebras de linha e espaços extras
text = re.sub(r"\s+", " ", text).strip()
raw_sentences = re.split(r'[.?!;]\s+', text)
list_of_sentences = []
char_offset = 0
for i, sent in enumerate(raw_sentences):
sent_id = f"S{i+1}"
current_sentence = sent.strip()
list_of_sentences.append({
"sentence_id": sent_id,
"text": current_sentence,
"global_start": char_offset,
"global_end": char_offset + len(current_sentence)
})
char_offset += len(current_sentence) + 2
tables = tabula.read_pdf(pdf_path, pages="all", multiple_tables=True)
return list_of_sentences, tables
def preprocess_text(text):
"""
Realiza o pré-processamento do texto:
- Remove quebras de linha e espaços extras.
Retorna o texto processado.
"""
text = text.strip()
text = re.sub(r"\s+", " ", text)
return text