atdokmeci's picture
Update README.md
9d8289f verified
# Sentiment Analysis Model
This model is designed for sentiment analysis of English text. It predicts the sentiment of a given text as one of three classes: `positive`, `neutral`, or `negative`. The model was trained on a combination of datasets from Kaggle and Sentiment140.
## Model Description
The model card describes two approaches:
1. **Baseline Model**: A classical machine learning pipeline using TF-IDF vectorization and Logistic Regression.
2. **CNN Model**: A lightweight Convolutional Neural Network (CNN) implemented in Keras.
The best-performing model (based on validation macro-F1 score) is selected for inference.
### Baseline Model
- **Vectorizer**: TF-IDF (word + character n-grams)
- **Classifier**: Logistic Regression
- **Features**: 200,000 max features, n-gram range (1, 2)
### CNN Model
- **Tokenizer**: Keras Tokenizer
- **Architecture**: Embedding layer -> 1D Convolution -> Global Max Pooling -> Dense layers
## Training Data
The model was trained on a combination of datasets:
- **Kaggle Train**: 27,477 samples
- **Sentiment140 Train**: 300,000 balanced samples
- **Sentiment140 Manual Test**: 516 samples
The datasets were cleaned and unified into a common schema with `text` and `sentiment` columns.
## Evaluation
The model was evaluated on a stratified validation split (15% of the training data). The best model was selected based on the macro-F1 score.