Cross-lingual NLP pipeline (English <-> Hindi/Tamil/Marathi/Bengali) translating text with NLLB-200 and extracting Named Entities, Relations, and Temporal Events, via a Streamlit dashboard.
0
stars
3
commits
Python
primary language
Sep 2, 2026
updated
NLP Applications (S2-25_AIMLCZG519) — Assignment 2, Part 1 BITS Pilani Work Integrated Learning Programmes — M.Tech. Artificial Intelligence and Machine Learning
An integrated NLP pipeline that translates text between English and four Indic languages (Hindi, Tamil, Marathi, Bengali) while extracting Named Entities, Relations, and Temporal Events, exposed through an interactive Streamlit web dashboard.
Repository: github.com/hamza-aziz-ai/CrossLingual-IE-MT
| Student ID | Name | Contribution |
|---|---|---|
| 2024AC05133 | Hamza Aziz | 100% |
| 2024AC05114 | Kalpana S. | 100% |
| 2024AC05136 | Hardik Sharma | 100% |
| 2024AC05128 | Shubham Srivastava | 100% |
| 2024AC05109 | Nitin Verma | 100% |
The project uses pipenv for dependency management:
pip install --user pipenv
pipenv install --dev
pipenv run streamlit run frontend/app.py
pipenv install --dev installs everything, including the spaCy en_core_web_sm
model — no separate download step needed. See SETUP.md for full
installation instructions (including CPU vs. GPU torch), troubleshooting, and how
to generate the application screenshots.
| Assignment requirement | Location |
|---|---|
| 1. Source Code | backend/, frontend/ |
| 2. Setup Guide | SETUP.md |
| 3. System Report | docs/System_Report.docx / docs/System_Report.pdf |
| 4. Application Screenshots | screenshots/ — generated via tools/capture_screenshots.py, see screenshots/README.md |
| 5. Task-B Document | docs/Task_B_Efficiency_and_Optimization_Plan.pdf |
| Demo / module walkthrough (supplementary) | notebooks/demo_pipeline.ipynb — already executed with real outputs |
| Automated tests | tests/test_offline_modules.py (24 tests, pipenv run pytest tests/ -v) |
Indic input --[NLLB-200: Indic→English]--> English text --[NER + RE + Event]--> IE results
English input --[NLLB-200: English→Indic]--> Indic text (display only)
\--[NER + RE + Event on the original English]--> IE results
Translation runs on facebook/nllb-200-distilled-600M; Information Extraction runs on the
English side of the pair (Translate-then-Extract), using spaCy + IndicNER for NER,
REBEL (with an automatic rule-based fallback) for Relation Extraction, and spaCy +
dateparser for Event/Temporal Extraction. Full rationale, preprocessing steps, and
challenges encountered are documented in docs/System_Report.docx. The comparison against
a Direct Cross-Lingual Extraction architecture and a model-compression/deployment plan are
documented in docs/Task_B_Efficiency_and_Optimization_Plan.pdf.
3 commits
Python
57.0%
Jupyter Notebook
43.0%
Cross-lingual NLP pipeline (English <-> Hindi/Tamil/Marathi/Bengali) translating text with NLLB-200 and extracting Named Entities, Relations, and Temporal Events, via a Streamlit dashboard.
0
stars
3
commits
Python
primary language
Sep 2, 2026
updated
NLP Applications (S2-25_AIMLCZG519) — Assignment 2, Part 1 BITS Pilani Work Integrated Learning Programmes — M.Tech. Artificial Intelligence and Machine Learning
An integrated NLP pipeline that translates text between English and four Indic languages (Hindi, Tamil, Marathi, Bengali) while extracting Named Entities, Relations, and Temporal Events, exposed through an interactive Streamlit web dashboard.
Repository: github.com/hamza-aziz-ai/CrossLingual-IE-MT
| Student ID | Name | Contribution |
|---|---|---|
| 2024AC05133 | Hamza Aziz | 100% |
| 2024AC05114 | Kalpana S. | 100% |
| 2024AC05136 | Hardik Sharma | 100% |
| 2024AC05128 | Shubham Srivastava | 100% |
| 2024AC05109 | Nitin Verma | 100% |
The project uses pipenv for dependency management:
pip install --user pipenv
pipenv install --dev
pipenv run streamlit run frontend/app.py
pipenv install --dev installs everything, including the spaCy en_core_web_sm
model — no separate download step needed. See SETUP.md for full
installation instructions (including CPU vs. GPU torch), troubleshooting, and how
to generate the application screenshots.
| Assignment requirement | Location |
|---|---|
| 1. Source Code | backend/, frontend/ |
| 2. Setup Guide | SETUP.md |
| 3. System Report | docs/System_Report.docx / docs/System_Report.pdf |
| 4. Application Screenshots | screenshots/ — generated via tools/capture_screenshots.py, see screenshots/README.md |
| 5. Task-B Document | docs/Task_B_Efficiency_and_Optimization_Plan.pdf |
| Demo / module walkthrough (supplementary) | notebooks/demo_pipeline.ipynb — already executed with real outputs |
| Automated tests | tests/test_offline_modules.py (24 tests, pipenv run pytest tests/ -v) |
Indic input --[NLLB-200: Indic→English]--> English text --[NER + RE + Event]--> IE results
English input --[NLLB-200: English→Indic]--> Indic text (display only)
\--[NER + RE + Event on the original English]--> IE results
Translation runs on facebook/nllb-200-distilled-600M; Information Extraction runs on the
English side of the pair (Translate-then-Extract), using spaCy + IndicNER for NER,
REBEL (with an automatic rule-based fallback) for Relation Extraction, and spaCy +
dateparser for Event/Temporal Extraction. Full rationale, preprocessing steps, and
challenges encountered are documented in docs/System_Report.docx. The comparison against
a Direct Cross-Lingual Extraction architecture and a model-compression/deployment plan are
documented in docs/Task_B_Efficiency_and_Optimization_Plan.pdf.
3 commits
Python
57.0%
Jupyter Notebook
43.0%