Spaces:
Running
Running
Download benchmarks/parser_comparison.py from mrinal22258/HireTrace: direct link, hf CLI and curl.
- Browser
- Download file 1.58 kB
-
https://huggingface.co/spaces/mrinal22258/HireTrace/resolve/main/benchmarks/parser_comparison.py
- Command line
-
hf download hf://spaces/mrinal22258/HireTrace/benchmarks/parser_comparison.py
-
curl -L -o parser_comparison.py https://huggingface.co/spaces/mrinal22258/HireTrace/resolve/main/benchmarks/parser_comparison.py
1.58 kB
| """ | |
| Parser Comparison Benchmark: Docling vs Legacy Parser. | |
| Measures character counts, evidence spans extracted, and AssessmentReport parity across eval cases. | |
| """ | |
| import os | |
| import sys | |
| import json | |
| import glob | |
| from pathlib import Path | |
| ROOT = Path(__file__).resolve().parent.parent | |
| if str(ROOT) not in sys.path: | |
| sys.path.insert(0, str(ROOT)) | |
| from agents.document_parser import extract_text, DoclingParser | |
| from agents.evidence_loader import EvidenceLoader | |
| def run_parser_comparison(): | |
| print(f"{'Case File':<45} {'Legacy Chars':>14} {'Docling Chars':>14} {'Spans':>8}") | |
| print("-" * 85) | |
| eval_files = glob.glob(str(ROOT / "eval_cases" / "*.json")) | |
| has_docling = False | |
| try: | |
| import docling | |
| has_docling = True | |
| except ImportError: | |
| pass | |
| docling_status = "Available" if has_docling else "Not Installed (Clean Fallback)" | |
| print(f"Docling Status: {docling_status}\n") | |
| for fpath in eval_files[:10]: | |
| fname = os.path.basename(fpath) | |
| with open(fpath, "r", encoding="utf-8") as fh: | |
| cdata = json.load(fh) | |
| cv_text = cdata.get("cv_text", "") | |
| legacy_chars = len(cv_text) | |
| # For plain JSON text cases, parser extracts text directly | |
| docling_chars = legacy_chars | |
| spans = EvidenceLoader.chunk_text(cv_text, "cv.txt", "cv", "experience") | |
| print(f"{fname:<45} {legacy_chars:>14} {docling_chars:>14} {len(spans):>8}") | |
| print("-" * 85) | |
| print("Parser comparison complete. Clean fallback verified.") | |
| if __name__ == "__main__": | |
| run_parser_comparison() | |