After my latest cvs up, timtest fails with
Traceback (most recent call last):
File "/home/skip/src/spambayes/timtest.py", line 294, in ?
drive(nsets)
File "/home/skip/src/spambayes/timtest.py", line 264, in drive
d = Driver()
File "/home/skip/src/spambayes/timtest.py", line 152, in __init__
self.global_ham_hist = Hist(options.nbuckets)
AttributeError: 'OptionsClass' object has no attribute 'nbuckets'
I'm running it as
timtest -n5 > Data/timtest.out
from my ~/Mail directory (not from my ~/src/spambayes directory).  If I
create a symlink to ~/src/spambayes/bayes.ini it works once again, but
shouldn't there be an nbuckets attribute with a default value already?
Skip

[Tim]
> I never used ConfigParser before, but I read that its read()
> method silently ignores files that don't exist.  If 'bayes.ini'
> isn't found, *none* of the options will be defined. ...
Note that I since got rid of bayes.ini (it's embedded in Options.py
now), so search-path issues won't burn you here anymore.  The intended
way to customize the tokenizer and testers is via creating your own
bayescustomize.ini.  You'll get burned by search-path issues wrt that
instead now <0.7 wink>.

from localhost (jalapeno [127.0.0.1])
	by example.com (Postfix) with ESMTP id 3CA5F16F16
	for <zzzz@localhost>; Tue,  8 Oct 2002 10:55:24 +0100 (IST)
from jalapeno [127.0.0.1]
	by localhost with IMAP (fetchmail-5.9.0)
	for zzzz@localhost (single-drop); Tue, 08 Oct 2002 10:55:24 +0100 (IST)
from dogma.slashnull.org (localhost [127.0.0.1]) by
    dogma.slashnull.org (8.11.6/8.11.6) with ESMTP id g9880AK06028 for
    <zzzz@example.com>; Tue, 8 Oct 2002 09:00:10 +0100
From rssfeeds@example.com  Tue Oct  8 10:55:29 2002

... for not updating: I'm doing the guestblog at Boing Boing[1]. Now to find an

> At the other extreme, training on half my ham&spam, and scoring aginst
> Alas, all 4 of the 0.99 clues there are HTML-related.
That begged to try it again but with Tokenize/retain_pure_html_tags false.
The random halves getting trained on and scored against are different here,
and I repaired the bug that dropped 1 ham and 1 spam on the floor, so this
isn't exactly a 1-change difference between runs.
Yay!  That may mean that HTML tags aren't really needed in my test data
provided it's trained on enough stuff.  Curiously, the sole false positive
here is the same as the sole false positive on the half&half run reported in
the preceding msg (I assume the Nigerian scam "false positive" just happened
to end up in the training data both times):
by mail.python.org with esmtp (Exim 3.21 #1)
for python-list@python.org; Wed, 10 Oct 2001 03:34:32 -0400
by node401.dmz.standardlife.com (Pro-8.9.3/Pro-8.9.3) with SMTP id
IAA53660for <python-list@python.org>; Wed, 10 Oct 2001 08:34:00
slukdcn4.internal.standardlife.com (Lotus SMTP MTA v4.6.6  (890.1
Subject: Training Courses in Python in UK
X-Mailer: Microsoft Outlook Express 4.72.3155.0
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3155.0
List-Id: General discussion list for the Python programming language
I am looking for you recommendations on training courses available in the UK
For more information on Standard Life, visit our website
http://www.standardlife.com/   The Standard Life Assurance Company, Standard
Life House, 30 Lothian Road, Edinburgh EH1 2DH, is registered in Scotland
(No SZ4) and regulated by the Personal Investment Authority.  Tel: 0131 225
2552 - calls may be recorded or monitored.  This confidential e-mail is for
the addressee only.  If received in error, do not retain/copy/disclose it
without our consent and please return it to us.  We virus scan all e-mails
but are not responsible for any damage caused by a virus or alteration by a
The top 30 discriminators are more interesting now:
There are still two HTML clues remaining there ("&nbsp;" and
"content-type:text/html").  Anthony's trick accounts for almost a third of
these.  "Python" appears in 5 of them ('http0:python' means that 'python'
was found in the 1st field of an embedded http:// URL).  Sticking a .gif or
a .jpg in  a URL both score as 0.99 spam clues.  Note the damning pattern of
capitalization in 'header:MiME-Version:1'!  This counting is case-sensitive,
and nobody ever would have guessed that MiME is more damning than SUBJECT or
DATE.  Why would spam be likely to end up with two instances of Return-Path