{"adoption": {"forks": 693, "observed_at": "2026-08-28T04:05:26.423484+00:00", "stars": 1717}, "canonical_url": "https://ross.abutalabs.com/products/a_journey_into_math_of_ml", "card": {"archived": false, "artifact_type": "learning-resource", "description": "汉语自然语言处理视频教程-开源学习资料", "domain": ["machine-learning", "tutorials", "education"], "enriched": true, "function": ["machine-learning", "nlp", "data-visualization"], "health_score": 20, "homepage": "https://space.bilibili.com/255296093", "language": "Jupyter Notebook", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["aespresso/a_journey_into_math_of_ml"], "name": "aespresso/a_journey_into_math_of_ml", "platform": ["python"], "pushed_at": "2019-09-29T02:24:52+00:00", "repo": "aespresso/a_journey_into_math_of_ml", "stars": 1717, "tags": ["jupyter-notebooks", "chinese-language", "video-tutorials", "transformer", "bert", "hmm", "logistic-regression", "adaboost", "maximum-likelihood", "natural-language-processing"], "topics": [], "urls": [], "use_cases": ["learn the math behind machine learning from scratch", "understand the transformer architecture with visual explanations", "study BERT and language model pretraining in Chinese", "learn hidden Markov models for named entity recognition", "understand the Viterbi algorithm for sequence labeling", "visualize maximum likelihood estimation in 3D", "learn logistic regression with cross-entropy and gradient descent"], "what_it_is": "A collection of Chinese-language machine learning tutorials in Jupyter Notebook form, accompanied by video lectures on YouTube and Bilibili. It covers mathematical foundations like maximum likelihood, logistic regression, and AdaBoost, plus Chinese NLP topics including Transformers, BERT, and HMM-based named entity recognition.", "when_to_avoid": ["you need production-ready ML code or maintained libraries", "you require English-language tutorials", "you need up-to-date coverage of modern LLM techniques"], "when_to_choose": ["you prefer Chinese-language explanations of ML and NLP concepts", "you want math-first derivations paired with runnable notebooks and videos", "you are studying classical NLP models like HMM and transformer from the ground up"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/a_journey_into_math_of_ml", "repo": "aespresso/a_journey_into_math_of_ml", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.423484+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:34:12.228899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e2a91663d6e05d5e849c9ca34682d2a3e5839106c898147f2e9dd66f77f7040", "fetched_at": "2026-08-28T04:05:26.423484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aespresso/a_journey_into_math_of_ml"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.423484+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:34:12.228899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e2a91663d6e05d5e849c9ca34682d2a3e5839106c898147f2e9dd66f77f7040", "fetched_at": "2026-08-28T04:05:26.423484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aespresso/a_journey_into_math_of_ml"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:34:12.228899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e2a91663d6e05d5e849c9ca34682d2a3e5839106c898147f2e9dd66f77f7040", "fetched_at": "2026-08-28T04:05:26.423484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aespresso/a_journey_into_math_of_ml"}], "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:05:26.423484+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.423484+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.423484+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:34:12.228899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e2a91663d6e05d5e849c9ca34682d2a3e5839106c898147f2e9dd66f77f7040", "fetched_at": "2026-08-28T04:05:26.423484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aespresso/a_journey_into_math_of_ml"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.423484+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.423484+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:34:12.228899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e2a91663d6e05d5e849c9ca34682d2a3e5839106c898147f2e9dd66f77f7040", "fetched_at": "2026-08-28T04:05:26.423484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aespresso/a_journey_into_math_of_ml"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.423484+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.423484+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.423484+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:34:12.228899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e2a91663d6e05d5e849c9ca34682d2a3e5839106c898147f2e9dd66f77f7040", "fetched_at": "2026-08-28T04:05:26.423484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aespresso/a_journey_into_math_of_ml"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.423484+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:26.423484+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:34:12.228899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e2a91663d6e05d5e849c9ca34682d2a3e5839106c898147f2e9dd66f77f7040", "fetched_at": "2026-08-28T04:05:26.423484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aespresso/a_journey_into_math_of_ml"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:34:12.228899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e2a91663d6e05d5e849c9ca34682d2a3e5839106c898147f2e9dd66f77f7040", "fetched_at": "2026-08-28T04:05:26.423484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aespresso/a_journey_into_math_of_ml"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:34:12.228899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e2a91663d6e05d5e849c9ca34682d2a3e5839106c898147f2e9dd66f77f7040", "fetched_at": "2026-08-28T04:05:26.423484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aespresso/a_journey_into_math_of_ml"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:34:12.228899+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e2a91663d6e05d5e849c9ca34682d2a3e5839106c898147f2e9dd66f77f7040", "fetched_at": "2026-08-28T04:05:26.423484+00:00", "kind": "readme", "missing": false, "url": "https://github.com/aespresso/a_journey_into_math_of_ml"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2659, "days_push": 2531, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}