パスワードを忘れた? アカウント作成
672822 journal

tsykの日記: CommonLisp → Ruby (Bayesian SPAM Filtering)

日記 by tsyk
===========================================================
(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)))))))))
-----
g = (good[word] or 0) * 2
b = (bad[word] or 0)
unless (g + b) < 5
  [0.01,
    [0.99, [1, b / nbad].min /
           ([1, g / ngood].min +
            [1, b / nbad].min)].min].max
end
===========================================================
(let ((prod (apply #'* probs)))
  (/ prod (+ prod (apply #'* (mapcar #'(lambda (x) (- 1 x))
                                     probs)))))
-----
class Array
  def apply(m)
    arr = self.dup
    r = arr.shift
    arr.each{|a| r = r.send(m, a)}
    r
  end
end
prod = probs.apply(:*)
prod / (prod + probs.map{|a| 1 - a}.apply(:*))
===========================================================
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...