Classic spam filters are the textbook example. The model learns how often words like “invoice”, “winner” or “meeting” appear in spam and in normal email. For a new message, it multiplies those per-word probabilities together to score “spam” against “not spam” and picks the higher one. Treating every word as independent evidence is the “naive” part: real words clearly are not independent, but the shortcut often works well anyway.
scikit-learn describes naive Bayes methods as supervised learning algorithms based on Bayes’ theorem with the naive assumption of conditional independence between features given the class.
Why it matters: naive Bayes is fast, needs little training data and is easy to explain, so it remains a common baseline for text classification. If a large model cannot beat a naive Bayes baseline on a routing or tagging task, that is a useful warning sign. For a model that represents dependencies between variables instead of assuming them away, see Bayesian network. No Chain of Thought episode has discussed naive Bayes directly.
Sources
- scikit-learn: Naive Bayes — Official docs; supports the definition via Bayes' theorem and the conditional-independence assumption, checked October 24, 2026