Arabic and English intent classifier for a bank contact centre
Classify customer messages in Arabic, English and mixed Arabizi into 20 banking intents, measure accuracy per language, and route low-confidence messages to a person.
Industry project · for Al Waha National Bank, a retail bank in Abu Dhabi with 1.1 million customers and a 260-seat contact centre
Al Waha's contact centre receives about 42,000 chat and WhatsApp messages a week. Around 55% are in Arabic (mostly Gulf dialect, not formal Arabic), 35% in English and 10% in a mix, often Arabic written in Latin letters with numbers for some sounds ("3ayez a7awel flous"). Every message currently waits in one queue until an agent reads it and moves it to the right team. Median time to first response is 11 minutes, and the bank wants it under 2.
The plan is to classify each message into one of 20 intents (card blocked, transfer status, loan enquiry, statement request and so on) and route it straight to the right queue. The head of customer experience has two conditions. The classifier must be at least as accurate in Arabic as in English, because the bank serves Emirati customers first. And it must hand anything it is unsure about to a general queue rather than send it to the wrong team.
Real chat logs are confidential, so you will start from the public Banking77 English dataset, map its labels to the bank's 20 intents, and build an Arabic and Arabizi set of at least 1,200 messages by careful translation and rewriting, ideally checked by a native Gulf Arabic speaker.
You will compare a TF-IDF baseline with a multilingual sentence-embedding classifier and a fine-tuned multilingual transformer. The targets are a macro-F1 of at least 0.85 in each language, and at most 3% of messages sent to a wrong team after confidence routing.
Done looks like a dataset with a data card, a results table per language, a routing threshold chosen from data, and a small API.
GitHub repo + data/messages.csv with data card + reports/results.md (per-language metrics, confusion matrix) + routing threshold note + /classify API
Stack: Python, scikit-learn, Hugging Face Transformers, sentence-transformers, FastAPI
- Quality multilingual data25
At least 1,200 Arabic and Arabizi messages across 20 intents, written in Gulf style, with a labelling guide and a native-speaker check on a sample.
- Per-language results30
Macro-F1 is reported separately for English, Arabic and Arabizi for all three models, and the best reaches 0.85 in each or the gap is explained.
- Safe routing25
A threshold chosen on validation keeps wrong-team routing at or below 3% on test, with the share sent to the general queue stated.
- Working service20
A /classify endpoint returns intent, confidence and queue, with tests for each language.
Pass 60% · Merit 75% · Distinction 90%
Engineering Students
Diploma, B.Tech, B.E., BCA, MCA, or M.Tech students seeking practical experience.
Aspiring Developers
Developers who want to build proof-of-work capstone projects for tech resumes.
Job Seekers
Graduates looking for AI-evaluated code review & verified industry credentials.