Token Classification
Transformers
ONNX
Safetensors
English
distilbert
resume-parsing
ner
resume
cv
information-extraction
Instructions to use oksomu/resume-ner with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use oksomu/resume-ner with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("token-classification", model="oksomu/resume-ner")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForTokenClassification tokenizer = AutoTokenizer.from_pretrained("oksomu/resume-ner") model = AutoModelForTokenClassification.from_pretrained("oksomu/resume-ner", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Commit History
-
Add Kaggle silver training data, retrain model, reorganize data directory
Somasundaram Ayyappan +1: Claude Opus 4.6 (1M context)- Add 2,483 Kaggle resumes with Gemini-extracted labels + BIO tagging + noise augmentation - Retrain model (25 epochs): entity F1 97.77%, clean F1 99.18% - Reorganize training/data/ into sources/, gold/ subdirectories - Add implementation guide (docs/implementation_guide.md) - Remove one-off scripts (build_long_resumes, convert_dataturks, label_resume_pdfs) - Fix Windows UTF-8 encoding in structured_postprocess and train_ner - Add --extra-train flag to train_ner.py for loading additional training files - Export updated ONNX + quantized model Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>ae7305b
-
Extract city_country_map to separate file with 317 cities
Somasundaram Ayyappan +1: Claude Opus 4.6 (1M context)Moved from inline resume_config.json (54 entries) to dedicated city_country_map.json (317 entries) organized by region. Added coverage for India (45 cities), US (80+), UK (25), Canada, Germany, France, Australia, East/Southeast Asia, Middle East, and broader Europe. Post-processor loads from file path in config, falls back to inline map. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>a05717f -
Add DATE config and widen entity punctuation cleanup
Somasundaram Ayyappan03116a3 -
Make post-processing fully config-driven from resume_config.json
Somasundaram Ayyappan +1: Claude Opus 4.6 (1M context)Every tunable parameter now lives in resume_config.json so any language implementation can apply identical post-processing rules: - entity_rules: per-entity min_length, exceptions, blocked_words, uppercase_bypass, gazetteer_bypass, aliases, reject_patterns - date_words, present_words for date parsing - space_collapse_pairs for token cleanup - title_company_separators for splitting "Title at Company" - company_gazetteer_match_max_words for prefix matching - max_experience_months for sanity checking - country_name_aliases for location inference - seniority_by_experience_count for fallback seniority No hardcoded domain values remain in Python — all behavior is configurable via the JSON file. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>a56f909 -
Move post-processing rules from Python to resume_config.json
Somasundaram Ayyappan +1: Claude Opus 4.6 (1M context)Externalizes all tunable post-processing parameters so any language consumer (JS/TS, etc.) can apply the same rules from config: - min_lengths for COMPANY, TITLE, SKILL - proficiency_words filter list - skill_aliases and cert_aliases normalization maps - span_merge_max_gap and span_merge_labels Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>cdacc8d -
Remove hand-picked short skills allowlist for generic post-processing
Somasundaram Ayyappan +1: Claude Opus 4.6 (1M context)Use uppercase-only gate for short skills (<=3 chars) instead of maintaining a curated allowlist. Trades off Go/R/C detection for fully generic rules with no benchmark-specific tuning. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>f37acde -
Improve post-processing and add 98 real-world resume training data
Somasundaram Ayyappan +1: Claude Opus 4.6 (1M context)Post-processing fixes: - Drop short COMPANY fragments (<=3 chars) not in gazetteer - Drop short SKILL fragments (<=3 chars lowercase) with allowlist for known short skills (Go, R, C, Bun, Vue, dbt, etc.) - Reject URLs misclassified as EMAIL (// or www. without @) - Filter language proficiency words from SKILL (Native, Fluent, etc.) - Drop TITLE spans <=2 chars Training data: - Add 98 silver-labeled resumes from resume-resource.com PDFs - Wire resume_resource_labeled.json into training pipeline - Add label_resume_pdfs.py for PDF extraction and auto-labeling Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>a11ed90 -
Improve structured benchmark analysis and robustness
Somasundaram Ayyappan4129d85 -
Clean up training pipeline and add export benchmarks
Somasundaram Ayyappan750e1a2