{"adoption": {"forks": 83, "observed_at": "2026-08-28T04:03:17.228672+00:00", "stars": 1027}, "canonical_url": "https://ross.abutalabs.com/products/clean-text", "card": {"archived": false, "artifact_type": "library", "description": "🧹 Python package for text cleaning", "domain": ["text-editors", "crawlers", "machine-learning"], "enriched": true, "function": ["nlp", "parser", "serialization"], "health_score": 86, "homepage": null, "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["jfilter/clean-text"], "name": "jfilter/clean-text", "platform": ["python", "cross-platform"], "pushed_at": "2026-05-15T10:07:33+00:00", "repo": "jfilter/clean-text", "stars": 1027, "tags": ["text-cleaning", "text-normalization", "text-preprocessing", "user-generated-content", "unicode", "regex", "natural-language-processing"], "topics": ["python", "natural-language-processing", "text-cleaning", "text-normalization", "text-preprocessing", "python-package", "nlp", "user-generated-content", "scraping"], "urls": [], "use_cases": ["clean scraped web text before nlp processing", "normalize user-generated content from social media", "fix broken unicode characters in text", "replace urls and emails with tokens in text preprocessing", "transliterate accented characters to ascii", "preprocess text for machine learning models"], "what_it_is": "A Python package for cleaning and normalizing messy text, especially user-generated content from the web and social media. It fixes unicode errors, transliterates to ASCII, and replaces URLs, emails, phone numbers, and other noise with special tokens.", "when_to_avoid": ["you need heavy-duty nlp pipelines with tokenization and parsing", "you require permissively-licensed dependencies only and cannot accept GPL unidecode", "you need language-specific linguistic cleaning rather than rule-based normalization"], "when_to_choose": ["you need to preprocess dirty scraped or user-generated text", "you want a simple pip-installable text cleaning pipeline", "you need unicode fixing and ascii transliteration in one package"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/clean-text", "repo": "jfilter/clean-text", "role": "main", "score": 81}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.228672+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:07:52.807961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa539a9f8333eba6a9bfedde5973ffd3bf17d7df0fb773afbe1caa9408fd06fb", "fetched_at": "2026-08-28T04:03:17.228672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jfilter/clean-text"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.228672+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:07:52.807961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa539a9f8333eba6a9bfedde5973ffd3bf17d7df0fb773afbe1caa9408fd06fb", "fetched_at": "2026-08-28T04:03:17.228672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jfilter/clean-text"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:07:52.807961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa539a9f8333eba6a9bfedde5973ffd3bf17d7df0fb773afbe1caa9408fd06fb", "fetched_at": "2026-08-28T04:03:17.228672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jfilter/clean-text"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.228672+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.228672+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.228672+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:07:52.807961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa539a9f8333eba6a9bfedde5973ffd3bf17d7df0fb773afbe1caa9408fd06fb", "fetched_at": "2026-08-28T04:03:17.228672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jfilter/clean-text"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.228672+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.228672+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:07:52.807961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa539a9f8333eba6a9bfedde5973ffd3bf17d7df0fb773afbe1caa9408fd06fb", "fetched_at": "2026-08-28T04:03:17.228672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jfilter/clean-text"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.228672+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.228672+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.228672+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:07:52.807961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa539a9f8333eba6a9bfedde5973ffd3bf17d7df0fb773afbe1caa9408fd06fb", "fetched_at": "2026-08-28T04:03:17.228672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jfilter/clean-text"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.228672+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:17.228672+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:07:52.807961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa539a9f8333eba6a9bfedde5973ffd3bf17d7df0fb773afbe1caa9408fd06fb", "fetched_at": "2026-08-28T04:03:17.228672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jfilter/clean-text"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:07:52.807961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa539a9f8333eba6a9bfedde5973ffd3bf17d7df0fb773afbe1caa9408fd06fb", "fetched_at": "2026-08-28T04:03:17.228672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jfilter/clean-text"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:07:52.807961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa539a9f8333eba6a9bfedde5973ffd3bf17d7df0fb773afbe1caa9408fd06fb", "fetched_at": "2026-08-28T04:03:17.228672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jfilter/clean-text"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:07:52.807961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa539a9f8333eba6a9bfedde5973ffd3bf17d7df0fb773afbe1caa9408fd06fb", "fetched_at": "2026-08-28T04:03:17.228672+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jfilter/clean-text"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 82, "longevity": 100, "rhythm": 68}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2827, "days_push": 110, "days_rel": 217, "gap_med": 0, "n_releases_24m": 10}, "score": 81, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}