Treat the lesson corpus as 40 spam documents and 60 ham documents with presence counts: in spam, free appears in 32 docs, money in 28, meeting in 6; in ham, free in 4, money in 7, meeting in 45. With α = 1, Bernoulli uses (present docs + 1) / (docs + 2), and it must also score every absent word.
Bernoulli P(present | spam): free 33/42 = 0.7857 money 29/42 = 0.6905 meeting 7/42 = 0.1667
Bernoulli P(present | ham) : free 5/62 = 0.0806 money 8/62 = 0.1290 meeting 46/62 = 0.7419
message "free meeting" — free and meeting present, money absent:
log spam = ln0.4 + ln(33/42) + ln(7/42) + ln(13/42) = −4.1219
log ham = ln0.6 + ln(5/62) + ln(46/62) + ln(54/62) = −3.4652
posterior P(spam) = 0.3415
same message, Multinomial (counts, α = 1):
log spam = ln0.4 + ln(81/153) + ln(11/153) = −4.1848
log ham = ln0.6 + ln(6/118) + ln(101/118) = −3.6453
posterior P(spam) = 0.3683
message "free" alone: Multinomial 0.8741, Bernoulli 0.8817 —
Bernoulli penalizes the missing "money" and "meeting" too.
Bernoulli and Multinomial disagree in detail but not in verdict here. Bernoulli loses the repetition information (“free free free” looks like “free”) and gains explicit absence evidence — which is why it wins on very short texts, where counts are noisy but presence is reliable.