배경
쉬운 글로 바꾸면 단위 표현이 자연스럽게 바뀝니다.
| 원문 |
쉬운본 |
지금 판정 |
65세 |
65살 |
불일치 → 사람 검수 |
6개월 |
여섯 달 |
불일치 → 사람 검수 |
3세대 |
세 가구 |
불일치 → 사람 검수 |
값은 그대로인데 표기만 바뀐 경우인데도 게이트가 잡습니다. normalize.py 주석에
알려진 한계로 적어 뒀습니다(190~193행).
왜곡을 통과시키는 방향은 아니라서 위험하지는 않습니다. 다만 쉬운 글일수록
이런 표현을 쓰기 때문에, 정작 가장 잘 쓴 쉬운본이 가장 많이 걸리는 역설이
생깁니다.
할 일
값이 같은 단위 쌍을 등가로 인정합니다.
- 나이: 세 ↔ 살
- 기간: 개월 ↔ 달
- 가구/세대처럼 문맥에 따라 같은 것을 세는 단위
어려운 지점 — 여기가 이 이슈의 핵심입니다
단위를 무르게 볼수록 진짜 왜곡을 놓칠 위험이 커집니다. 예를 들어 세대 와
가구 를 무조건 같게 보면, 정말로 대상 범위가 바뀐 문서를 통과시킬 수 있습니다.
그래서 이 이슈는 "사전에 쌍을 추가"로 끝나지 않습니다. 어디까지 같다고 볼지의
경계를 정하고, 그 경계를 테스트로 고정하는 일이 같이 필요합니다.
이 저장소의 원칙은 쉬움과 충실성이 부딪히면 충실성이 이긴다 입니다. 애매하면
좁게 인정하는 쪽을 택해 주세요.
적대적 케이스는 tests/fidelity/test_gate_adversarial.py 에 모아 두었습니다.
새 등가 규칙이 기존 케이스를 뚫지 않는지 반드시 확인해야 합니다.
테스트
python -m pytest tests/fidelity -q
관련 파일
ttobak/fidelity/normalize.py (180~221행, COUNT_UNITS · _NATIVE_NUMERALS)
tests/fidelity/test_gate_adversarial.py
tests/fidelity/test_normalize_number.py
관련 이슈
#8 (고유어 수사 11 이상) 과 같은 코드 영역입니다. 먼저 #8 을 보시면 맥락이 잡힙니다.
EN — Unit synonyms (세↔살, 개월↔달, 세대↔가구) are not treated as equivalent, so
well-written easy-read output gets flagged even when the value is preserved. The hard
part is not adding pairs — it's deciding how far equivalence may go without letting a
real scope change through, and pinning that boundary with tests. When in doubt, be
strict: fidelity beats easiness in this project.
배경
쉬운 글로 바꾸면 단위 표현이 자연스럽게 바뀝니다.
65세65살6개월여섯 달3세대세 가구값은 그대로인데 표기만 바뀐 경우인데도 게이트가 잡습니다.
normalize.py주석에알려진 한계로 적어 뒀습니다(190~193행).
왜곡을 통과시키는 방향은 아니라서 위험하지는 않습니다. 다만 쉬운 글일수록
이런 표현을 쓰기 때문에, 정작 가장 잘 쓴 쉬운본이 가장 많이 걸리는 역설이
생깁니다.
할 일
값이 같은 단위 쌍을 등가로 인정합니다.
어려운 지점 — 여기가 이 이슈의 핵심입니다
단위를 무르게 볼수록 진짜 왜곡을 놓칠 위험이 커집니다. 예를 들어
세대와가구를 무조건 같게 보면, 정말로 대상 범위가 바뀐 문서를 통과시킬 수 있습니다.그래서 이 이슈는 "사전에 쌍을 추가"로 끝나지 않습니다. 어디까지 같다고 볼지의
경계를 정하고, 그 경계를 테스트로 고정하는 일이 같이 필요합니다.
이 저장소의 원칙은 쉬움과 충실성이 부딪히면 충실성이 이긴다 입니다. 애매하면
좁게 인정하는 쪽을 택해 주세요.
적대적 케이스는
tests/fidelity/test_gate_adversarial.py에 모아 두었습니다.새 등가 규칙이 기존 케이스를 뚫지 않는지 반드시 확인해야 합니다.
테스트
관련 파일
ttobak/fidelity/normalize.py(180~221행,COUNT_UNITS·_NATIVE_NUMERALS)tests/fidelity/test_gate_adversarial.pytests/fidelity/test_normalize_number.py관련 이슈
#8 (고유어 수사 11 이상) 과 같은 코드 영역입니다. 먼저 #8 을 보시면 맥락이 잡힙니다.
EN — Unit synonyms (세↔살, 개월↔달, 세대↔가구) are not treated as equivalent, so
well-written easy-read output gets flagged even when the value is preserved. The hard
part is not adding pairs — it's deciding how far equivalence may go without letting a
real scope change through, and pinning that boundary with tests. When in doubt, be
strict: fidelity beats easiness in this project.