BTTC - A Bangla Tri-class Text Corpus for Spam, Ham, and Promotional Messages

Published: 5 March 2026| Version 1 | DOI: 10.17632/5wrm959d6f.1
Contributors:
,
,
,
,

Description

--------------------------------------------------------------------- 1. DATASET DESCRIPTION --------------------------------------------------------------------- BTTC (Bangla Tri-class Text Corpus) contains 10,283 unique labeled Bangla messages collected from various SMS users and public Telegram channels in Bangladesh. Unlike traditional binary datasets (Spam vs. Ham) in other languages, BTTC introduces a third category—"Promotional" (PROMO)—to distinguish legitimate marketing messages from malicious spam messages and normal ham messages. This dataset is designed to facilitate research in Bangla language spam detection, phishing identification, and linguistic analysis of promotional messages. It captures the linguistic shift from traditional SMS to modern messaging platforms like Telegram. --------------------------------------------------------------------- 2. CLASS DISTRIBUTION (Total: 10,283) --------------------------------------------------------------------- 1. HAM (3,904 messages): - Legitimate personal conversations. - Transactional notifications (Bank, Mobile Financial Services). - Government alerts and public service announcements. 2. PROMO (3,695 messages): - Marketing and promotional offers from telecom operators (GP, Robi, Airtel, Banglalink, Teletalk). - Focused on data packs, voice minutes, and bundle offers. 3. SPAM (2,684 messages): - Fraudulent messages and phishing attempts. - Online gambling and betting promotions. - Financial scams and fake prize offers. --------------------------------------------------------------------- 3. FILE STRUCTURE & COLUMNS --------------------------------------------------------------------- File Name: BTTC.csv Columns: A. Text: The raw messages, preserved in the same state as when they were collected (masked for privacy). B. Text_Clean: Cleaned version of Text, by removing line breaks (CHAR(10) and CHAR(13)), non-printable characters, and extra spaces in Excel. C. Label: The classification tag (HAM, PROMO, SPAM). D. Source: Platform origin (SMS or Telegram). E. Annotation_Process: - MANUAL: These messages were manually annotated by 3 annotators. - ANNOTATOR-REVIEWED: These messages were pseudo labeled using manually labeled data, then reviewed and fixed by 3 annotators. *PRIVACY NOTE:* All Personally Identifiable Information (PII) has been masked using a regex algorithm. - Phone Numbers: Last 5 digits are replaced with 'XXXXX'. - URLs: Domain kept (e.g., t.me), path masked (e.g., https://t.me/XXXXX). - Emails: Local part (before the @) is masked with 'XXXXX'. - Transaction IDs: Replaced with 'XXXXX'.

Files

Steps to reproduce

--------------------------------------------------------------------- 4. METHODOLOGY --------------------------------------------------------------------- 1. Collection: 30,950 messages were collected from 2 different sources, SMS from various users and Telegram messages from various Telegram public channels in Bangladesh. After text cleaning and deduplication, 13,237 unique messages remained. From these unique messages, 2,903 non-Bangla messages were excluded. Remaining 10,334 messages were then labeled. 2. Manual Labeling: Random 1,000 messages from both SMS and Telegram source (500 each) was chosen and manually labeled by 3 annotators independently, achieving a Fleiss' Kappa of 0.64. Then the majority vote label was chosen as final label, and in the cases of pure disagreement (three different labels (HAM/PROMO/SPAM) assigned by the three annotators), A 4th annotator decided its label. 3. Pseudo Labeling: Remaining 9,334 messages were pseudo labeled by a logistic regression model, which was trained on the 1,000 manually labeled message. Then these pseudo-labels were reviewed and fixed by 3 annotators. Final labels and machine labels were then compared and it was observed that annotators needed to fix only 4.09% messages. 4. Masking: Phone numbers, URLs, emails and Transaction IDs and codes were masked using 'XXXXX'. Then this masked data was deduplicated again, as masking the dataset made some data identical, resulting in a final dataset of 10,283 unique messages.

Institutions

Categories

Computer Science, Artificial Intelligence, Cybersecurity, Natural Language Processing, Machine Learning

Licence