Como resumir artigos em uma tabela comparativa e revisar cada célula
A IA pode transformar vários resumos de artigos em uma tabela comparativa compacta, mas cada célula deve poder ser rastreada até o texto de origem. Este guia usa três pequenos resumos sintéticos, pede a um assistente de IA que monte a tabela e verifica cada célula antes de aceitá-la.
Conteúdo verificado 2026.09.21Inclui arquivos de exemplo
Ver o sumário
A tradução foi feita com IA. Confira o código, as unidades e os valores junto com o original. A revisão por falantes nativos de cada idioma ainda não foi concluída. English
Para quem éPara estudantes e pesquisadores que usam um assistente de chat com IA para comparar vários artigos e querem confirmar que cada célula da tabela é sustentada pelos resumos fornecidos.
Preparação
Python 3.12
Conhecimento básico sobre resumos de artigos e arquivos CSV
01Por que verificar cada célula de uma tabela comparativa
Uma tabela comparativa é útil porque organiza vários artigos na mesma estrutura: objetivo, método, dados, resultado e limitação. O risco é que um assistente de chat com IA faça todas as linhas parecerem igualmente completas mesmo quando os resumos não fornecem o mesmo nível de detalhe. Um resumo pode nomear um conjunto de dados, outro pode descrever apenas uma amostra e um terceiro pode não mencionar nenhuma limitação. Preencher essas lacunas com texto plausível produz uma tabela organizada, mas com evidência fraca.
A regra mais segura é simples: cada célula factual deve ser sustentada por texto do resumo fornecido. Se o resumo não disser algo, a célula deve indicar Not stated em vez de inferir a informação a partir de práticas comuns ou do título do artigo. Isso é especialmente importante quando a tabela será usada depois em uma revisão de literatura, proposta de pesquisa ou discussão sobre escolha de método.
02Use três pequenos resumos sintéticos
Os resumos abaixo são exemplos sintéticos criados apenas para este tutorial. Eles são intencionalmente curtos para que cada informação extraída possa ser conferida manualmente.
Artigo
Resumo sintético
P1
We predict beam deflection using linear regression from 120 finite-element samples. The model achieved a mean absolute error of 0.18 mm on a 30-sample test set. The study considers only linear-elastic cases.
P2
A random forest surrogate was trained on 500 simulated bracket designs using thickness and hole diameter as inputs. Prediction error for maximum von Mises stress was below 4% for 90% of the validation cases.
P3
We compare Gaussian process regression and a neural network for estimating plate displacement from 200 simulation cases. Gaussian process regression produced lower RMSE than the neural network. Training time increased substantially as the dataset grew.
03Peça à IA uma tabela comparativa com restrições
Não peça apenas um resumo dos artigos. Defina as colunas e limite a IA às informações explicitamente presentes nos resumos. Também exija um campo de evidência para cada célula factual, para que as afirmações possam ser verificadas depois.
Atribua IDs estáveis aos resumos, como P1, P2 e P3.
Defina colunas fixas: method, data size, inputs or target, reported result e limitation.
Exija Not stated quando o resumo não fornecer a informação solicitada.
Peça uma citação curta ou trecho de suporte para cada célula factual.
Diga à IA para não inferir detalhes experimentais, configurações do modelo ou limitações a partir de conhecimento geral.
04Inspecione uma tabela típica produzida pela IA
Uma tabela razoável identificaria linear regression para P1, random forest para P2 e tanto Gaussian process regression quanto neural network para P3. Ela deveria registrar 120 finite-element samples para P1, 500 simulated bracket designs para P2 e 200 simulation cases para P3. No entanto, algumas colunas devem permanecer deliberadamente incompletas. Por exemplo, P2 não declara uma limitação, então essa célula deve permanecer como Not stated.
Paper
Method
Data size
Inputs or target
Reported result
Limitation
P1
Linear regression
120 finite-element samples
Beam deflection
MAE 0.18 mm on a 30-sample test set
Only linear-elastic cases
P2
Random forest
500 simulated bracket designs
Thickness and hole diameter to maximum von Mises stress
Error below 4% for 90% of validation cases
Not stated
P3
Gaussian process regression and neural network
200 simulation cases
Plate displacement
Gaussian process regression had lower RMSE
Training time increased as dataset grew
A tabela é concisa, mas não deve ser aceita apenas porque todas as linhas parecem completas. Cada célula ainda precisa de uma ligação direta com o texto do resumo.
05Salve a tabela da IA junto com a evidência
Para a verificação automática, salve um CSV simplificado chamado paper_table.csv. Cada linha factual deve ter as colunas paper_id, field, value e evidence. Em evidence, coloque o trecho exato que a IA afirma sustentar o valor. Uma linha com Not stated pode deixar evidence vazio.
paper_id
field
value
evidence
P1
method
Linear regression
linear regression
P1
data_size
120 finite-element samples
120 finite-element samples
P1
result
MAE 0.18 mm
mean absolute error of 0.18 mm
P2
limitation
Not stated
P3
result
GPR lower RMSE
Gaussian process regression produced lower RMSE than the neural network
06Verifique cada trecho de evidência com Python
Salve os três resumos em abstracts.txt, com uma linha por artigo no formato P1<TAB>abstract text. O script abaixo lê abstracts.txt e paper_table.csv, verifica se cada trecho de evidence realmente aparece no resumo correspondente e grava os resultados em outputs/paper_table_check.txt. Ele não modifica os arquivos de entrada e para se o arquivo de saída já existir.
python
import csv
from pathlib import Path
ABSTRACTS_FILE = Path("abstracts.txt")
TABLE_FILE = Path("paper_table.csv")
OUTPUT_DIR = Path("outputs")
OUTPUT_FILE = OUTPUT_DIR / "paper_table_check.txt"
def load_abstracts(path):
abstracts = {}
with path.open("r", encoding="utf-8") as file:
for line_number, line in enumerate(file, start=1):
line = line.rstrip("\n")
if not line:
continue
if "\t" not in line:
raise SystemExit(f"Invalid abstract line {line_number}.")
paper_id, text = line.split("\t", 1)
abstracts[paper_id] = text
return abstracts
def main():
if not ABSTRACTS_FILE.is_file():
raise SystemExit(f"Abstracts file not found: {ABSTRACTS_FILE}")
if not TABLE_FILE.is_file():
raise SystemExit(f"Table file not found: {TABLE_FILE}")
if OUTPUT_FILE.exists():
raise SystemExit(f"Output already exists: {OUTPUT_FILE}")
abstracts = load_abstracts(ABSTRACTS_FILE)
report = []
checked = 0
unsupported = 0
with TABLE_FILE.open("r", encoding="utf-8", newline="") as file:
reader = csv.DictReader(file)
required = {"paper_id", "field", "value", "evidence"}
if reader.fieldnames is None or not required.issubset(reader.fieldnames):
raise SystemExit("paper_table.csv is missing required columns.")
for row_number, row in enumerate(reader, start=2):
paper_id = row["paper_id"].strip()
field = row["field"].strip()
value = row["value"].strip()
evidence = row["evidence"].strip()
if paper_id not in abstracts:
raise SystemExit(f"Unknown paper_id on row {row_number}: {paper_id}")
checked += 1
if value == "Not stated":
status = "REVIEW_NOT_STATED"
elif evidence and evidence in abstracts[paper_id]:
status = "EVIDENCE_FOUND"
else:
status = "EVIDENCE_NOT_FOUND"
unsupported += 1
report.append(
f"{paper_id}\t{field}\t{status}\tvalue={value}\tevidence={evidence}"
)
report.append("")
report.append(f"cells_checked={checked}")
report.append(f"evidence_not_found={unsupported}")
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
OUTPUT_FILE.write_text("\n".join(report) + "\n", encoding="utf-8")
print(f"Wrote: {OUTPUT_FILE}")
if __name__ == "__main__":
main()
07Depois verifique se a evidência realmente significa a mesma coisa
Encontrar o texto da evidência é apenas a primeira verificação. A pessoa que revisa ainda precisa comparar o valor da tabela com a redação do resumo. Por exemplo, P2 afirma que o erro de previsão ficou abaixo de 4% para 90% dos casos de validação. Resumir isso apenas como prediction error was below 4% seria forte demais porque remove a condição de 90%.
Célula
Suporte no resumo
Conclusão manual
P1 result: MAE 0.18 mm
mean absolute error of 0.18 mm on a 30-sample test set
Há suporte, mas o contexto do test set deve ser mantido.
P2 result: error below 4% for 90% of cases
Prediction error ... below 4% for 90% of the validation cases
Há suporte.
P2 limitation: Not stated
Nenhuma frase sobre limitação aparece no resumo sintético
Mantenha Not stated; não invente uma limitação.
P3 result: GPR lower RMSE
Gaussian process regression produced lower RMSE than the neural network
Há suporte.
08Entenda os limites de comparar apenas resumos
Não trate um resumo como substituto do artigo completo quando métodos, conjuntos de dados ou detalhes de avaliação forem importantes.
Não transforme Not stated em No limitation ou None; a ausência no resumo não é evidência de que a limitação não exista.
Não converta métricas diferentes em uma classificação se elas não forem realmente comparáveis.
Não infira divisões de dados, hiperparâmetros, significância estatística ou detalhes de implementação se o resumo não os declarar.
Preserve qualificadores como validation set, test set, percentage of cases e comparison baseline.
A comparação baseada apenas em resumos é útil para filtrar e organizar artigos, mas não é suficiente para uma avaliação metodológica detalhada. O script automático verifica apenas se os trechos de evidência aparecem no resumo correto. Ele não determina se a paráfrase é fiel, se duas métricas são comparáveis ou se o texto completo do artigo mudaria a interpretação.
Um fluxo confiável, portanto, consiste em atribuir um ID estável a cada artigo, fixar as colunas da tabela, usar Not stated quando faltar informação, anexar evidência a cada célula factual, verificar essa evidência automaticamente e depois revisar o significado manualmente. Isso mantém a conveniência de uma tabela gerada por IA sem tratar uma tabela bem apresentada como se já fosse evidência verificada.
Registro de execução e verificação
2026-09-21 · hand-checked example · Python 3.12
Os três resumos deste artigo são exemplos sintéticos e não correspondem a artigos reais.
P1 foi conferido manualmente: o método é linear regression, o tamanho dos dados é 120 finite-element samples, o MAE é 0.18 mm em um 30-sample test set e a limitação declarada é considerar apenas linear-elastic cases.
P2 foi conferido manualmente: o método é random forest, o tamanho dos dados é 500 simulated bracket designs, as entradas são thickness e hole diameter e o erro ficou abaixo de 4% para 90% dos validation cases.
P2 não declara uma limitação no resumo sintético, portanto a tabela comparativa usa corretamente Not stated.
P3 foi conferido manualmente: compara Gaussian process regression e neural network em 200 simulation cases, informa RMSE menor para Gaussian process regression e afirma que o training time aumentou conforme o conjunto de dados cresceu.
A lógica Python apresentada verifica a presença literal da evidência dentro do resumo correspondente e evita sobrescrever um arquivo de saída existente.
Limites da verificação
O código Python deste artigo não foi executado pelo autor; seu comportamento foi revisado manualmente.
A correspondência literal da evidência não comprova que uma célula parafraseada preserve exatamente o significado ou todos os qualificadores da frase original.
Os resumos podem omitir detalhes importantes presentes no artigo completo, portanto este fluxo é adequado para comparação preliminar e não para avaliação completa do artigo.
Transforme “automatize isso” em uma descrição de tarefa executável. Anexe uma amostra sintética sem dados sensíveis e um resultado esperado verificado manualmente para completar uma solicitação de script que totaliza registros de trabalho por equipe.
Verifique uma função de agregação com quatro linhas que você pode calcular manualmente e 12 unit tests. Verifique não apenas valores normais, mas também entrada vazia, zero, decimais e entrada inválida.
Separe um resumo plausível em fatos, cálculos e interpretações. Recalcule proporções e médias a partir de dados mensais sintéticos e reescreva frases com fontes ausentes ou causas exageradas como afirmações que possam ser verificadas.
Trate uma regex gerada por IA como um rascunho, não como uma regra final. Monte uma pequena tabela de testes sintéticos, compare os resultados esperados com as correspondências reais, revise o padrão e salve um relatório de revisão antes de usá-lo em dados reais.