별도 파일을 늘리지 않고 기존 결과보고 워크북에 '중복 원고' 시트로 넣는다.
중복 제거 후 재실행하면 28건이 결과에서 사라지므로, 사라지기 전에 어떤
문서 사이의 중복이었는지 원문째로 남겨야 나중에 같은 제출자의 재제출인지
다른 제출자의 표절인지 확인할 수 있다.
--no-excerpt-sheet 로 원문 대조 시트 없이 중복 시트만 붙일 수 있게 했다.
결과보고는 원문 없는 배포판이라 이 경로를 쓴다.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
상무님 지적 두 가지를 검증 가능한 형태로 만든다.
1) 중복 원고: 코퍼스 6343건 중 247그룹 503건이 중복이고, 침해의심 103건
중 28건이 여기서 비롯됐다. 다만 247그룹 중 234그룹이 서로 다른 문서
사이의 중복이라 같은 제출자의 재제출인지 다른 제출자의 표절인지 아직
모른다. 지우기 전에 원문째로 남기도록 build_duplicate_report.py 를 둔다.
2) 연속 일치 기준 80자: 근거 없이 잡힌 초기값이다. 무관한 원고 4만 쌍을
대조해 재보니 3어절 100%, 4어절 99.8%, 5어절 47%, 7어절 0% 오탐이다
(한 건을 6343건과 대조하는 효과 반영). 관행인 3~5어절은 쓸 수 없고
7어절 = 공백 포함 27자가 오탐 0% 를 유지하는 최저점이다.
배치에 --exclude-segments 와 --min-exact-span 을 추가한다. 중복은 질의와
색인 양쪽에서 함께 빼야 한다. 한쪽만 빼면 지운 원고가 여전히 상대로 잡힌다.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
검토자가 침해 여부를 눈으로 판별하려면 원문이 있어야 하고, 어떤 조건으로
걸렸는지 알아야 한다. 두 가지를 워크북에 싣는다.
- extract_suspected_excerpts.py: 코퍼스 DB(읽기 전용)에서 질의·상대 원문과
일치 구간을 뽑는다. 킹서버 기본 python 이 3.6 이라 이 파일만 구문을 맞췄다.
- '판정 기준' 시트: 3개 OR 조건과 결합유사도 가중치, 조건별 충족 현황
- '원문 대조' 시트: 판정 사유 컬럼으로 각 건이 걸린 조건을 표시
판례 표기도 바로잡는다. USE_LLM_LEGAL_JUDGE=false 는 LLM 법적 판단만
끈 것이고 판례 검색은 규칙 기반으로 늘 동작한다. legal_risk.assess() 가
점수 하한 없이 상위 5건을 붙이므로 매칭 미탐지 건에도 판례가 채워진다.
한 줄에 뭉쳐 두면 모순으로 읽혀 판례 검색과 법적 판단을 분리해 적었다.
원문이 담긴 산출물은 gitignore 로 제외한다. 필요하면 위 스크립트로
코퍼스에서 다시 뽑을 수 있어 저장소에 영구 보존할 이유가 없다.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2차 GPU 임베딩(KoSimCSE) 배치 6343건 전수 결과와, 이를 보고용으로
재구성한 워크북을 추가한다. 모든 문서는 가명 처리되어 있으며 원문
텍스트와 실명은 포함하지 않는다.
1차 대비: 의심 81 -> 103 (공통 77, 2차 신규 26, 1차에서만 4).
다만 임베딩 교체로 전 건 결합유사도가 평균 +0.0914 상승한 반면
임계값은 동일하므로, 신규 26건 중 17건은 근거 스팬이 0이다.
건수 증가를 곧바로 탐지력 향상으로 해석하면 안 된다.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>