Go forward to Followups To Yourself.
Go backward to Score File Editing.
Go up to Scoring.
Adaptive Scoring
================
If all this scoring is getting you down, Gnus has a way of making it
all happen automatically--as if by magic. Or rather, as if by
artificial stupidity, to be precise.
When you read an article, or mark an article as read, or kill an
article, you leave marks behind. On exit from the group, Gnus can sniff
these marks and add score elements depending on what marks it finds.
You turn on this ability by setting `gnus-use-adaptive-scoring' to `t'.
To give you complete control over the scoring process, you can
customize the `gnus-default-adaptive-score-alist' variable. For
instance, it might look something like this:
(defvar gnus-default-adaptive-score-alist
'((gnus-unread-mark)
(gnus-ticked-mark (from 4))
(gnus-dormant-mark (from 5))
(gnus-del-mark (from -4) (subject -1))
(gnus-read-mark (from 4) (subject 2))
(gnus-expirable-mark (from -1) (subject -1))
(gnus-killed-mark (from -1) (subject -3))
(gnus-kill-file-mark)
(gnus-ancient-mark)
(gnus-low-score-mark)
(gnus-catchup-mark (from -1) (subject -1))))
As you see, each element in this alist has a mark as a key (either a
variable name or a "real" mark--a character). Following this key is a
arbitrary number of header/score pairs. If there are no header/score
pairs following the key, no adaptive scoring will be done on articles
that have that key as the article mark. For instance, articles with
`gnus-unread-mark' in the example above will not get adaptive score
entries.
Each article can have only one mark, so just a single of these rules
will be applied to each article.
To take `gnus-del-mark' as an example--this alist says that all
articles that have that mark (i.e., are marked with `D') will have a
score entry added to lower based on the `From' header by -4, and
lowered by `Subject' by -1. Change this to fit your prejudices.
If you have marked 10 articles with the same subject with
`gnus-del-mark', the rule for that mark will be applied ten times.
That means that that subject will get a score of ten times -1, which
should be, unless I'm much mistaken, -10.
The headers you can score on are `from', `subject', `message-id',
`references', `xref', `lines', `chars' and `date'. In addition, you
can score on `followup', which will create an adaptive score entry that
matches on the `References' header using the `Message-ID' of the
current article, thereby matching the following thread.
You can also score on `thread', which will try to score all articles
that appear in a thread. `thread' matches uses a `Message-ID' to match
on the `References' header of the article. If the match is made, the
`Message-ID' of the article is added to the `thread' rule. (Think
about it. I'd recommend two aspirins afterwards.)
If you use this scheme, you should set the score file atom `mark' to
something small--like -300, perhaps, to avoid having small random
changes result in articles getting marked as read.
After using adaptive scoring for a week or so, Gnus should start to
become properly trained and enhance the authors you like best, and kill
the authors you like least, without you having to say so explicitly.
You can control what groups the adaptive scoring is to be performed
on by using the score files (see Score File Format.). This will
also let you use different rules in different groups.
The adaptive score entries will be put into a file where the name is
the group name with `gnus-adaptive-file-suffix' appended. The default
is `ADAPT'.
When doing adaptive scoring, substring or fuzzy matching would
probably give you the best results in most cases. However, if the
header one matches is short, the possibility for false positives is
great, so if the length of the match is less than
`gnus-score-exact-adapt-limit', exact matching will be used. If this
variable is `nil', exact matching will always be used to avoid this
problem.