Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a14c6b4

Browse files
first pass at page for 187 bayes (#1924)
* first pass at page for 187 bayes * add nebula slug * revise timecodes * images
1 parent f8a210b commit a14c6b4

File tree

4 files changed

+125
-0
lines changed

4 files changed

+125
-0
lines changed
35.8 KB
127 KB
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
{
2+
"title": "Bayesian Text Classification",
3+
"description": "In this coding challenge, I struggle my way through implementing a Naive Bayes text classifier in JavaScript using p5.js. I explain Bayes' theorem, demonstrate word frequency analysis, implement Laplacian smoothing, and build a working sentiment classifier that runs entirely in the browser.",
4+
"videoNumber": "187",
5+
"videoId": "g3-PXyF8U70",
6+
"date": "2025εΉ΄10月11ζ—₯",
7+
"nebulaSlug": "codingtrain-coding-challenge-187-bayes-classifier",
8+
"languages": ["JavaScript", "p5.js"],
9+
"topics": [
10+
"Bayes theorem",
11+
"text classification",
12+
"naive Bayes",
13+
"sentiment analysis",
14+
"natural language processing",
15+
"machine learning",
16+
"word frequency",
17+
"Laplacian smoothing"
18+
],
19+
"canContribute": true,
20+
"relatedChallenges": ["40-word-counter", "42-markov-chain-name-generator"],
21+
"timestamps": [
22+
{ "time": "0:00:00", "title": "Hello!" },
23+
{ "time": "0:03:34", "title": "Explaining Bayes' Theorem" },
24+
{ "time": "0:12:07", "title": "What is Naive Bayes?" },
25+
{ "time": "0:13:49", "title": "Setting up the Classifier in p5.js" },
26+
{ "time": "0:15:41", "title": "Coding the train() function " },
27+
{ "time": "0:22:14", "title": "Coding the classify() Function" },
28+
{ "time": "0:24:45", "title": "Revising the train() function" },
29+
{ "time": "0:29:06", "title": "Implementing Probability Calculations" },
30+
{ "time": "0:33:24", "title": "Laplacian (Additive) Smoothing" },
31+
{ "time": "0:42:21", "title": "Ignoring the enominator (Normalization)" },
32+
{ "time": "0:45:36", "title": "Quick User Interface" },
33+
{ "time": "0:49:42", "title": "Final thoughts and next steps." }
34+
],
35+
"codeExamples": [
36+
{
37+
"title": "Text Classifier - Initial Version",
38+
"description": "Raw (but corrected) version in p5.js web editor.",
39+
"image": "classify.png",
40+
"urls": {
41+
"p5": "https://editor.p5js.org/codingtrain/sketches/RZ8a1z4DN"
42+
}
43+
},
44+
{
45+
"title": "Text Classifier - Refactored Version",
46+
"image": "classify.png",
47+
"description": "Refactored version with better structure and comments.",
48+
"urls": {
49+
"p5": "https://editor.p5js.org/codingtrain/sketches/P3ngrAANX",
50+
"other": "https://github.com/Programming-from-A-to-Z/bayes-classifier-js"
51+
}
52+
},
53+
{
54+
"title": "Text Classifier - File Loading Version",
55+
"description": "Version that loads training data from three novels (romance, horror, sci-fi).",
56+
"image": "classifyfiles.png",
57+
"urls": {
58+
"p5": "https://editor.p5js.org/codingtrain/sketches/WowR2Q9xg"
59+
}
60+
}
61+
],
62+
"groupLinks": [
63+
{
64+
"title": "References",
65+
"links": [
66+
{
67+
"icon": "πŸ““",
68+
"title": "Naive Bayes Classifier",
69+
"url": "https://en.wikipedia.org/wiki/Naive_Bayes_classifier",
70+
"description": "Wikipedia article explaining naive Bayes classification algorithms."
71+
},
72+
{
73+
"icon": "πŸ““",
74+
"title": "Laplacian Smoothing",
75+
"url": "https://en.wikipedia.org/wiki/Additive_smoothing",
76+
"description": "Wikipedia article about additive (Laplacian) smoothing technique."
77+
}
78+
]
79+
},
80+
{
81+
"title": "Videos",
82+
"links": [
83+
{
84+
"icon": "πŸš‚",
85+
"title": "Word Counting",
86+
"url": "/challenges/40-word-counter",
87+
"description": "Video series on text analysis and word counting fundamentals."
88+
},
89+
{
90+
"icon": "πŸš‚",
91+
"title": "Regular Expressions",
92+
"url": "https://youtu.be/7DG3kCDx53c?list=PLRqwX-V7Uu6YEypLuls7iidwHMdCM6o2w",
93+
"description": "Video series covering regular expressions for text processing."
94+
},
95+
{
96+
"icon": "πŸ“Ί",
97+
"title": "Bayes theorem, the geometry of changing beliefs",
98+
"url": "https://youtu.be/HZGCoVF3YvM",
99+
"description": "Visual explanation of Bayes' theorem with geometric visualization from 3Blue1Brown."
100+
},
101+
{
102+
"icon": "πŸš‚",
103+
"title": "p5.js 2.0: async and await",
104+
"url": "/tracks/p5js-2.0/p5js-2.0/async-await",
105+
"description": "Asynchronous programming in p5.js using async and await."
106+
}
107+
]
108+
},
109+
{
110+
"title": "Live Stream Archives",
111+
"links": [
112+
{
113+
"icon": "πŸ”΄",
114+
"title": "Full Live Stream",
115+
"url": "https://youtube.com/live/TsBDm0P0qaA",
116+
"description": "Complete unedited live stream showing the development process with all mistakes and problem-solving."
117+
}
118+
]
119+
}
120+
],
121+
"credits": [
122+
{ "title": "Editing", "name": "Mathieu Blanchette" },
123+
{ "title": "Animations", "name": "Jason Heglund" }
124+
]
125+
}
127 KB

0 commit comments

Comments
(0)

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /