Похоже, что он пытается вычислить оценку на основе присутствия 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.
На основетеги, которые вы использовали, я бы предположил (и это всего лишь предположение), что он пытается вычислить вес для слова, основываясь на некоторой частоте (?) подсчета слова в хорошем или плохом электронном письме.