Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Summify

Summify is a summarization project with two separate applications:

  • Abstractive Summarizer: A Streamlit app that summarizes input text and uploaded documents using a transformer model.
  • Extractive Summarizer: A Flask app that summarizes text and article URLs using spaCy and LexRank-style sentence scoring.

Repository Structure

  • Abstractive-Summify-main/: Streamlit-based abstractive summarizer
  • Extractive-Summify/: Flask-based extractive summarizer

Features

  • Summarize pasted text
  • Summarize uploaded PDF and DOCX files in the abstractive app
  • Summarize article content from a URL in the extractive app
  • Display readability metrics in the extractive app

Technologies Used

  • Abstractive app: Streamlit, Transformers, Torch, PyPDF2, python-docx
  • Extractive app: Flask, spaCy, Sumy, BeautifulSoup, textstat
  • Language model: sshleifer/distilbart-cnn-12-6

Clone the Repository

git clone https://github.com/AnshShah-18/Summify.git
cd Summify

Setup and Run

1. Abstractive Summarizer

cd Abstractive-Summify-main
python3.10 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
streamlit run app.py

Notes:

  • The app runs locally at http://localhost:8501 by default.
  • The first summarization request may take longer while the model downloads and caches.

2. Extractive Summarizer

cd Extractive-Summify
python3.10 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m spacy download en_core_web_sm
flask --app app.py run

Notes:

  • The Flask app runs locally at http://127.0.0.1:5000 by default.
  • If you want to use a different port, run flask --app app.py run --port 5001.

Usage

Abstractive App

  1. Open the Streamlit app.
  2. Choose either Summarize Text or Summarize Document.
  3. Paste text or upload a .pdf / .docx file.
  4. Click the summarize button to generate a summary.

Extractive App

  1. Open the Flask app.
  2. Paste text into the text summarizer, or provide a URL.
  3. Submit the form to generate an extractive summary.
  4. Review the readability metrics shown in the UI.

Important Notes

  • This repository does not use a single root requirements.txt; each app has its own dependency file.
  • The current abstractive app uses a BART-based summarization model rather than T5.
  • Summary length is currently determined by the app logic and is not user-configurable in the UI.

Future Improvements

  • Add one-click setup scripts for both apps
  • Unify the project structure and documentation
  • Add tests for startup and summarization flows
  • Improve model and UI consistency across both apps

Contributions

Contributions are welcome. Feel free to open an issue or submit a pull request.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages