{"id":21082365,"url":"https://github.com/ryantusi/word-frequency-analyzer-and-visualization","last_synced_at":"2025-08-16T12:33:57.710Z","repository":{"id":213503714,"uuid":"733816734","full_name":"ryantusi/Word-Frequency-Analyzer-and-Visualization","owner":"ryantusi","description":"📊 The Word Frequency Analyzer and Visualization is a Python program designed to analyze the frequency of words in a given text or a set of texts. This tool is perfect for anyone interested in understanding the distribution of words within a passage and visualizing the most commonly used words. 🔍","archived":false,"fork":false,"pushed_at":"2023-12-21T09:37:35.000Z","size":164,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T09:42:26.252Z","etag":null,"topics":["analyzer","cs50p","cs50p-final-project","data-visualization","database","flask","matplotlib","modules","nltk","object-oriented-programming","python","unit-testing","webapp","word-frequency"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryantusi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-12-20T07:36:05.000Z","updated_at":"2024-12-02T20:36:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"e71e4584-8adb-4fce-94fc-2ca5a2983e1b","html_url":"https://github.com/ryantusi/Word-Frequency-Analyzer-and-Visualization","commit_stats":null,"previous_names":["ryantusi/word-frequency-analyzer-and-visualization"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ryantusi/Word-Frequency-Analyzer-and-Visualization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryantusi%2FWord-Frequency-Analyzer-and-Visualization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryantusi%2FWord-Frequency-Analyzer-and-Visualization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryantusi%2FWord-Frequency-Analyzer-and-Visualization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryantusi%2FWord-Frequency-Analyzer-and-Visualization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryantusi","download_url":"https://codeload.github.com/ryantusi/Word-Frequency-Analyzer-and-Visualization/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryantusi%2FWord-Frequency-Analyzer-and-Visualization/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267144573,"owners_count":24042637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analyzer","cs50p","cs50p-final-project","data-visualization","database","flask","matplotlib","modules","nltk","object-oriented-programming","python","unit-testing","webapp","word-frequency"],"created_at":"2024-11-19T20:13:51.632Z","updated_at":"2025-07-26T09:14:10.894Z","avatar_url":"https://github.com/ryantusi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Word Frequency Analyzer and Visualization 📊\n### Video demo: [click here](https://youtu.be/i3V3fnvyWwE)\n\nWelcome to the Word Frequency Analyzer and Visualization project repository! This Python Flask-based web application is designed to analyze word frequency in a given text and visually represent the most common words with module creation inheriting the concept of Object-Oriented-Programming in python. This README provides a comprehensive guide to understand, set up, and utilize this project effectively. The Word Frequency Analyzer and Visualization is a Python program designed to analyze the frequency of words in a given text or a set of texts. This tool is perfect for anyone interested in understanding the distribution of words within a passage and visualizing the most commonly used words.\n\n## Table of Contents\n\n1. [Overview](#overview)\n2. [Project Structure](#project-structure)\n3. [Usage](#usage)\n    - [Running the Application](#running-the-application)\n    - [Screenshots](#screenshots)\n4. [Technologies Used](#technologies-used)\n5. [Contributing](#contributing)\n\n---\n\n## Overview\n\nThe Word Frequency Analyzer and Visualization project is an interactive web application developed using Python, Flask, Jinja, HTML, CSS, Bootstrap, SQLite3, Matplotlib, and NLTK. It allows users to input text, analyze word frequency, and visualize the most common words through a user-friendly interface.\n\n## Project Structure\n\n### Directories:\n\n- **static**: Contains static files, including:\n  - `styles.css`: CSS styles for the project.\n  - `barchart.png`: The saved file from the main Python app.\n  - Logo icon.\n\n- **templates**: Contains HTML files:\n  - `index.html`: Homepage for text input.\n  - `analyzed.html`: Display page after Python processing.\n  - `error.html`: Error page for handling analysis issues.\n\n### Files:\n\n- `word_frequency.py`: Contains the `WordFrequency` class for text analysis and visualization.\n- `app.py`: (Flask) Main application script for routing, data manipulation, and uses WordFrequency class to analyze and visualize data.\n- `test_WordFrequency.py`: Python testing for the WordFrequency.py\n- `frequency.db`: Database which contains two tables `text` - stores input text of users and `visits` - stores button click and download counts.\n\n## Usage\n\n### Running the Application\n\n1. **Setup**:\n   - Ensure necessary dependencies are installed (`nltk`, `matplotlib`, `cs50`, `pytest`).\n   - Run `pip install nltk matplotlib cs50 pytest` to install missing libraries.\n   - Run `python -m nltk.downloader stopwords punkt`\n   - Run `pytest test_WordFrequency.py` to test WordFrequency class from the module.\n\n2. **Start the Flask App**:\n   - Run `flask run` in your terminal.\n   - Access the application at `http://localhost:5000/`.\n\n3. **Usage**:\n   - Enter text in the provided field on the homepage.\n   - Click the \"Analyze\" button to process the text and view word frequencies.\n   - Click \"Download\" to download the PNG file of your word analysis\n\n### Screenshots\n![screenshot1](static/barchart.png)\n\n![screenshot2](static/screenshot.png)\n\n\n## Technologies Used\n\n- Python\n- Flask\n- Jinja\n- HTML\n- CSS\n- Bootstrap\n- SQLite3\n- Matplotlib\n- NLTK\n- Pytest\n- CS50 \n\n## Contributing\n\nContributions are welcome! Feel free to submit issues or pull requests to enhance the project.\n\n## Ryan Tusi - Chennai, India\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryantusi%2Fword-frequency-analyzer-and-visualization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryantusi%2Fword-frequency-analyzer-and-visualization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryantusi%2Fword-frequency-analyzer-and-visualization/lists"}