Skip to main content

Data Tool Bag (dtbag) - A Python library for text processing, data cleaning, and similarity-based clustering of textual data

Project description

dtbag: Data Tools for Business, Analytics & General Tasks

Streamline your data preparation for Machine Learning and Business Analytics.

dtbag is a Python library that focuses on creating solutions to common problems, and what distinguishes it from others is that it adopts a "solution in one line" approach, meaning it combines all the necessary steps to work internally and returns the result in a single output. For instance "CatUnifier" function solves a common categorical data problem, inconsistent categorical data due to incorrect entries, spelling mistakes, different write/map data, etc... data might have only four real categories but the output can show two times or even many times that number, and this will affect any charts/ machine learning models etc.. and return wrong results.

Clean inconsistent data entries

  • data = ["Pencil", "Book", "Pencle", "Boook", "Bouk", "pencl", "pencyl", "Sook","Pencil"]

  • CatLists_output = CatUnifier(data, threshold=0.6)

  • Result: ['Pencil', 'Book']

  • CatUnifier_output = CatUnifier(data, threshold=0.6)

  • Result: ['Pencil','Book','Pencil','Book','Book','Pencil','Pencil','Book','Pencil']

Key Features

  • Smart Text Unification : Intelligently groups and standardizes similar text entries (like names, addresses, product titles) even with typos, different cases, or accents.
  • Built for Real Data : Handles common data issues like inconsistent capitalization ("New York", "NEW YORK"), diacritics ("Café", "Cafe"), and minor spelling variations.
  • Multilingual Support : Works seamlessly across languages commonly found in business data, including Arabic, English, French, Spanish, German, and more.
  • Zero Dependencies : Uses only Python's robust standard library, ensuring lightweight and conflict-free installation.
  • Preserves Original Data : Returns the most frequent original version in each group, maintaining data integrity.

What's Inside:

  • CatLists : Returns a list containing the corrected unique categories from the erroneous categories.
  • CatUnifier : Returns the entire input list as a new list with fully corrected categories and in the same order as entered, so that it can be replaced directly.

Quick Start

Installation

pip install dtbag

Basic Usage: Cleaning Text Data

from dtbag import CatUnifier
from dtbag import CatLists

raw_customers = ["Café Marrakech", "CAFÉ MARRAKECH", 'Café Mrakech', 'Cafe Marakesh', 'Cafffé Marrakech', 'Cfé Markech', 'Sturbuks', 'Starbucks', "Starbucks", "starbucks", "Café Marrakech"]
dtbag.CatUnifier(raw_customers, threshold=0.7)
Output: ['Café Marrakech', 'Café Marrakech', 'Café Marrakech', 'Café Marrakech', 'Café Marrakech', 'Café Marrakech', 'Starbucks', 'Starbucks', 'Starbucks', 'Starbucks', 'Café Marrakech']

dtbag.CatLists(raw_customers, threshold=0.75)
Output: ['Café Marrakech', 'Starbucks']
products = ["laptop-13inch", "Mouse Wireless", "Laptop 13 Inch", "Laptop 13\"", "mouse wirlss", "Mouse Wireless"]
dtbag.CatUnifier(products, threshold=0.6)
Output: ['Laptop 13"', 'Mouse Wireless', 'Laptop 13"', 'Laptop 13"', 'Mouse Wireless', 'Mouse Wireless']

dtbag.CatLists(products, threshold=0.6)
Output: ['Laptop 13"', 'Mouse Wireless']
international = ["São Paulo", "Sao Paulo", "Saw Paullow", "München", "Muenchen", "Naïve", "Naive", "Nayve", "Naive"]
dtbag.CatUnifier(international, threshold=0.7)
Output: ['São Paulo', 'São Paulo', 'São Paulo', 'München', 'München', 'Naive', 'Naive', 'Naive', 'Naive']

dtbag.CatLists(international, threshold=0.7)
Output: ['São Paulo', 'München', 'Naive']

Tuning Precision

strict_cleaning = unify_similar_items(data, threshold=0.9)  # High precision
lenient_cleaning = unify_similar_items(data, threshold=0.6) # More grouping

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dtbag-3.1.1.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dtbag-3.1.1-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file dtbag-3.1.1.tar.gz.

File metadata

  • Download URL: dtbag-3.1.1.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.25

File hashes

Hashes for dtbag-3.1.1.tar.gz
Algorithm Hash digest
SHA256 c1173ec5e3bcb118289ced822dd6cd36b6fdd0c9e9c273daeeee9cfbcb4a2347
MD5 1295310cd4791eb185af74fd263bba5d
BLAKE2b-256 d9ec3a0b0c2f19ed56a5ead90eebb8b510c0da8998bb4afffa2e3972a3fcfd38

See more details on using hashes here.

File details

Details for the file dtbag-3.1.1-py3-none-any.whl.

File metadata

  • Download URL: dtbag-3.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.25

File hashes

Hashes for dtbag-3.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 be9324367fcff6d7c6663c2d61ff4f1db1cba2972516ae35ae580ecf56c14487
MD5 a07c3feddbfb1861fe99eea0a69e5c15
BLAKE2b-256 79dbf7ccb9353d24dd9266a6af3e9c817a7ae9467f2038237bcf42d772fe49aa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page