Code-derived reconstruction
The proprietary methods are not black boxes
The reconstruction is based on the supplied Java implementation in edoc-260. HNLP is a deterministic, schema-conditioned rule and dictionary system with optional OpenNLP tokenization. BERT MULTI is a GLiNER span model embedded inside proprietary chunking, thresholding, sanitization, deduplication, mapping, grouping, splitting, and backfill logic.
Hybrid NLP (Fast, Local)
Dictionaries, section search, multilingual synonyms, and bounded fuzzy recovery
Schema and resource binding
Field keys, titles, descriptions, heading_aliases, segment guidance, and non-comparison headings become executable extraction configuration. RuntimeTagCatalog, hnlp_skills_en.txt, djl_skills_en.txt, and localized dictionaries supply canonical lexical evidence.
Multilingual synonym search
Language detection selects language-aware resources. For non-default languages, configured section terms can be expanded through DictionaryService.expandQueryTerms. This is controlled lexical expansion, not unrestricted semantic translation.
Heading and fuzzy search
Exact, prefix, containment, and restricted fuzzy heading matches score 1.00, 0.95, 0.90, and 0.82. The base threshold is 0.75 and adapts within [0.45, 0.95]. Fuzzy phrases have equal token counts, no more than three tokens, long-token gates, and at most one bounded Levenshtein edit.
Section state machine
Canonical headings flush and open sections; ignored headings suppress content until a later valid boundary; local subheadings remain within a section; ambiguous headings use look-ahead evidence and dominance margins; headerless recovery uses constrained content inference.
Field evidence and normalization
Experience, skills, education, certifications, languages, seniority, and category use different regex, list, date, phrase, context, and negative-evidence rules. Winners are normalized, deduplicated, merged, and contract-validated.
NLP BERT MULTI (DJL)
Schema-conditioned GLiNER spans plus proprietary deterministic assembly
Query-plan compilation
SchemaDrivenEntityPlanBuilder recursively converts x_gliner metadata into labels, sections, destination paths, score floors, constraints, line modes, split rules, grouping windows, dedupe scopes, and assignment modes.
Dual chunk views
The runtime creates broad section chunks and focused line-context chunks. Defaults are 220 words, 30-word overlap, and at most four labels per prompt. Label order and batch composition are untested treatment variables.
Span inference and fallback
DJL tokenization and ONNX inference produce span-label logits; sigmoid scores are accepted at a default 0.10 threshold. Supported line modes can retain one dominant sub-threshold span at max(0.05, 0.6τ), followed by optional line-fragment expansion.
Sanitize and deduplicate
Candidates can be rejected or relabelled. Duplicate tolerance is max(60, min(260, 8o + 40)) characters. Replacement uses a +0.08 score margin; a longer nested span can replace a shorter one under a +0.06 rule.
Map and assemble
DjlSchemaMapper applies section, score, regex, length, split, grouping, template, cardinality, and deduplication rules. Summary/backfill and canonical validation follow. A correct neural span can therefore disappear—or completeness can increase—outside the encoder.
Operating conditions
Optimality requirements differ by architecture
| Condition | HNLP | BERT MULTI |
|---|---|---|
| Headings | Conventional or configured headings are a primary boundary signal; missing headings can sharply reduce section recall. | Headings improve chunk selection and disambiguation but contextual spans may survive without them. |
| Spelling and OCR | Exact dictionaries and regex are vulnerable; bounded fuzzy rules recover only constrained variation. | Subwords tolerate some variation, but severe OCR and tokenizer mismatch lower scores and corrupt offsets. |
| Language | Requires correct detection plus localized aliases, dictionaries, and synonym resources. | Requires verified multilingual weights, matching tokenizer, and language-calibrated labels. |
| Target form | Strong for explicit sections, lists, dates, and canonical vocabulary. | Strong for explicit contiguous entity-like spans; weaker for long sections and dispersed inference. |
| Layout | Flattened columns directly damage stateful section boundaries. | Flattened layout damages chunks, proximity grouping, and source offsets. |
Academic reproducibility
Minimum artifact record
Archive the application commit; Java source hashes; schema; expanded query plan; dictionary and synonym manifests; optional OpenNLP load log; ONNX and tokenizer hashes; DJL and native provider versions; chunk and label batches; raw/sanitized/merged candidates; mapping decisions; backfill origin; and final field-to-PDF lineage.
The multilingual subclass changes the local model path but inherits a parent remote fallback identifier. The report therefore names the selected application strategy while refusing to assert the exact executed weights without a model manifest.