AI 논문 비교표의 각 셀을 원문까지 추적하는 방법

비교표를 만든 뒤 ‘이 값은 어디에서 가져왔죠?’라는 질문에 다시 원문을 찾는 상황을 가정해 볼게요. 공개 논문 세 편으로 값·원문 위치·검증 상태가 남는 비교표를 만들어요.

첨부 링크는 이 글의 예제 ZIP으로 연결돼요. 압축을 푼 뒤 링크에 표시된 파일을 열면 입력·코드·완성 자료를 함께 사용할 수 있어요.

예제는 이 글을 작성하는 AI 에이전트가 2026년 10월 13일 공개 HTML 원문을 읽고 추출한 결과예요. 특정 채팅 서비스에 PDF를 올려 성능을 비교한 실험은 아니에요. 추출 요청과 열 정의 변경은 작업 기록 (ZIP: agent-extraction-process.md), 채운 결과는 비교표 CSV (ZIP: comparison.csv)에 있어요.

AI 비교표의 주장별로 원문의 위치를 추적하는 장면
설명 삽화 1. 표 전체에 출처 하나를 붙이는 것보다 각 주장과 원문의 위치를 연결하는 편이 검증에 도움이 돼요.

표본 수를 채우기 전에 글의 종류부터 확인해요

연구실의 문헌·분석 작업 방식을 정리하려고 세 편을 골랐어요. 같은 처치의 실험 논문이 아니므로 ‘어느 방법이 더 효과적인가’의 근거로 묶지 않아요.

ID 문헌 출판 정보 이번에 추출할 결과물
P01 Pautasso, 문헌고찰 작성 규칙 2013, Editorial 검색·제외 기준과 출처 메모
P02 Wilson 외, 과학계산 실무 지침 2017, Perspective 원자료·처리 기록·작은 시험 자료
P03 Noble, 계산생물학 프로젝트 정리 2009, Education 프로젝트 구조와 실행 명령

연도·유형은 출판 정보, 작업 내용은 P01 Rule 2·3, P02 Box 1, P03 파일 구성·실험 실행 절과 대조했어요. 결과물 이름은 권고를 묶은 작성자의 분류예요. P01 원문, P02 원문, P03 원문을 기준으로 삼았어요.

처음 고려한 sample_n에 P02의 워크숍 규모를 넣으면 실험 분석 표본으로 오해하게 돼요. 이번 자료에는 숫자를 억지로 채우는 대신 ‘해당 없음: 비교 실험 표본 아님’이라는 상태 열이 맞아요. 실제 AI 오답 사례가 아니라 자료에 맞춰 추출 구조를 고친 판단이에요.

공개 논문 세 편의 연도와 글 유형, 추출할 결과물을 정리한 제공 예제 화면
그림 1. 제공 예제 브라우저 화면이에요. 논문의 유형을 먼저 확인해 비교할 수 없는 표본 수를 채우지 않았어요.

URL 하나를 행 끝에 붙이는 것으로는 부족해요

P02의 연도와 권고는 같은 문헌에서도 확인할 위치가 달라요. 셀을 P02.year, P02.artifact처럼 구분해 별도 표에 근거를 남겨요.

셀 채운 값 원문 위치 확인 방식
P02.year 2017 Published 출판 정보 대조
P02.artifact 원자료·처리 스크립트·작은 시험 자료 Box 1의 1a·1e·2i 권고를 읽고 결과물로 분류
P03.artifact 프로젝트 디렉터리·실험 실행 기록 File and Directory Organization; Carrying Out a Single Experiment 두 절의 내용을 함께 확인
P02.sample 해당 없음 문서 유형·Overview 워크숍 경험과 실험 표본을 구분

PDF는 ‘PDF 8쪽·인쇄 6쪽·표 2·행 B’처럼 위치를 구분하고, HTML은 절·표·항목명을 적어요. 두 출처가 필요한 셀은 주장별 연결을 나눠요.

AI에는 값과 함께 문헌 ID·위치·직접 진술/요약 판단·미확인 이유를 요청해요. 미확인, 설계상 해당 없음, 실제 값 0을 구분해요.

채운 다음에는 의미와 형식을 따로 검사해요

셀 근거표 (ZIP: cell-provenance.csv)는 세 문헌의 네 항목, 모두 12셀을 추적해요. 원문 대조는 verified, ‘결과물’은 권고를 묶은 작성자 분류라고 표시했어요.

