Uso de IA no trabalho

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.

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.

ArtigoResumo sintético
P1We 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.
P2A 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.
P3We 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.

  1. Atribua IDs estáveis aos resumos, como P1, P2 e P3.
  2. Defina colunas fixas: method, data size, inputs or target, reported result e limitation.
  3. Exija Not stated quando o resumo não fornecer a informação solicitada.
  4. Peça uma citação curta ou trecho de suporte para cada célula factual.
  5. 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.

PaperMethodData sizeInputs or targetReported resultLimitation
P1Linear regression120 finite-element samplesBeam deflectionMAE 0.18 mm on a 30-sample test setOnly linear-elastic cases
P2Random forest500 simulated bracket designsThickness and hole diameter to maximum von Mises stressError below 4% for 90% of validation casesNot stated
P3Gaussian process regression and neural network200 simulation casesPlate displacementGaussian process regression had lower RMSETraining 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_idfieldvalueevidence
P1methodLinear regressionlinear regression
P1data_size120 finite-element samples120 finite-element samples
P1resultMAE 0.18 mmmean absolute error of 0.18 mm
P2limitationNot stated
P3resultGPR lower RMSEGaussian 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élulaSuporte no resumoConclusão manual
P1 result: MAE 0.18 mmmean absolute error of 0.18 mm on a 30-sample test setHá suporte, mas o contexto do test set deve ser mantido.
P2 result: error below 4% for 90% of casesPrediction error ... below 4% for 90% of the validation casesHá suporte.
P2 limitation: Not statedNenhuma frase sobre limitação aparece no resumo sintéticoMantenha Not stated; não invente uma limitação.
P3 result: GPR lower RMSEGaussian process regression produced lower RMSE than the neural networkHá 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.

Princípios de redação e verificação de todo o site

Fontes de referência

As explicações e os exemplos são de elaboração própria. Os comportamentos e conceitos relacionados podem ser consultados nas fontes oficiais abaixo.