(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)))))))))
3
A
回答
6
問題是什麼?這幾乎是純英文:
設g
是word
值在散列表good
(或0,如果不存在有)次2
(let ((g (* 2 (or (gethash word good) 0)))
和b
的word
在哈希表bad
的值(或0如果不存在)。
(b (or (gethash word bad) 0)))
考慮到這一點,和推定的g
和b
之和不小於5
(unless (< (+ g b) 5)
回報最大要麼0.01或
(max .01
所述的下最小值爲0.99或
3210b
/nbad
除以總和b
/nbad
和g
/ngood
(作爲浮點值,並且這些單獨的商應該至多爲1)。
(float (/ (min 1 (/ b nbad))
(+ (min 1 (/ g ngood))
(min 1 (/ b nbad)))))))))
2
看起來是嘗試計算基礎上的word
在哈希表good
和bad
存在的得分。
如果這個單詞不存在於一個散列表中,則它的值爲0,否則如果它存在於好表中,則它加權2(加倍)。
如果分數低於5計算得分(以下unless
部分)如下:
score = min(1, b/nbad)/(min(1, g/ngood) + min(1, b/nbad))
max(0.01, min(0.99, score))
我不知道什麼ngood
和nbad
是後來n表示對我來說,他們可能是重要的。它也看起來像代碼保持計算得分低於5.它也看起來像在分數計算中分母將保持最大值2保持得分的下限爲0.5。
基於你使用的標籤,我猜測(它只是一個猜測),它試圖根據某種頻率(?)來計算單詞的權重,壞的電子郵件
相關問題
- 1. 幫助與口齒不清
- 2. 幫助理解口齒不清
- 3. 口齒不清申請追加
- 4. 在口齒不清
- 5. 請幫忙弄清楚這個C#方法在做什麼?
- 6. 類在口齒不清
- 7. 口齒不清比較
- 8. 刮HTML中口齒不清
- 9. 如何在口齒不清
- 10. 請幫忙翻譯這個中文文本
- 11. 請幫忙簡化這個IF語句
- 12. invalidClassException:請幫忙收到這些錯誤
- 13. 請幫忙解決這些異常,android?
- 14. 請幫忙解決這個mod_rewrite問題
- 15. 獲取ProcessBuilder = new ProcessBuilder();工作,請幫忙
- 16. Java的編譯錯誤,請幫幫忙,我吮吸的Java
- 17. shell腳本提取tar文件請幫忙
- 18. 幫忙翻譯will_paginate文檔?
- 19. 可變麻煩口齒不清
- 20. 運行所遜色口齒不清
- 21. 匹配關聯列表口齒不清
- 22. 怎麼辦((AB)(CD)。)在口齒不清
- 23. .emacs.d和站點口齒不清目錄
- 24. 轉換口齒不清字符串流
- 25. 秩序emacs的評價口齒不清
- 26. 排序列表口齒不清
- 27. 替換功能在口齒不清
- 28. 發現在共同口齒不清
- 29. 口齒不清:波長範圍
- 30. 請幫忙 - SQL Join查詢
是的,LISP通常不會被讀取,它被破譯:P – 2010-11-01 14:25:20
nbad和ngood在哪裏定義? – 2010-11-01 14:43:01
順便說一下:,他解釋了他在文本中所做的事情。 –
Svante
2010-11-01 16:38:58