2017-03-16 2 views
0

Je travaille dans un site Web multilingue de dictionnaire, chaque mot dans ce dictionnaire sera lié à de nombreuses prononciations humaines, comme un fichier audio qui peut être enregistré par les utilisateurs. Chaque mot peut être lié à 10 fichiers audio seulement, de temps en temps (par exemple après 3 mois pour chaque mot), le système va supprimer les mauvais clips audio de prononciation, en utilisant un système de notation, dans ce cas (-5, -2 , 0, +2, +5).système de notation avec vote temps de croissance

Mais le problème est que:

Si un mot est lié à:

  • (1) ancien fichier audio (qualité moyenne) avec dix +2 votes, et deux 5 votes (sa cote n'augmente pas aussi vite que le fichier n ° 9)

  • (8) vieux fichier audio (qualité moyenne) avec dix +2 votes et un +5 votes (sa cote n'augmente pas aussi vite que le numéro de fichier) 9)

  • (9) nouveau fichier audio (de bonne qualité) avec cinq +4 votes (sa cote a augmenté rapidement)
  • (10) nouveau fichier audio (mauvaise qualité) avec un +5 votes (sa note a augmenté lentement)

Cela signifie, le fichier n ° 9, est un bon fichier de prononciation, car sa cote a augmenté rapidement, mais son score n'est pas très élevé. Comment puis-je utiliser le facteur de croissance du temps dans le système de notation?

Répondre

0

Yoy peut inclure un facteur de mémoire pour les votes compte tenu du temps écoulé entre le moment du vote et maintenant lorsque vous calculez le score.

Lorsque vous faites une moyenne, par exemple avec ces n = 4 chiffres est la même chose à faire:

1 + 2 + 3 + 4 = 10 
10/4 = 2.5 

que d'ajouter les contributions individuelles:

1/4 + 2/4 + 3/4 + 4/4 = 2.5 

Donc, en utilisant cette dernière façon de faire le calcul, vous pouvez multiplier chaque contribution par un facteur de mémoire qui diminue de 1 à 0 au fil du temps, ce qui rend les valeurs plus anciennes pèsent moins en ajoutant à la moyenne.

Par exemple, un facteur possible pourrait utiliser 1/x fonction avec x supérieur à 1.

f(time_gone_by) = 1/(1 + time_gone_by) 

(time is in days) 

Pour un vote il y a 7 jours, il évaluerait à:

vote_value/number_of_votes * 1/8. 

Ce qui est 12% de la valeur qu'il aurait si le vote avait eu lieu aujourd'hui.

Peut-être que cette fonction n'est pas exactement celle dont vous avez besoin, mais vous pouvez remplacer le calcul du facteur par une fonction différente qui s'adapte mieux à vos besoins.