Metadata-Version: 2.4
Name: AppCategorizer
Version: 0.2.2
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: beautifulsoup4==4.13.4
Requires-Dist: pandas==2.3.0
Requires-Dist: Requests==2.32.4
Requires-Dist: selenium==4.33.0
Requires-Dist: transformers==4.52.4
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: requires-dist
Dynamic: requires-python

# AppCategorizer

A powerful **Python library** designed to **categorize software applications automatically** using Artificial Intelligence.

## Table of Contents
- [About](#about)
- [Features](#features)
- [Installation](#installation)
- [Quick Start](#quick-start)
  - [Command Line Interface (CLI)](#command-line-interface-cli)
- [How it Works](#how-it-works)
- [Contributing](#contributing)
- [Contact](#contact)

## About

`AppCategorizer` is a **Python package** that takes an application name as input and provides its most suitable category. It achieves this by **fetching application data from multiple sources** including Snapcraft, Flathub, Apple Store, GOG, Itch.io, and MyAbandonware. This comprehensive data collection is then processed using **Artificial Intelligence (AI)** and **Natural Language Processing (NLP)** techniques to accurately determine and assign the most suitable category to the application.

The project is entirely written in Python.

## Features

`AppCategorizer` offers a robust set of features to streamline the application categorization process:

*   **Multi-source Data Fetching**: Gathers comprehensive application information from **over 5 different sources**, ensuring a broad and rich dataset for categorization.
*   **Intelligent Tag Normalization**: Cleans and standardizes diverse tags obtained from various data sources, ensuring consistent and high-quality input for the categorization process.
*   **AI-Powered Categorization**: Utilizes **Natural Language Processing (NLP) techniques** to intelligently analyze application data and assign the most appropriate category.
*   **Command Line Interface (CLI)**: Provides a **simple and intuitive CLI** for quick, on-the-fly application categorization, making it easy to use directly from the terminal.
*   **Python API**: Offers **programmatic access**, allowing seamless integration into other Python projects, scripts, and automated workflows.

## Installation

You can install `AppCategorizer` directly using pip:

```bash
pip install AppCategorizer
```


## Quick Start

### Command Line Interface (CLI)

Use the `AppCategorizer` command directly in your terminal for quick categorization:

```bash
# For single-word application names:
AppCategorizer Facebook
# Expected Output: Social Networking

# For multi-word application names (enclose in quotes):
AppCategorizer 'Google Chrome'
# Expected Output: Web Browser
```


## How it Works

`AppCategorizer` operates by first **fetching relevant application data** from a diverse set of online repositories, which includes Snapcraft, Flathub, Apple Store, GOG, Itch.io, and MyAbandonware. Once this raw data is collected, it undergoes an **intelligent tag normalization process** designed to clean and standardize various tags, ensuring uniformity and reliability. Finally, the normalized data is fed into an **Artificial Intelligence model** that employs **Natural Language Processing (NLP) techniques** to accurately analyze the information and assign the most suitable category to the software application.

## Contributing

We welcome contributions to `AppCategorizer`! If you have suggestions for improvements, new features, or bug fixes, please feel free to:
*   Open an issue to discuss your ideas or report bugs.
*   Fork the repository and submit a pull request with your changes.

## Contact

For any questions or inquiries, please open an issue on the GitHub repository or contact [Zain Ramzan](https://www.linkedin.com/in/zainramzan).
