SentientPulse is an airline-focused sentiment intelligence dashboard that analyzes customer tweets, classifies sentiment, and highlights operational issues such as delays, baggage problems, cancellations, and service complaints.
- Tracks airline customer sentiment in near real time.
- Helps surface high-impact service issues quickly.
- Provides an executive-friendly dashboard for monitoring brand health.
- Supports issue-level insights beyond basic sentiment classification.
This project uses the Twitter US Airline Sentiment dataset. The key columns are:
text: tweet content.airline_sentiment: sentiment label.negativereason: optional field for negative issue analysis.
- Training script:
model_trainer.py - Inference dashboard:
app.py - Feature extraction: TF-IDF
- Classifier: Linear SVM
- Visualization: Streamlit + Plotly
- Persistence: Joblib
- Load the raw CSV dataset.
- Remove missing rows and empty labels.
- Normalize tweet text.
- Train a TF-IDF + Linear SVM classification pipeline.
- Save the pipeline as
sentiment_pipeline.joblib. - Load the model in Streamlit.
- Predict sentiment for new text.
- Show live sentiment stream and airline aspect analysis.
python -m venv venv# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activatepip install -r requirements.txtPlace your CSV file in the project root as data.csv.
Required columns:
textairline_sentiment
Optional column:
negativereason
python model_trainer.pystreamlit run app.py- Missing values are dropped before training.
- Empty labels are removed.
- Text is normalized consistently in both training and inference.
- The model is saved as a reusable pipeline.
- The dashboard gracefully handles model-loading failures.
- Connect to live Twitter/X or RSS data.
- Add probability calibration.
- Replace keyword-based aspect analysis with trained ABSA.
- Add deployment with Docker and cloud hosting.
This project is licensed under the MIT License.