{"adoption": {"forks": 120, "observed_at": "2026-08-28T04:04:27.639796+00:00", "stars": 1347}, "canonical_url": "https://ross.abutalabs.com/products/natasha-natasha", "card": {"archived": false, "artifact_type": "library", "description": "Solves basic Russian NLP tasks, API for lower level Natasha projects", "domain": ["machine-learning"], "enriched": true, "function": ["nlp", "parser", "machine-learning", "data-visualization"], "health_score": 66, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["natasha/natasha"], "name": "natasha/natasha", "platform": ["python"], "pushed_at": "2026-04-13T19:39:01+00:00", "repo": "natasha/natasha", "stars": 1347, "tags": ["russian-language", "named-entity-recognition", "tokenization", "sentence-segmentation", "morphology", "syntax-parsing", "lemmatization", "embeddings", "fact-extraction", "natural-language-processing"], "topics": ["nlp", "russian", "tokenizer", "sentence-segmentation", "embeddings", "morphology", "syntax", "ner", "visualization", "python"], "urls": [], "use_cases": ["extract named entities from Russian text", "tokenize and segment Russian sentences", "tag morphology and lemmatize Russian words", "parse syntax dependencies in Russian text", "extract facts like names and addresses from Russian documents", "visualize NER and syntax markups", "run Russian NLP models on CPU in production"], "what_it_is": "Natasha is a Python library that solves basic NLP tasks for the Russian language, including tokenization, sentence segmentation, morphology tagging, lemmatization, syntax parsing, NER, and fact extraction. It integrates lower-level Natasha project libraries (Razdel, Navec, Slovnet, Yargy, Ipymarkup) under one convenient API, with compact CPU-friendly models optimized for news articles.", "when_to_avoid": ["you need NLP for languages other than Russian", "you need stable APIs for production — the README warns the API may change", "your domain text differs strongly from news articles, where model quality may drop"], "when_to_choose": ["you need production-ready Russian NLP with small, fast CPU models", "you want a single convenient API over multiple Russian NLP tools", "your text is news-like and you need NER, morphology, or syntax parsing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/natasha-natasha", "repo": "natasha/natasha", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.639796+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:42:37.730583+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91ff012bf14e134f840765c787c159cc436643be3bcde938050f39c9c0776d01", "fetched_at": "2026-08-28T04:04:27.639796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/natasha/natasha"}, {"content_hash": "372c54804a000347013c46be9a671399d60128db99d09ee598700e0c5d75d0d8", "fetched_at": "2026-08-29T12:01:35.373815+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/natasha/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.639796+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:42:37.730583+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91ff012bf14e134f840765c787c159cc436643be3bcde938050f39c9c0776d01", "fetched_at": "2026-08-28T04:04:27.639796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/natasha/natasha"}, {"content_hash": "372c54804a000347013c46be9a671399d60128db99d09ee598700e0c5d75d0d8", "fetched_at": "2026-08-29T12:01:35.373815+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/natasha/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:42:37.730583+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91ff012bf14e134f840765c787c159cc436643be3bcde938050f39c9c0776d01", "fetched_at": "2026-08-28T04:04:27.639796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/natasha/natasha"}, {"content_hash": "372c54804a000347013c46be9a671399d60128db99d09ee598700e0c5d75d0d8", "fetched_at": "2026-08-29T12:01:35.373815+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/natasha/json"}], "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:04:27.639796+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.639796+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.639796+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:42:37.730583+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91ff012bf14e134f840765c787c159cc436643be3bcde938050f39c9c0776d01", "fetched_at": "2026-08-28T04:04:27.639796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/natasha/natasha"}, {"content_hash": "372c54804a000347013c46be9a671399d60128db99d09ee598700e0c5d75d0d8", "fetched_at": "2026-08-29T12:01:35.373815+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/natasha/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.639796+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.639796+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:42:37.730583+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91ff012bf14e134f840765c787c159cc436643be3bcde938050f39c9c0776d01", "fetched_at": "2026-08-28T04:04:27.639796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/natasha/natasha"}, {"content_hash": "372c54804a000347013c46be9a671399d60128db99d09ee598700e0c5d75d0d8", "fetched_at": "2026-08-29T12:01:35.373815+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/natasha/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.639796+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.639796+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.639796+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:42:37.730583+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91ff012bf14e134f840765c787c159cc436643be3bcde938050f39c9c0776d01", "fetched_at": "2026-08-28T04:04:27.639796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/natasha/natasha"}, {"content_hash": "372c54804a000347013c46be9a671399d60128db99d09ee598700e0c5d75d0d8", "fetched_at": "2026-08-29T12:01:35.373815+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/natasha/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.639796+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.639796+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:42:37.730583+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91ff012bf14e134f840765c787c159cc436643be3bcde938050f39c9c0776d01", "fetched_at": "2026-08-28T04:04:27.639796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/natasha/natasha"}, {"content_hash": "372c54804a000347013c46be9a671399d60128db99d09ee598700e0c5d75d0d8", "fetched_at": "2026-08-29T12:01:35.373815+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/natasha/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:42:37.730583+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91ff012bf14e134f840765c787c159cc436643be3bcde938050f39c9c0776d01", "fetched_at": "2026-08-28T04:04:27.639796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/natasha/natasha"}, {"content_hash": "372c54804a000347013c46be9a671399d60128db99d09ee598700e0c5d75d0d8", "fetched_at": "2026-08-29T12:01:35.373815+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/natasha/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:42:37.730583+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91ff012bf14e134f840765c787c159cc436643be3bcde938050f39c9c0776d01", "fetched_at": "2026-08-28T04:04:27.639796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/natasha/natasha"}, {"content_hash": "372c54804a000347013c46be9a671399d60128db99d09ee598700e0c5d75d0d8", "fetched_at": "2026-08-29T12:01:35.373815+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/natasha/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:42:37.730583+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91ff012bf14e134f840765c787c159cc436643be3bcde938050f39c9c0776d01", "fetched_at": "2026-08-28T04:04:27.639796+00:00", "kind": "readme", "missing": false, "url": "https://github.com/natasha/natasha"}, {"content_hash": "372c54804a000347013c46be9a671399d60128db99d09ee598700e0c5d75d0d8", "fetched_at": "2026-08-29T12:01:35.373815+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/natasha/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 77, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3682, "days_push": 142, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}