Add ML to problem feed
This commit is contained in:
parent
34523ab53f
commit
2fe571379c
8 changed files with 157 additions and 6 deletions
|
@ -115,7 +115,7 @@ def hot_problems(duration, limit):
|
|||
qs = cache.get(cache_key)
|
||||
if qs is None:
|
||||
qs = Problem.get_public_problems() \
|
||||
.filter(submission__date__gt=timezone.now() - duration, points__gt=3, points__lt=25)
|
||||
.filter(submission__date__gt=timezone.now() - duration)
|
||||
qs0 = qs.annotate(k=Count('submission__user', distinct=True)).order_by('-k').values_list('k', flat=True)
|
||||
|
||||
if not qs0:
|
||||
|
@ -141,7 +141,7 @@ def hot_problems(duration, limit):
|
|||
qs = qs.filter(unique_user_count__gt=max(mx / 3.0, 1))
|
||||
|
||||
qs = qs.annotate(ordering=ExpressionWrapper(
|
||||
0.5 * F('points') * (0.4 * F('ac_volume') / F('submission_volume') + 0.6 * F('ac_rate')) +
|
||||
0.02 * F('points') * (0.4 * F('ac_volume') / F('submission_volume') + 0.6 * F('ac_rate')) +
|
||||
100 * e ** (F('unique_user_count') / mx), output_field=FloatField(),
|
||||
)).order_by('-ordering').defer('description')[:limit]
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue