Engineers Clinic
IntermediateSoftware trackFP-AI-07

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.

AI, Data & AnalyticsNatural Language Processing (NLP)
5 Guided Steps43h Internship TierSubmit: GitHub repo + data/messages.csv with data card + reports/results.md (per-language metrics, confusion matrix) + routing threshold note + /classify APIVerified CertificateAI Rubric Graded
Program Overview

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.

Multilingual text classificationDataset construction and labellingSentence embeddingsTransformer fine-tuningPer-group evaluationConfidence-based routing
What you submit

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

How it is graded
  • 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%

Learning Outcomes
Build a multilingual labelled dataset with a clear guide
train and compare three classifiers
report metrics per language and intent
choose a confidence threshold for routing
serve the model behind an API
Target Audience

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.