请帮助破译这个lisp提取物

Ehu*_*RAK 3 lisp spam-prevention bayesian

(let ((g (* 2 (or (gethash word good) 0)))
      (b (or (gethash word bad) 0)))
   (unless (< (+ g b) 5)
     (max .01
          (min .99 (float (/ (min 1 (/ b nbad))
                             (+ (min 1 (/ g ngood))   
                                (min 1 (/ b nbad)))))))))
Run Code Online (Sandbox Code Playgroud)

Sva*_*nte 6

问题是什么?这几乎是简单的英语:

g是的值word在散列表good(或0,如果不存在有)2倍

(let ((g (* 2 (or (gethash word good) 0)))
Run Code Online (Sandbox Code Playgroud)

和散列表中b的值(如果不存在则为0).wordbad

      (b (or (gethash word bad) 0)))
Run Code Online (Sandbox Code Playgroud)

考虑到这一点,并根据该总和的假设gb不小于5

   (unless (< (+ g b) 5)
Run Code Online (Sandbox Code Playgroud)

返回0.01或者最大值

     (max .01
Run Code Online (Sandbox Code Playgroud)

最小值为0.99或

          (min .99 
Run Code Online (Sandbox Code Playgroud)

b/ nbad通过的总和除以b/ nbadg/ ngood(作为一个浮点值,并且这些个体商应该至多为1).

               (float (/ (min 1 (/ b nbad))
                         (+ (min 1 (/ g ngood))   
                            (min 1 (/ b nbad)))))))))
Run Code Online (Sandbox Code Playgroud)