Skip to content

NIKL 2025 말뭉치 정확도 및 규정 진단 개선 - #192

Merged
owjs3901 merged 78 commits into
mainfrom
owjs3901/corpus-accuracy-pr
Sep 3, 2026
Merged

NIKL 2025 말뭉치 정확도 및 규정 진단 개선#192
owjs3901 merged 78 commits into
mainfrom
owjs3901/corpus-accuracy-pr

Conversation

@owjs3901

@owjs3901 owjs3901 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

요약

  • 2024 개정 한국 점자 규정과 UEB의 일반 규칙만으로 한글 문맥의 로마자 진입·종료, 대문자/1급표, 숫자·단위, 문장 부호 경계를 개선했습니다.
  • NIKL 2025 v1.0 분석기를 결정론적으로 추가하고, 불일치를 구현 결함·말뭉치 참조 모순·비교 방법·미지원 문자·규정 검토 대기로 분리했습니다.
  • 국립국어원에 그대로 전달할 수 있는 15개 항목의 공식 질의서를 추가했습니다.
  • 입력별 직접 매핑, 말뭉치 expected 역산 분기, 경쟁사 필드 비교는 사용하지 않았습니다.

결과

  • NIKL: 57,732/83,528 (69.12%) → 69,359/83,528 (83.04%), +11,627건 / +13.92%p
  • 이 작업의 초기 안전 체크포인트 65,491건 대비 +3,868건 / +4.63%p
  • 표준: 5,141/5,141 유지
  • 최신 exact-ID 전수 회귀 감사: 내부 아포스트로피 변경 +68 / -0

주요 변경

  • 한국 점자 제28·29·32·34·35·37·39항의 로마자 구간과 UEB 상태 경계를 일반화
  • 제41·43·48항 숫자/소수점/쉼표 경계와 제68·69항 단위 처리 일반화
  • 제71항 및 UEB의 붙은 앰퍼샌드, UEB 8.4.2 대문자 비문자 경계와 내부 아포스트로피 처리
  • 규정으로 결정할 수 없는 발음 의존 약어, 수식/식별자 충돌, 가운뎃점, 목록 공백, 미지원 문자는 진단으로 보존
  • 제34항 PDF 예와 반대인 말뭉치 3셀 서명 1,112건을 재현 가능한 참조값 확인 대상으로 분리

최종 검증 (origin/main 병합 후)

  • cargo test -p braillify test_by_testcase --release -- --nocapture
    • 총 테스트 케이스 5,141 / 성공 5,141 / 실패 0 / 스킵 0
    • 같은 실행의 NIKL: 69,359/83,528
  • cargo test -p braillify --example nikl_corpus_analyze: 320/320
  • cargo clippy -p braillify --all-targets -- -D warnings: 통과
  • cargo fmt --all -- --check: 통과
  • 전체 분석 2회: 두 번 모두 69,359/83,528 (83.04%)
    • Markdown SHA-256: ADE97D3E33A1DA1F3FF622E8CD0B74E7781CDF4CA665C466258716D0FBB5928A
    • JSON SHA-256: 0C9085968D44FDAC934E5AA81763B41DE0847234F3A22B2ED78F4A1928CFB8F6

안전 경계

  • PR diff에 uv.lock이 없습니다.
  • world/jeomsarang을 읽거나 정답 비교에 사용하지 않았고 수정하지 않았습니다.
  • 원 작업 트리의 사용자 소유 변경은 별도 통합 워크트리를 사용해 그대로 보존했습니다.

devfive added 30 commits September 1, 2026 03:28
Apply Rules 33, 34, and 69 generically at Roman-unit punctuation and enclosing boundaries, while retaining ordinary terminators elsewhere. Keep compact supported units off the math path only at the documented boundary shape and record deterministic analyzer cohorts.

Standard custom summary: total 5141, success 5141, failure 0, skip 0. NIKL: 66436/83528 exact (79.54%, +397). Analyzer: 130 tests; report/JSON hashes equal across two runs; clippy clean.
Find the neutral-Korean current-engine signature in the complete actual output instead of deriving a context-sensitive offset from an isolated prefix. The conservative Rule 49/72 pending decision remains unchanged; ASCII/digit followers stay outside the gate.

Tight-triangle cohort: 377 candidates, 0 exact, 377 mismatch, 330 localized. Its dominant residual transition falls from 343 to 32 cases. Analyzer: 132 tests; report/JSON hashes equal across two runs; clippy clean. Engine accuracy remains 66436/83528.
Add an output-localized cohort for attached ASCII Roman runs before U+00B7. Rules 29 and 33 explain the current terminator, while Rule 50 adds attachment but no terminator exception, so reference omissions remain conservative corpus/PDF review rather than an engine rule.

Cohort: 577 candidates, 0 exact, 577 mismatch, 357 localized; 341 localized cases share the dominant terminator transition. Analyzer: 141 tests; report/JSON hashes equal across two runs; clippy clean. NIKL remains 66436/83528.
Apply UEB 6.5.2 after digits: retain grade 1 only for lowercase a-j, while capitals and lowercase k-z rely on their own disambiguation. Keep letter-prefixed numeric chains on the Roman identifier route instead of treating them as compact Rule 69 units.

Verified: standard custom summary 5141/5141, analyzer 156/156, clippy, fmt, deterministic report/JSON hashes, NIKL 67012/83528.
Follow UEB 5.7.2 CD-ROM only for pure-uppercase segments with a multi-capital suffix. Keep single-capital, mixed-case, digit-hyphen, and broader corpus shapes on their existing routes.

Verified: standard custom summary 5141/5141, analyzer 160/160, clippy, fmt, deterministic report/JSON hashes, NIKL 67138/83528.
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Braillify testcase report

Suite Passed Total Failed Success rate
Standard testcases 5141 5141 0 100.00%
NIKL corpus 75785 83528 7743 90.73%

Command: cargo test test_by_testcase -- --nocapture

@codecov

codecov Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Files with missing lines Coverage Δ
libs/braillify/src/encoder.rs 100.00% <100.00%> (ø)
libs/braillify/src/english_logic.rs 100.00% <100.00%> (ø)
libs/braillify/src/ipa.rs 100.00% <100.00%> (ø)
libs/braillify/src/lib.rs 100.00% <100.00%> (ø)
libs/braillify/src/rules/context.rs 100.00% <100.00%> (ø)
libs/braillify/src/rules/emit.rs 100.00% <100.00%> (ø)
libs/braillify/src/rules/engine.rs 100.00% <ø> (ø)
libs/braillify/src/rules/english_shortform.rs 100.00% <100.00%> (ø)
libs/braillify/src/rules/english_ueb/engine.rs 100.00% <100.00%> (ø)
...ibs/braillify/src/rules/english_ueb/engine/caps.rs 100.00% <100.00%> (ø)
... and 40 more
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Changepacks

@owjs3901
owjs3901 merged commit 388e332 into main Sep 3, 2026
35 checks passed
@owjs3901
owjs3901 deleted the owjs3901/corpus-accuracy-pr branch September 3, 2026 11:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant