월례회의 자료(2026-09-18) p.7 파이프라인의 3단계 「저자 화면에는 케이스 코드를 노출하지 않는다」를 구현하고, 후속 합의에 필요한 문서를 함께 남긴다. - DetectOptions.audience(admin 기본 / author). author 직렬화에서 case_id, case_candidates, tags, legal_risk, is_infringement 을 제외하고 ccl_basis 를 코드 없는 문장으로 대체한다. 일치 위치와 점수는 유지한다. - is_infringement 는 필수 bool 로 둔다. run_precision_eval.py 등 소비자가 bool 로 읽으므로 선택 필드로 두면 None 이 조용히 흘러간다. 제외는 직렬화에서만 한다. - publication_verdict 필드 추가. 컴북스 코드표 미확보이므로 39건 전부 null 이며 null 을 출간 허용으로 해석하지 않는다. enum 과 대표값 선정은 코드표 수령 후. - request_id / taxonomy_version 을 응답에 싣는다. 관리자 확정 로그와 연결된다. - engine_version 기본값을 2.2.1-cases-v1.3 으로 맞춘다. 직전 값(2.0.1)이 King 운영값 2.2.0-persistent-cpu 보다 낮아 성적서 대조 시 뒤집혀 보였다. 케이스 정의는 39건(A 27건)을 유지한다. 회의 자료의 40건(A 28건)과 1건 차이가 있으나 아카이빙 DB v2.3 원본을 받기 전까지 추측해 채우지 않는다. 7,786편 운영 재검사는 모집단 불일치(현재 6,343건)로 중단했고 부분 실행은 집계하지 않는다. 별도 평가셋 재측정은 기존 testset_v2 수치(precision 98.4032%)를 그대로 재현했으며 새 독립 시험 결과가 아니다. 상세는 reports/CASE_MATCHING_EVAL_*.json. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
3.5 KiB
케이스 매칭 정확도 — 합의안 (2026-09-18)
상태: 컴북스·바이칼 합의 전. 평가 코드와 목표치는 아직 확정하지 않는다. 이는 표절 검출 정밀도(성능지표 4)와 별도 지표다.
평가 단위와 기록
한 요청의 한 매칭 원천에 대한 관리자 확정을 1건으로 한다. 요청 전체에 여러 매칭이 있으면 원천별로 평가한다. 로그에는 request_id, doc_id, 원천 문서·세그먼트 ID, engine_version, taxonomy_version, 분석 시각, 당시 자동 대표 코드, 순서 있는 전체 후보, 후보별 출간 판정, 관리자 최종 케이스 집합·출간 판정, 검토자·확정 시각·수정 사유를 남긴다. 재검사 요청과 재확정을 중복 분모로 세지 않도록 평가 대상 요청/매칭 ID를 고정하고, 집계 마감 시점의 마지막 확정만 사용한다. 원래 자동 예측은 덮어쓰지 않는다. 5년 보존·접근 제어·삭제 정책 구현은 바이칼 DB 담당이다.
제안 산식
- 평가 대상 N: 동일 taxonomy 버전에서 유효한 최종 케이스 집합 G가 확정된 매칭 수. 미확정·보류·버전 변환 불가 로그는 제외하고 제외 사유별 건수를 별도 보고한다.
- top-1 일치율 = 자동 대표 코드가 G에 포함된 건수 / N. 현 case_id는 태그 동점군의 첫 항목이지 확률 순위 1위가 아니다. 동점 여부와 후보 수별 성적을 함께 보고하고, 이를 모델의 순위 정확도로 해석하지 않는다.
- 후보군 포함률(hit@k) = 상위 k개 후보 집합 Ck와 G의 교집합이 비어 있지 않은 건수 / N. 단일 정답에서는 recall@k와 같다. 복수 정답에서는 별도로 macro recall@k = sum(|Ck ∩ G| / |G|) / N을 보고한다.
- 전체 후보 포함률도 별도 보고한다. 후보 동률을 임의 절단한 k 결과에는 절단 사실을 표시한다.
- 후보 누락/기권은 G가 존재하는 한 분모에 포함하고 실패로 센다. 관리자가 '해당 케이스 없음'으로 확정한 로그는 별도 음성 집단으로 두고 무후보 정확률 및 잘못 부착한 비율을 보고한다(양성 분모와 섞지 않음).
- 출간 판정 일치율은 코드표·보수적 우선순위 합의 후 별도 측정한다. 미확보 null을 출간 허용이나 정답으로 취급하지 않는다.
- N=0은 null/측정 불가. 모든 지표에 분자·분모, 평가 기간, 데이터/엔진/분류체계 버전, 미확정 수, 후보 수 분포를 함께 기재한다.
확정할 사항: 단위(원천별/요청별), 복수 정답 허용, 음성 정의, 동점 처리, k 값, 버전 간 코드 대응, 관리자 간 불일치 조정, 대표 판정 우선순위. 97% 목표를 전용하지 않는다.
기존 정밀도와 구분
운영 코퍼스의 71.7%는 회의 자료상 76/(76+30)=76/106이다. 7,786은 검사 모집단이며 정밀도의 분모가 아니다. 현 코퍼스 검출 수만으로 TP/FP를 만들 수 없다. 전체 새 검출 결과의 동일 기준 사람 검토와 문서/쌍 단위 합의가 필요하다.
별도 평가셋 성능지표 4는 기존 scripts/run_precision_eval.py의 precision=TP/(TP+FP), recall=TP/(TP+FN), F1을 그대로 사용한다. 시험셋은 scripts/build_plagiarism_testset.py로 만든 작성자 분리·규칙 변형 평가셋이다. 운영 표본의 사람 판정 수치와 공인인증 목표를 같은 표본의 성적으로 비교하지 않는다. 기존 docs/PERF_EVIDENCE_CAPTURE_2026.md의 산식과 평가 경로를 변경하지 않는다.