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
tkinterlibrary. - 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
newspaper3klibrary 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:
newspaper3kapplies 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
TextBloblibrary 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
tkinterGUI. 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.txtfile with the following content:newspaper3k nltk textblobThen, run the following command to install them:
pip install -r requirements.txt
-
Download NLTK Data The
TextBloblibrary 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.