Scraped BBC Amharic articles, applied NLP preprocessing, and trained ML models (Logistic Regression, SVM, Random Forest) achieving 89% accuracy in classifying news categories.
# BBC Amharic News Classification
This project is a machine learning-based text classification system for BBC Amharic news articles. The goal is to automatically categorize news into predefined topics using natural language processing (NLP) techniques.
## Dataset
* **Source:** BBC Amharic
* **Collection:** Scraped using Python's BeautifulSoup library
* **Size:** 3,868 news articles
* **Categories:**
* ፖለቲካ (Politics)
* ጤና (Health)
* ስፖርት (Sports)
* ቴክኖሎጂ (Technology)
* ምጣኔ ሃብት (Wealth & Economy)
## Methodology
* **Text Preprocessing:** Tokenization, cleaning, and TF-IDF vectorization
* **Train/Test Split:** Standard split of the dataset for training and evaluation
* **Algorithms Tested:**
* Random Forest Classifier
* Support Vector Machine (SVM)
* Logistic Regression
* Multinomial Naive Bayes
## Results
| Classifier | Accuracy |
| ------------------- | -------- |
| Random Forest | 0.8680 |
| SVM | 0.8900 |
| Logistic Regression | 0.8875 |
| Naive Bayes | 0.8719 |
### Key Observations
* **Best performing model:** SVM (Accuracy: 89%)
* **High-performing categories:** Sports (ስፖርት) consistently achieved high precision and recall across all models.
* **Challenging category:** Wealth & Economy (ምጣኔ ሃብት) had slightly lower recall compared to other categories.
## Tools & Libraries
* Python 3.x
* `BeautifulSoup` for web scraping
* `scikit-learn` for machine learning models and evaluation
* `pandas` & `numpy` for data manipulation