Repository Public Research preview
1#!/usr/bin/env python32"""Validate rewrites against originals → pairs.jsonl / quarantine.jsonl / validation_summary.json."""3from __future__ import annotations45import argparse6import sys7from pathlib import Path89ROOT = Path(__file__).resolve().parents[1]10sys.path.insert(0, str(ROOT / "src"))11from htr.validate.checks import ValidationConfig # noqa: E40212from htr.validate.pairs import build_pairs # noqa: E402131415def main() -> None:16 ap = argparse.ArgumentParser()17 ap.add_argument("--corpus", default=str(ROOT / "data/parsed/pilot"))18 ap.add_argument("--job", required=True)19 ap.add_argument("--out", default=None)20 ap.add_argument("--no-embeddings", action="store_true")21 a = ap.parse_args()22 job = ROOT / "data/pairs" / a.job23 out = Path(a.out) if a.out else job / "validated"24 st = build_pairs(Path(a.corpus), job, out, ValidationConfig(use_embeddings=not a.no_embeddings))25 print({k: v for k, v in st.items() if k != "fail_reasons"})26 print("fail_reasons:", dict(sorted(st["fail_reasons"].items(), key=lambda kv: -kv[1])[:12]))272829if __name__ == "__main__":30 main()31