MoodLens AI Emotion Detection from Text | Flask Machine Learning Final Year Project with Source Code

MoodLens AI Emotion Detection from Text | Flask Machine Learning Final Year Project with Source Code

Paste any sentence, get the emotion behind it with a confidence score. A Flask + scikit-learn final year project with a cross-domain Transfer Lab your examiner has definitely never seen before.

Technology Used

Python | Flask | scikit-learn | NLTK | Chart.js | Bootstrap 5

codeAj
codeAjVerified
🏆5K+ Projects Sold
Google Review
5991999

Get complete project source code + Installation guide + chat support


What This Project Actually Does

You type a sentence into a box. MoodLens reads it and tells you what the person writing it was probably feeling — happy, angry, scared, in love, bored, whatever — along with a confidence number for each guess. Under the hood it's a TF-IDF vectorizer feeding a logistic regression classifier trained on labelled emotion text, so nothing here is magic. It's honest machine learning that you can actually explain when your guide asks how it works.

The model handles ten-plus emotion classes: happiness, sadness, anger, fear, love, surprise, enthusiasm, fun, hate, and neutral. Results come back on screen as a Chart.js breakdown instead of a boring number dump, and every prediction you make during a session gets stored in a history panel you can clear with one click.

But the part that actually makes this listing different is the Transfer Lab. More on that below.

The Transfer Lab, Explained Simply

Here's the thing about emotion models: one trained on tweets falls apart on forum posts. Different vocabulary, different length, different way of expressing anger. The Transfer Lab is a separate Flask blueprint that trains a model per text domain — social media, forums, narrative writing — and then tests each one on every other domain.

What you get out of it:

  • A transfer matrix showing macro-F1 and accuracy for every train-domain / test-domain pair, so you can literally point at a cell and say "this is where the model breaks"
  • Vocabulary overlap analysis between domains, which explains why the numbers drop
  • A domain gap summary with plain-English interpretation of each score
  • Side-by-side comparison — type one sentence, watch three differently-trained models disagree about it in real time

This is the section that turns a normal emotion detector into something with an actual research angle. Viva panels love questions they can dig into, and "why did your forum model score lower on social text" is a question you'll have a real answer for.

Key Features

  • Type or paste text on the predict page and get a classified emotion back in about a second — no page reload, it hits /api/predict over fetch
  • Confidence scores rendered as a Chart.js 4 bar breakdown, themed to match the rest of the UI through chart-config.js
  • Session-based prediction history at /api/history, with a clear-history endpoint so demo runs stay clean
  • Transfer matrix API at /transfer/api/matrix that serves cached results from artifacts/ instead of retraining on every page load
  • Cross-domain comparison endpoint at /transfer/api/compare for the side-by-side view
  • A CLI mode — python -m transfer.engine --train social --test forum — which is great for screenshots in your project report
  • Neomorphism (Soft UI) design system with a dual-shadow card style, built in plain CSS3 in style.css. Soft, extruded, genuinely nice to look at
  • Working contact form wired to /api/contact, because examiners always click it

What's Inside the Folder

Nothing is hidden. app.py holds the Flask routes, prediction.py holds the inference pipeline, and the trained artifacts live in models/ as four pickle files — tfidf_vectorizer.pkl, label_encoder.pkl, logistic_regression_model.pkl, and metadata.pkl. The transfer module sits in its own transfer/ package with routes.py and engine.py split cleanly. Six Jinja templates, three JS files, two CSS files. That's the whole thing.

Real-World Applications

Customer support teams run this kind of classifier over incoming tickets to push angry ones to the top of the queue. Product teams point it at app store reviews to see whether a release made people happy or furious. Mental wellness apps use a softer version of it to flag journal entries that sound low over several days.

The Transfer Lab has a use of its own — any company moving an NLP model from one data source to another needs to know how much accuracy they'll lose. That's a real, boring, expensive problem, and this project demonstrates the measurement of it.

And for a college demo? A live emotion classifier is one of the few AI final year projects where the examiner can test it themselves in five seconds. That matters more than you think.

One Hard Part, One Easy Part

The genuinely hard bit is the dataset. You need an emotion-labelled CSV with text and emotion columns, and you need to train the model yourself by running the included notebook to produce the pickle files. Preprocessing is fussy — NLTK punkt, stopwords, wordnet, omw-1.4 all have to be downloaded before anything works, and if you skip one you'll get a confusing error that looks like a code bug but isn't.

The easy part is everything after that. Once models/ has its four files, running the app is one command and the whole thing loads at localhost:5000. No Docker, no cloud account, no database to configure. Flask, a virtualenv, and you're live.

Who Should Buy This

If you're a student who needs a working project for your college submission, final-year project, semester project, internship, or academic demonstration, this is for you. Whether you're studying BCA, B.Tech, MCA, M.Tech, Computer Science, IT, AI, Data Science, or another related field, you can choose a project that fits your requirements. If you need the source code, project report, documentation, or help setting up and running the project, CodeAj gives you the resources and support to get started faster.

Especially good if your syllabus expects an NLP or machine learning component and you want something with a bit of research depth instead of another CRUD app. If you're still comparing options, browse the wider set of AI final year projects before you decide.

Why CodeAj

You get the complete source code, the project report and documentation, and setup support if the installation fights you. We've watched enough students lose a week to a broken pip install to know that shipping code without help isn't actually helping. Every file that runs on our machine is in the zip you download — no stripped-down demo version, no "premium" upsell for the model files. If you like this stack, the rest of our Flask projects with source code follow the same structure, and if you want something closer to opinion mining on reviews, look at the sentiment analysis project instead. Different problem, similar comfort level.

Frequently Asked Questions

You will get the complete source code along with an installation guide and chat support to help you set up and understand the project.
All our projects are thoroughly tested multiple times, so the code is completely error-free. But in case you still face any issue, you can reach out to us on WhatsApp (+91 8603862290) and we will fix it and provide you the updated code.
You can book a 1-on-1 Setup & Explanation Session where we connect via AnyDesk and Google Meet, set up the project on your laptop, and explain the complete code working and flow.
No, you cannot re-sell the project. This is completely illegal and a violation of our terms. If we find any such activity, we will take legal action.
Yes. The training happens inside one notebook that you run cell by cell, and the pipeline is TF-IDF plus logistic regression, which is the easiest kind of ML to explain out loud. You are not building a neural network here. If you can read Python, you can defend this.
Say the text gets cleaned with NLTK, converted into TF-IDF weighted features, and passed to a logistic regression classifier that outputs a probability for each emotion class. The highest probability becomes the prediction and the rest become the confidence bars on screen. That is the whole chain, and it is true.
Only for the Bootstrap and Font Awesome CDN links, which affect styling. The prediction itself runs entirely on your machine from the local pickle files. Download the CSS and JS locally the night before if your college wifi is unreliable, and you are safe.
Optional. The main prediction app runs fine on its own. The Transfer Lab is a separate Flask blueprint with its own routes, so you can leave it out of your report if your syllabus does not need it. Most students keep it because it is the part that makes the project stand out.
Free. Any emotion-labelled CSV with a text column and an emotion column works, and Kaggle emotion detection datasets are the usual source. Drop the file into the data folder and the training notebook picks it up.
Yes, and it is a good idea if your dataset is small. Filter the rows before training and the label encoder adjusts automatically. Fewer classes usually means better accuracy, which looks better in your results chapter.
About twenty to thirty minutes including the pip install, and the model training itself takes a few minutes on a mid-range laptop with no GPU. This is not a deep learning project, so your four year old Dell will cope.
Change the domains in the Transfer Lab, or retrain on a different dataset so your accuracy numbers differ. Swap the Neomorphism colour variables in style.css for a different palette. Add one emotion class the others do not have. Small changes, completely different submission.
Installation Guide

Extra Add-Ons Available – Elevate Your Project

Add any of these professional upgrades to save time and impress your evaluators.

Live 1-on-1 Mentorship

Personal session with an expert developer

Project Setup

We'll install and configure the project on your PC via remote session (Google Meet, Zoom, or AnyDesk).

Source Code Explanation

1-hour live session to explain logic, flow, database design, and key features.

Want to know exactly how the setup works? Review our detailed step-by-step process before scheduling your session.

999

Custom Documents (College-Tailored)

  • Custom Project Report: ₹1,500
  • Custom Research Paper: ₹1,000
  • Custom PPT: ₹800

Fully customized to match your college format, guidelines, and submission standards.

Project Modification

Need feature changes, UI updates, or new features added?

Charges vary based on complexity.

We'll review your request and provide a clear quote before starting work.

Project Files

GoogleReviews

What Our Students Say

4.9(38+ reviews)
Google review 1
Google review 2
Google review 3
Google review 4
Google review 5
Google review 6
Google review 7
Google review 8
Google review 9
Google review 10
Google review 11
Google review 12
Google review 13
Google review 14
Google review 15
Google review 16
Google review 17
Google review 18
Google review 19
Google review 20
Google review 21
Google review 22
Google review 23
Google review 24
Google review 25
Google review 26
Google review 27
Google review 28
Google review 29
Google review 30
Google review 31
Google review 32
Google review 33
Google review 34
Google review 35
Google review 36
Google review 37
Google review 38
⭐ 98% SUCCESS RATE
  • Full Development
  • Documentation
  • Presentation Prep
  • 24/7 Support