오류 내성 곡선 그림 — 4.2절 산출물
무엇을
scripts/measure_error_tolerance.py 가 낸 JSON 을 그림 한 장으로 만든다.
기획서가 「필수 도구」로 적은 그래프를 지금까지 한 번도 쓰지 않았고, 성공 조건
(STT 오류 내성 실험 + 검색 품질 수치)이 숫자 표로만 있었다.
한 것 (2026-09-19)
scripts/plot_error_curve.py— 2패널(검색 Recall@5 · C-5 누락 건수) × x축 실제로 잰 WER.- 두 축을 겹치지 않는다 — 0~1 비율과 정수 건수는 패널을 나눈다.
- y 는 시드 중 최저치(검색)·최대 누락(C-5) 을 그대로 쓴다(절대 원칙 4, 측정 스크립트가 그렇게 저장한다).
- 6.1절 판정선(0.70 / 0.60)과 「절대 규칙 — 누락 0건」을 회색 점선으로만 얹는다(계열 색을 쓰지 않는다).
- 그림 안에 한계 문장이 박힌다 — 주입기가 실측 오류의 46.9% 를 흉내 내지 못해 곡선이 낙관 쪽으로 기운다. 숫자만 잘라 가는 것을 막는다.
- 날짜·커밋·골든셋·시드·명령이 그림 아래에 같이 찍힌다(§5 — 값 하나에 붙어야 하는 넷).
- 입력 JSON 이 없으면 그리지 않고 멈춘다(절대 원칙 2). 한글 글꼴이 없으면 경고한다.
- 가짜 값으로 스모크 테스트만 했다(그림이 그려지는지·겹치는지). 저장소에는 그 그림을 넣지 않았다.
남은 것
- 실제 곡선 그리기 — 2026-09-21 그렸다(
jekyll/assets/error-tolerance-2026-09-21.png· 원본.json도 같은 자리에). 운영 구성(규칙 + BM25)이다. 도커 없이 ES 9.5.1 + nori 를 zip 으로 띄워 같은 날 쟀다.measure_error_tolerance.py가 모델 파일이 없으면 통째로 멈추던 것을 고쳐, 있는 계열만 재고 빠진 계열은meta.skipped에 남기게 했다 — 그림 아래에 「이 측정에서 빠진 계열」로 찍힌다(「안 쟀다」와 「잴 수 없었다」를 가른다). - 모델 계열(dense · 리랭커 · 규칙+NER)을 같은 그림에 얹기 — 모델 파일이 있는 머신에서 같은 두 명령을 돌리면 된다
- 그 그림을 어디에 실을지 — 4장·6장·발표 자료 중
의존성
matplotlib 하나. 서버 런타임·CI 테스트에는 쓰지 않아 requirements.txt 에 넣지 않았다 —
없으면 스크립트가 설치 방법을 알려주고 멈춘다.