assets 폴더에서 python3 verify.py를 실행하면 문헌 수 3, 셀 수 12, 빈 근거 0이 나와요. 이 프로그램은 ID가 겹치는지, URL과 위치가 비었는지를 확인해요. 링크가 채워졌다고 주장까지 맞다고 판정하지는 않아요. 이를테면 올바른 DOI 아래에 다른 논문의 표 번호를 붙여도 형식 검사는 통과할 수 있어요. 그래서 중요한 결론에 쓰는 셀은 링크를 열어 값과 단위까지 직접 대조해야 해요.

근거 하나가 빠졌을 때 행 전체를 버려야 할까요?

P02의 ‘원자료·처리 기록·시험 자료’ 한 셀을 세 주장 (ZIP: atomic-claims.json)으로 나눴어요. Box 1의 1a·1e·2i와 각각 연결돼요. 실제 원문은 모두 확인됐지만, 조건이 달라질 때를 보려고 세 번째 위치를 비우거나 두 번째 DOI를 P03 것으로 바꾸는 의도적 오류 주입을 했어요.

조건 사용할 주장 선택과 이유
세 근거 확인 3개 전체 문구 사용
시험 자료 위치 누락, 작업 메모 작성 2개 원자료·처리 기록만 사용, 시험 자료는 확인 대기
같은 누락, 시험 자료까지 필요한 최종 체크리스트 2개 핵심 항목이 빠져 최종 결론 보류
처리 기록의 DOI가 다른 논문 2개 출처 혼입 표시 후 해당 주장 제외

행 전체를 보류하면 확인된 두 주장까지 잃고, 그대로 사용하면 미확인을 사실처럼 쓰게 돼요. 그래서 부분 문구는 보존하되 결론에 필요한 주장 집합이 모두 확인됐는지 따로 판단해요. 누락 사례의 채운 문구는 ‘원자료를 보존하고 처리 단계를 기록한다. 시험 자료 권고는 위치 확인 대기’예요.

python3 check_provenance_changes.py의 실행 결과 (ZIP: provenance-change-results.json)는 사용 가능한 주장 수 3·2·2·2와 결론 사용 가능/가능/보류/보류를 확인했어요. 코드는 등록된 출처 ID와 상태를 비교할 뿐, 다른 문헌의 같은 표현이 같은 뜻인지 판정하지 않아요. PDF OCR·수식 인식도 미검증이에요. 원문을 못 찾으면 확인할 셀·자료·위치를 남기고 해당 결론만 보류하세요.

세부 주장 하나의 근거가 빠지거나 출처가 바뀔 때 부분 사용과 최종 결론 보류를 비교한 화면
그림 2. 제공 예제 브라우저 화면이에요. 공개 원문 기반의 세 주장에 의도적으로 조건을 바꿔 검사한 결과예요.
출처 변경으로 영향을 받은 주장만 다시 확인하는 장면
설명 삽화 2. 원문이 바뀌면 연결된 셀의 값과 해석을 다시 확인하고 이전 기록을 보존해요.

예제 파일을 한 번에 받아 다시 확인해요

이 글의 입력·코드·완성 자료 ZIP을 새 폴더에 풀면 R13/README.txt, replay.py, assets 폴더가 함께 생겨요. 개별 코드 파일만 저장하면 보조 모듈이나 입력이 빠질 수 있으므로 처음에는 이 묶음을 사용하세요. R13 폴더에서 다음 명령을 실행하면 본문에 사용한 검사를 순서대로 수행해요.

python3 replay.py

확인할 결과는 12셀의 근거와 복합 주장 보존·보류 검사예요. 명령이 성공해도 이 값과 본문의 적용 범위를 함께 대조하세요. 실행 안내 (ZIP: README.txt)에 필요한 파일과 개별 명령을 적었어요. 실행 코드는 verify.py (ZIP: verify.py) · check_provenance_changes.py (ZIP: check_provenance_changes.py)에서 직접 볼 수 있어요. Python3.12의 표준 라이브러리를 사용하며, 명령이 실패하면 ZIP의 폴더 구조와 오류에 나온 파일부터 확인해요. 실제 앱 실행에 필요한 프로그램은 원래 설명을 따르세요.

작성·확인: Codex가 예제 자료와 초안을 작성하고 본문에 명시한 원문 대조·계산·자동 검사를 수행했어요. 별도 사람의 사용성 검증은 하지 않았어요.

논문 사이의 조건 차이까지 해석하려면 대상·조건·측정값으로 논문 비교하기로 이어서 확인할 수 있어요.

설명 삽화 2장은 GPT로 생성한 개념 설명이에요. 실제 예제의 작업 화면과 실행 결과는 기존 그림·첨부 자료에서 따로 확인할 수 있어요.