AppCategorizer
A powerful Python library designed to categorize software applications automatically using Artificial Intelligence.
Table of Contents
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:
pip install AppCategorizer
Quick Start
Command Line Interface (CLI)
Use the AppCategorizer command directly in your terminal for quick categorization:
# For single-word application names:
AppCategorizer facebook
# Expected Output: social media
# For multi-word application names (enclose in quotes):
AppCategorizer "Google Chrome"
# Expected Output: Web browser
Batch Mode
You can also use the batch mode to categorize multiple applications at once:
AppCategorizer batch input.txt output.csv
Using the Library in Python Code
You can use the AppCategorizer library in your Python code as follows:
from AppCategorizer import process_app, batch_process, load_model
# Single application categorization
classifier = load_model()
app_name = "Firefox"
app_name, main_cat, ai_cat, sub_cats = process_app(app_name, classifier)
print(f"Application: {app_name}")
print(f"Rule-Based Category: {main_cat}")
print(f"AI Category: {ai_cat}")
print(f"Sub-Categories: {', '.join(sub_cats)}")
# Batch categorization
batch_process("input.txt", "output.csv")
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.
API Documentation
process_app(app_name, classifier)
Categorizes a single application using the provided classifier.
Parameters:
app_name: The name of the application to categorizeclassifier: The classifier to use for categorization
Returns: Tuple containing the application name, rule-based category, AI category, and sub-categories
batch_process(input_file, output_file)
Categorizes a batch of applications from the input file and writes the results to the output file.
Parameters:
input_file: File containing list of application namesoutput_file: Desired output file name
Contributing
We welcome contributions to AppCategorizer! If you have suggestions for improvements, new features, or bug fixes, please feel free to contact Zain Ramzan
Metadata
Release files for AppCategorizer 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| appcategorizer-1.0.0.tar.gz | 16.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| appcategorizer-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.6 kB
Release files / appcategorizer-1.0.0.tar.gz
| Download URL | appcategorizer-1.0.0.tar.gz |
|---|---|
| Size | 16.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5a3b67ae6915e4686ac10cf7dce106ad0342cfdefdcd867e9c42970d2aba3dd7
|
|
BLAKE2b-256 checksum How to use checksums |
c7cfa5356390176e4542422dc4525e988ccd987517df8521355966fb3c5ace92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Release files / appcategorizer-1.0.0-py3-none-any.whl
| Download URL | appcategorizer-1.0.0-py3-none-any.whl |
|---|---|
| Size | 21.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9584d9ee8c3e10cc840cda4fcf622f27e07aa52bbb9bb8917c85eb6bcb946173
|
|
BLAKE2b-256 checksum How to use checksums |
4b313be1ade972c10488ca6becc3c0c19ba9a6da29b6b720bcec8e85d93cfc43
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|