Multilingual Historical Person–Place Relation Extraction
A Calibrated Transformer Ensemble with Relation-Specific Language-Adaptive Routing
MHIPEX is a research framework for extracting person–place relations from multilingual historical newspaper archives. Given a (person, location) entity pair and its surrounding newspaper article, MHIPEX classifies two distinct relations:
| Relation | Question | Classes |
|---|---|---|
at | Did this person have a geographical connection to this place? | FALSE · PROBABLE · TRUE |
isAt | Is this person physically at this place around the article's publication date? | FALSE · TRUE |
The system operates across three languages (English, French, German) and is evaluated using macro-recall (MR) across both relations — a metric that penalizes models which ignore rare classes.
Authors: Aman Jaiswal & Dr. Sarika Jain
Affiliation: National Institute of Technology Kurukshetra, India
Target Journal: Knowledge-Based Systems (Elsevier)
| System | MR | at Recall | isAt Recall |
|---|---|---|---|
| MHIPEX-RLAE (Ours) | 0.6094 ± 0.0016 | 0.5216 | 0.6972 |
| LIA-Avignon (1st Place HIPE) | 0.5842 | 0.5011 | 0.6673 |
| UvA-ILPS (2nd Place HIPE) | 0.5610 | 0.4855 | 0.6365 |
| Mistral-7B (4-bit, few-shot) | 0.4281 | 0.3582 | 0.4980 |
| System | MR | at | isAt |
|---|---|---|---|
| Majority class baseline | 0.333 | 0.333 | 0.333 |
| mBERT | 0.4270 | 0.3543 | 0.4997 |
| hmBERT (calibrated) | 0.5527 | 0.4504 | 0.6550 |
| mDeBERTa-v3 (best single) | 0.5798 | 0.4714 | 0.6882 |
| Fixed ensemble (β = 0.60) | 0.6057 | 0.5134 | 0.6980 |
| MHIPEX-RLAE | 0.6148 ± 0.0021 | 0.5304 | 0.6993 |
MHIPEX employs a dual-encoder architecture with post-hoc ensemble routing:
Newspaper Article + Entity Pair
│
┌─────────┴─────────┐
▼ ▼
Input Enrichment Input Enrichment
(<P>, <L>, <DATE>, (<P>, <L>, <DATE>,
<LANG> markers) <LANG> markers)
│ │
▼ ▼
mDeBERTa-v3 XLM-RoBERTa
(278M) Large (560M)
│ │
CLS + Mean Pooling CLS + Mean Pooling
+ Multi-Sample + Multi-Sample
Dropout (K=3) Dropout (K=3)
│ │
Dual Heads Dual Heads
(at: 3-way, (at: 3-way,
isAt: 2-way) isAt: 2-way)
│ │
└─────────┬─────────┘
▼
RLAE: Relation-Specific
Language-Adaptive Ensemble
(per-relation, per-language
β weights + τ thresholds)
│
▼
Final Predictions
RLAE (Relation-Specific Language-Adaptive Ensemble) is a conditional Mixture-of-Experts gating mechanism that learns independent mixing weights for each (relation type × language) combination. Unlike global ensembling:
at) benefits from mDeBERTa-v3's disentangled attentionisAt) varies by language — XLM-R Large dominates for French, while mDeBERTa-v3 is stronger for GermanAll experiments are designed to run on Kaggle with 2 × NVIDIA T4 GPUs (16 GB VRAM each). Each script is fully self-contained — paste into a single notebook cell and run.
| # | Experiment | Script | Output |
|---|---|---|---|
| 1 | Master Pipeline (Official Test Set) | mhipex_master_pipeline.py | results/ |
| 2 | Main Training (v31) | kaggle_mhipex_v31_a1.py + a2.py | Model checkpoints |
| 3 | RLAE Optimization | kaggle_mhipex_rlae.py | out_rlae/ |
| 4 | Ablation Study (A0–A6) | kaggle_mhipex_ablations.py | ablation_results.csv |
| 5 | Cross-Dataset Validation | kaggle_mhipex_crossval.py | crossval_results.csv |
| 6 | Entity-Marker Baseline | kaggle_mhipex_entity_marker_baseline.py | entity_marker_results.csv |
| 7 | KG Augmentation (Single) | kaggle_mhipex_kg.py | kg_results.csv |
| 8 | Multi-KG (Wikidata / GeoNames / Getty) | kaggle_mhipex_multikg.py | multi_kg_results.csv |
| 9 | OCR-Noise Robustness | kaggle_mhipex_ocr_robustness.py | ocr_robustness_results.csv |
.py script into a single cellgit clone https://github.com/amanraj74/MHIPEX.git
cd MHIPEX
pip install torch transformers datasets scikit-learn pandas tqdm
python mhipex_master_pipeline.py
MHIPEX/
│
├── paper/
│ ├── main.tex # Full paper source (journal format)
│ ├── compile_pdf.py # LaTeX → PDF with embedded figures
│ └── figures/
│ ├── architecture1.png # System architecture diagram
│ ├── fig1_label_distribution.png # Class distribution visualization
│ ├── fig2_confusion_matrices.png # Confusion matrices (at + isAt)
│ └── fig6_error_analysis.png # Error category breakdown
│
├── data/
│ ├── de-train.jsonl / de-dev.jsonl # German data
│ ├── en-train.jsonl / en-dev.jsonl # English data
│ └── fr-train.jsonl / fr-dev.jsonl # French data
│
├── mhipex_master_pipeline.py # End-to-end: train → evaluate → report
├── kaggle_mhipex_v31_a1.py # Training cell 1: setup + mDeBERTa-v3
├── kaggle_mhipex_v31_a2.py # Training cell 2: XLM-R Large
├── kaggle_mhipex_rlae.py # RLAE weight optimization
├── kaggle_mhipex_ablations.py # Ablation study (A0–A6)
├── kaggle_mhipex_crossval.py # Cross-dataset / zero-shot transfer
├── kaggle_mhipex_entity_marker_baseline.py # Soares et al. entity-marker baseline
├── kaggle_mhipex_kg.py # Single KG augmentation experiment
├── kaggle_mhipex_multikg.py # Multi-KG comparison experiment
├── kaggle_mhipex_ocr_robustness.py # OCR noise robustness experiment
├── run_mcnemar.py # Statistical significance test
├── gen_architecture.py # Architecture figure generator
│
├── *_results.csv # Experiment result files
├── results/ # Official test set metrics
└── README.md
| Dependency | Version |
|---|---|
| Python | 3.10+ |
| PyTorch | 2.x (CUDA) |
| Transformers | 4.44.2 |
| scikit-learn | 1.3+ |
| pandas | 2.0+ |
| GPU | NVIDIA T4 16 GB or better |
Title: MHIPEX: A Calibrated Transformer Ensemble for Multilingual Person–Place Relation Extraction in Historical Newspapers
Authors: Aman Jaiswal, Sarika Jain (NIT Kurukshetra)
| Section | Content |
|---|---|
| §1 Introduction | Problem formulation, 5 Research Questions (RQs), contributions |
| §2 Related Work | Multilingual transformers, document-level RE, KG integration, literature survey |
| §3 Dataset & Methodology | Task definition, architecture, RLAE algorithm, calibration |
| §4 Experimental Setup | Baselines, hyperparameters, reproducibility |
| §5 Results & Analysis | Performance tables, ablations, RLAE analysis, error analysis |
| §6 Core Extensions | KG augmentation, OCR robustness, ontology constraints |
| §7 Limitations | Honest assessment of current system boundaries |
| §8 Future Work | HIPE-2027, RAG-RE, GNN extensions |
| §9 Conclusion | Summary of contributions and findings |
| Table | Content |
|---|---|
| Table 1 | Comprehensive literature survey (2019–2026) |
| Table 2 | Dataset statistics & class distribution |
| Table 3 | Hyperparameter configuration |
| Table 4 | Main results (all backbones + ensemble) |
| Table 5 | Per-language performance breakdown |
| Table 6 | Computational cost comparison |
| Table 7 | Official test set results vs. leaderboard |
| Table 8 | Class-wise precision / recall / F1 |
| Table 9 | Ablation study (A0–A6) |
| Table 10 | Cross-dataset & zero-shot transfer |
| Table 11 | RLAE weight matrix (β) |
| Table 12 | KG augmentation results |
| Table 13 | OCR noise robustness |
@article{jaiswal2026mhipex,
title = {MHIPEX: A Calibrated Transformer Ensemble for Multilingual
Person--Place Relation Extraction in Historical Newspapers},
author = {Jaiswal, Aman and Jain, Sarika},
journal = {Knowledge-Based Systems},
publisher = {Elsevier},
year = {2026},
note = {Under review}
}
This project is released under the MIT License. If you use any part of this work in your research, please cite our paper.
Built with ❤️ at NIT Kurukshetra
50 commits
Jupyter Notebook
45.2%
Python
37.9%
TeX
16.9%
Multilingual Historical Person–Place Relation Extraction
A Calibrated Transformer Ensemble with Relation-Specific Language-Adaptive Routing
MHIPEX is a research framework for extracting person–place relations from multilingual historical newspaper archives. Given a (person, location) entity pair and its surrounding newspaper article, MHIPEX classifies two distinct relations:
| Relation | Question | Classes |
|---|---|---|
at | Did this person have a geographical connection to this place? | FALSE · PROBABLE · TRUE |
isAt | Is this person physically at this place around the article's publication date? | FALSE · TRUE |
The system operates across three languages (English, French, German) and is evaluated using macro-recall (MR) across both relations — a metric that penalizes models which ignore rare classes.
Authors: Aman Jaiswal & Dr. Sarika Jain
Affiliation: National Institute of Technology Kurukshetra, India
Target Journal: Knowledge-Based Systems (Elsevier)
| System | MR | at Recall | isAt Recall |
|---|---|---|---|
| MHIPEX-RLAE (Ours) | 0.6094 ± 0.0016 | 0.5216 | 0.6972 |
| LIA-Avignon (1st Place HIPE) | 0.5842 | 0.5011 | 0.6673 |
| UvA-ILPS (2nd Place HIPE) | 0.5610 | 0.4855 | 0.6365 |
| Mistral-7B (4-bit, few-shot) | 0.4281 | 0.3582 | 0.4980 |
| System | MR | at | isAt |
|---|---|---|---|
| Majority class baseline | 0.333 | 0.333 | 0.333 |
| mBERT | 0.4270 | 0.3543 | 0.4997 |
| hmBERT (calibrated) | 0.5527 | 0.4504 | 0.6550 |
| mDeBERTa-v3 (best single) | 0.5798 | 0.4714 | 0.6882 |
| Fixed ensemble (β = 0.60) | 0.6057 | 0.5134 | 0.6980 |
| MHIPEX-RLAE | 0.6148 ± 0.0021 | 0.5304 | 0.6993 |
MHIPEX employs a dual-encoder architecture with post-hoc ensemble routing:
Newspaper Article + Entity Pair
│
┌─────────┴─────────┐
▼ ▼
Input Enrichment Input Enrichment
(<P>, <L>, <DATE>, (<P>, <L>, <DATE>,
<LANG> markers) <LANG> markers)
│ │
▼ ▼
mDeBERTa-v3 XLM-RoBERTa
(278M) Large (560M)
│ │
CLS + Mean Pooling CLS + Mean Pooling
+ Multi-Sample + Multi-Sample
Dropout (K=3) Dropout (K=3)
│ │
Dual Heads Dual Heads
(at: 3-way, (at: 3-way,
isAt: 2-way) isAt: 2-way)
│ │
└─────────┬─────────┘
▼
RLAE: Relation-Specific
Language-Adaptive Ensemble
(per-relation, per-language
β weights + τ thresholds)
│
▼
Final Predictions
RLAE (Relation-Specific Language-Adaptive Ensemble) is a conditional Mixture-of-Experts gating mechanism that learns independent mixing weights for each (relation type × language) combination. Unlike global ensembling:
at) benefits from mDeBERTa-v3's disentangled attentionisAt) varies by language — XLM-R Large dominates for French, while mDeBERTa-v3 is stronger for GermanAll experiments are designed to run on Kaggle with 2 × NVIDIA T4 GPUs (16 GB VRAM each). Each script is fully self-contained — paste into a single notebook cell and run.
| # | Experiment | Script | Output |
|---|---|---|---|
| 1 | Master Pipeline (Official Test Set) | mhipex_master_pipeline.py | results/ |
| 2 | Main Training (v31) | kaggle_mhipex_v31_a1.py + a2.py | Model checkpoints |
| 3 | RLAE Optimization | kaggle_mhipex_rlae.py | out_rlae/ |
| 4 | Ablation Study (A0–A6) | kaggle_mhipex_ablations.py | ablation_results.csv |
| 5 | Cross-Dataset Validation | kaggle_mhipex_crossval.py | crossval_results.csv |
| 6 | Entity-Marker Baseline | kaggle_mhipex_entity_marker_baseline.py | entity_marker_results.csv |
| 7 | KG Augmentation (Single) | kaggle_mhipex_kg.py | kg_results.csv |
| 8 | Multi-KG (Wikidata / GeoNames / Getty) | kaggle_mhipex_multikg.py | multi_kg_results.csv |
| 9 | OCR-Noise Robustness | kaggle_mhipex_ocr_robustness.py | ocr_robustness_results.csv |
.py script into a single cellgit clone https://github.com/amanraj74/MHIPEX.git
cd MHIPEX
pip install torch transformers datasets scikit-learn pandas tqdm
python mhipex_master_pipeline.py
MHIPEX/
│
├── paper/
│ ├── main.tex # Full paper source (journal format)
│ ├── compile_pdf.py # LaTeX → PDF with embedded figures
│ └── figures/
│ ├── architecture1.png # System architecture diagram
│ ├── fig1_label_distribution.png # Class distribution visualization
│ ├── fig2_confusion_matrices.png # Confusion matrices (at + isAt)
│ └── fig6_error_analysis.png # Error category breakdown
│
├── data/
│ ├── de-train.jsonl / de-dev.jsonl # German data
│ ├── en-train.jsonl / en-dev.jsonl # English data
│ └── fr-train.jsonl / fr-dev.jsonl # French data
│
├── mhipex_master_pipeline.py # End-to-end: train → evaluate → report
├── kaggle_mhipex_v31_a1.py # Training cell 1: setup + mDeBERTa-v3
├── kaggle_mhipex_v31_a2.py # Training cell 2: XLM-R Large
├── kaggle_mhipex_rlae.py # RLAE weight optimization
├── kaggle_mhipex_ablations.py # Ablation study (A0–A6)
├── kaggle_mhipex_crossval.py # Cross-dataset / zero-shot transfer
├── kaggle_mhipex_entity_marker_baseline.py # Soares et al. entity-marker baseline
├── kaggle_mhipex_kg.py # Single KG augmentation experiment
├── kaggle_mhipex_multikg.py # Multi-KG comparison experiment
├── kaggle_mhipex_ocr_robustness.py # OCR noise robustness experiment
├── run_mcnemar.py # Statistical significance test
├── gen_architecture.py # Architecture figure generator
│
├── *_results.csv # Experiment result files
├── results/ # Official test set metrics
└── README.md
| Dependency | Version |
|---|---|
| Python | 3.10+ |
| PyTorch | 2.x (CUDA) |
| Transformers | 4.44.2 |
| scikit-learn | 1.3+ |
| pandas | 2.0+ |
| GPU | NVIDIA T4 16 GB or better |
Title: MHIPEX: A Calibrated Transformer Ensemble for Multilingual Person–Place Relation Extraction in Historical Newspapers
Authors: Aman Jaiswal, Sarika Jain (NIT Kurukshetra)
| Section | Content |
|---|---|
| §1 Introduction | Problem formulation, 5 Research Questions (RQs), contributions |
| §2 Related Work | Multilingual transformers, document-level RE, KG integration, literature survey |
| §3 Dataset & Methodology | Task definition, architecture, RLAE algorithm, calibration |
| §4 Experimental Setup | Baselines, hyperparameters, reproducibility |
| §5 Results & Analysis | Performance tables, ablations, RLAE analysis, error analysis |
| §6 Core Extensions | KG augmentation, OCR robustness, ontology constraints |
| §7 Limitations | Honest assessment of current system boundaries |
| §8 Future Work | HIPE-2027, RAG-RE, GNN extensions |
| §9 Conclusion | Summary of contributions and findings |
| Table | Content |
|---|---|
| Table 1 | Comprehensive literature survey (2019–2026) |
| Table 2 | Dataset statistics & class distribution |
| Table 3 | Hyperparameter configuration |
| Table 4 | Main results (all backbones + ensemble) |
| Table 5 | Per-language performance breakdown |
| Table 6 | Computational cost comparison |
| Table 7 | Official test set results vs. leaderboard |
| Table 8 | Class-wise precision / recall / F1 |
| Table 9 | Ablation study (A0–A6) |
| Table 10 | Cross-dataset & zero-shot transfer |
| Table 11 | RLAE weight matrix (β) |
| Table 12 | KG augmentation results |
| Table 13 | OCR noise robustness |
@article{jaiswal2026mhipex,
title = {MHIPEX: A Calibrated Transformer Ensemble for Multilingual
Person--Place Relation Extraction in Historical Newspapers},
author = {Jaiswal, Aman and Jain, Sarika},
journal = {Knowledge-Based Systems},
publisher = {Elsevier},
year = {2026},
note = {Under review}
}
This project is released under the MIT License. If you use any part of this work in your research, please cite our paper.
Built with ❤️ at NIT Kurukshetra
50 commits
Jupyter Notebook
45.2%
Python
37.9%
TeX
16.9%