我正在为一个工作应用构建一个垃圾邮件过滤器(想想工作的火种)。我目前正在帮助构建垃圾邮件过滤器。为实现这一目标,“过度申请”工作的用户的信号是他们每天的申请拒绝率。
为了告知我们的阈值,我想出了一个解决方案,通过使用嵌套哈希即{user1 =>{date1=>0.33, date2=>0.66}}
从数据库中收集数据。我现在的问题是比率都是1.0,因为我认为我正在循环,直到拒绝或应用程序全部通过,因此计算总是相同的数字除以它自己。
这是我到目前为止所得到的。感谢帮助。
users = User.all
ratio_hash = Hash.new
users.each do |user|
if user.job_applications.count > 0 && user.job_rejections.count > 0
ratio_hash[user.name] = Hash.new
apply_array = []
reject_array = []
user.job_rejections.each do |reject|
user.job_applications.each do |apply|
if (apply.user_id.present? && reject.user_id.present?) || rej.user_id.present?
if (apply.user_id == user.id && reject.user_id == user.id) || rej.user_id == user.id
if (apply.created_at.present? && reject.created_at.present?) || reject.created_at.present?
date = (apply_array && reject.created_at.to_date)
if (apply.created_at.to_date == reject.created_at.to_date) || reject.created_at.to_date == date
apply_array << apply.created_at.to_date
reject_array << reject.created_at.to_date
ratio_hash[user.name][(apply.created_at.to_date || reject.created_at.to_date)] = (apply_array.length.round(2)/reject_array.length)
end
end
end
end
end
end
end
端