Summarify is a simple yet powerful desktop application that instantly summarizes any online article. Just provide a URL, and this tool will fetch, analyze, and present the key information—including a summary and sentiment analysis—in a clean graphical user interface (GUI).
- ✨ Key Features
- đź§ How It Works
- 🛠️ Tech Stack
- 🚀 Getting Started
- đź“– How to Use
- đź’ˇ Potential Improvements
- One-Click Summarization: Automatically generates a concise summary of any online news article or blog post from its URL.
- Key Information Extraction: Instantly pulls the article's Title, Authors, and Publication Date.
- Sentiment Analysis: Analyzes the article's content to determine its overall sentiment (Positive, Negative, or Neutral).
- Simple Desktop GUI: A clean and user-friendly interface built with Python's native
tkinter
library. - Smart URL Handling: Automatically validates and formats URLs to ensure they are correct before processing.
The application follows a straightforward process:
- URL Input: The user pastes a URL into the input field.
- Article Fetching: The
newspaper3k
library downloads the HTML content of the article from the provided URL. - Content Parsing: The library then parses the downloaded content to extract the main text, title, authors, and publication date.
- NLP Summarization:
newspaper3k
applies its built-in Natural Language Processing (NLP) algorithms to generate a concise summary of the article. - Sentiment Analysis: The full text of the article is analyzed by the
TextBlob
library to calculate its polarity score, which determines if the sentiment is positive, negative, or neutral. - Display: All the extracted information is neatly displayed in the read-only fields of the
tkinter
GUI. Error handling is included to manage cases where an article cannot be downloaded or parsed.
This project is built entirely in Python, relying on a few key libraries for its functionality:
Category | Technology / Library |
---|---|
GUI Framework | tkinter (Python's standard GUI package) |
Web Scraping & NLP | newspaper3k (for article extraction and summarization) |
Sentiment Analysis | TextBlob |
Language Processing | NLTK (Natural Language Toolkit) - a dependency for TextBlob |
Follow these instructions to get the application running on your local machine.
- Python 3.x
pip
(Python package installer)
-
Clone the Repository
git clone [https://github.com/your-username/summarify.git](https://github.com/your-username/summarify.git) cd summarify
-
Create a Virtual Environment (Recommended)
# For Windows python -m venv venv venv\Scripts\activate # For macOS/Linux python3 -m venv venv source venv/bin/activate
-
Install Dependencies You will need to install a few packages. You can create a
requirements.txt
file with the following content:newspaper3k nltk textblob
Then, run the following command to install them:
pip install -r requirements.txt
-
Download NLTK Data The
TextBlob
library requires specific data packages from NLTK to function correctly. Run Python from your terminal and download the necessary data.python
Then, inside the Python interpreter, run:
import nltk nltk.download('punkt') exit()
This only needs to be done once.
-
Run the Application Execute your Python script to launch the GUI.
python your_script_name.py # Replace with the actual name of your script
- Run the application to open the Summarify window.
- Find an online article you want to summarize and copy its URL.
- Paste the URL into the "URL" input box at the bottom of the window.
- Click the "Summarize" button.
- Within a few seconds, the Title, Author, Publication Date, Summary, and Sentiment Analysis fields will be populated with the extracted information.