A lightweight Flask-based text summarization web app that uses Natural Language Processing (NLP) techniques to generate concise summaries from long text inputs.
The project demonstrates extractive summarization using word-frequency scoring and provides a clean, modern user interface.
- Extractive text summarization
- NLP-based sentence scoring (NLTK)
- Simple Flask web interface
- Modern, responsive UI with custom CSS
- Copy summary to clipboard
- Lightweight & easy to deploy
- Backend: Python, Flask
- NLP: NLTK
- Frontend: HTML, CSS, Jinja2
- Deployment-ready: Gunicorn compatible
TextSummerizer/ │ ├── tsapp.py ├── requirements.txt │ ├── templates/ │ ├── index.html │ └── output.html │ └── README.md
- Input text is cleaned and tokenized into sentences and words
- Stopwords are removed
- Word frequencies are computed and normalized
- Sentences are scored based on word importance
- Top-ranked sentences are selected proportionally to text length
- Summary is rendered on the output page
This approach ensures interpretability and avoids dependency on heavy external models.
bash git clone https://github.com/your-username/text-summarizer.git cd text-summarizer
python -m venv .venv source .venv/bin/activate # macOS/Linux .venv\Scripts\activate # Windows
pip install -r requirements.txt
python tsapp.py
Open your browser and visit:
Flask==3.0.0 nltk==3.8.1
Add screenshots here for GitHub / LinkedIn showcasing UI and summary output.
- Summarizing articles or reports
- Academic or research text condensation
- NLP coursework demonstrations
- Resume & portfolio projects
- TF-IDF based summarization
- Transformer-based abstractive summarization (BART / T5)
- Adjustable summary length slider
- Download summary as PDF/TXT
- Hands-on NLP preprocessing
- Flask routing & templating
- Sentence ranking & scoring
- Clean UI integration with backend logic
This project is for educational and personal use. Feel free to fork, modify, and enhance.
Bhalchandra Shinde
MS in Artificial Intelligence
Northeastern University – Silicon Valley