WN

WN (https://www.wn.se/forum/index.php)
-   Allmänt (https://www.wn.se/forum/forumdisplay.php?f=2)
-   -   Betygsystem (https://www.wn.se/forum/showthread.php?t=20202)

raxo 2007-03-25 18:41

Någon som har nåt bra script till betysystem?

eliasson 2007-03-25 18:54

Men shit -- det beror väll helt och hållet på vad som ska sättas betyg på?
Video? Dokument? Bilder? Filer?
Googla lite och ska du nu fråga nått så föreslår jag att du ger lite mer information än en mening.

raxo 2007-03-25 19:13

det är filmer man ska sätte betyg på, helst 1-10.

Alex 2007-03-25 19:24

Spara antalet röster per film, och poäng per film. Sedan räknar du ut snittet genom att dela antalet med poängen.

Ex.
5 röster.
10, 10, 4, 4, 2 = 30

5/30 = ~0.16

Sedan multiplicerar du summan med 100, för att få ut procenten. Filmen skulle alltså vara 16% uppskattad.

(antal/poäng)*100 = procent.

Hofvet 2007-03-25 19:48

Nä du Zn4rK, nu har du allt förvirrat dig lite.

Ex.
5 röster.
10, 10, 4, 4, 2 = 30

30/5 = 6

Med denna formel får du fram genomsnittet på rösterna, om du vill räkna ut hur många procent av det maximala filmen har fått använder du sedan denna formel:

((poäng/antal)/den maximala poängen)*100 = procent

((30/5)/10)*100 = 60%

Alex 2007-03-25 20:16

Instant fail på mitt inlägg då :(. Skyller på att jag fick en timma mindre sömn.

Har i alla fall fått ihop det rätt med mina betygsystem, och jag använder formeln du har skrivit Hofvet.

=)

Edit:
Måste medge att det såg lite skumt ut när jag skrev det. Tack för att du fixade till det Hofvet!

Lundmark 2007-03-25 21:01

Men för att inte folk ska rösta fler gånger, hur löser ni det, cookies eller ip.

Hur sparar ni informationen om vem som har röstat på vilken film eller vad det nu är man ska rösta om.

eliasson 2007-03-25 21:57

Hur som helst skulle jag vilja påstå att det tar längre tid att implementera ett sådant litet system än att programmera ett helt nytt. :)

Timofey 2007-03-25 22:37

Citat:

Originally posted by Lundmark@Mar 25 2007, 21:01
Men för att inte folk ska rösta fler gånger, hur löser ni det, cookies eller ip.
Hur sparar ni informationen om vem som har röstat på vilken film eller vad det nu är man ska rösta om.

Cookies kan man ju rensa hur enkelt som helst.

Man kan väl spara informationen som en rad i en tabell i en enkel databas. MySQL till exempel.

Alex 2007-03-25 23:02

Citat:

Ursprungligen postat av alltinggratis
Citat:

Ursprungligen postat av Lundmark
Men för att inte folk ska rösta fler gånger, hur löser ni det, cookies eller ip.
Hur sparar ni informationen om vem som har röstat på vilken film eller vad det nu är man ska rösta om.

Cookies kan man ju rensa hur enkelt som helst.
Man kan väl spara informationen som en rad i en tabell i en enkel databas. MySQL till exempel.

MySQL är ju inte direkt ett uttömmande exempel. Vart lagras informationen om filmerna? I en databas. Att använda en annan än den filmerna lagras i är ju bara korkat.

Är det en medlemsbegränsad omröstning kan man spara idnummer och filmid och eventuellt poäng i en tabell. Detta lär ju ta rätt mycket plats om man har flera hundra tusen medlemmar som röstar på filmerna.

Utrymme är dock billigare än prestanda och att köra en kontroll mot databasen är inte direkt krävande, om man gör det rätt.

MrHandley 2007-03-26 11:05

Men hur gör man med viktade omröstningar. Om tre personer röstar 10/10 på en film så får ju den maxbetyg.
Om 100 personer röstar på en annan film, och några inte tycker om den så kommer den ju inte få maxbetyg, även om det överhängande antalet vill ge maxpoäng.

En viktad variabel för hur många som röstat borde ju vara given

eliasson 2007-03-26 11:37

Du får ju säga att den måste ha ett X antal röster innan den kan hamna på toppen, t ex att det måste minst vara 10 röster för att den ens ska visas.

Conth 2007-03-26 23:53

Vi gör såhär:

Max 2 betyg räknas per IP adress.

Minst 10 betyg skall finnas. Om inte fyller vi ut till 10 med "medelbetyg"

Exempel (vi kör med 1-5):
Ett ämne får betyg: 5, 5, 4, 3, 3 = 20
Vi fyller då ut med 5 st. 3:or = 15 (eftersom det "fattas" 5 st betyg för att komma upp till 10 st)
Betyg (20+15) / 10 = 3,5

gjohansson 2007-03-26 23:57

http://pligg.com ... :)

boena 2007-03-27 09:01

Låt endast medlemmar av siten rösta. Då slipper du allt krångel med IP :P

MrHandley 2007-03-27 09:03

Citat:

Originally posted by gjohansson@Mar 26 2007, 23:57
http://pligg.com ...

Fattar inte? Vad har det med saken att göra?

eliasson 2007-03-27 11:04

Citat:

Originally posted by boena@Mar 27 2007, 09:01
Låt endast medlemmar av siten rösta. Då slipper du allt krångel med IP

Absolut bästa lösningen ;)

Conth 2007-03-27 12:26

Citat:

Ursprungligen postat av eliasson
Citat:

Ursprungligen postat av boena
Låt endast medlemmar av siten rösta. Då slipper du allt krångel med IP *

Absolut bästa lösningen ;)

Förutsatt att man inte enkelt kan regga fler medlemsnamn.
Då kan man ju enkelt manipulera betyget.

gjohansson 2007-03-27 12:33

Citat:

Ursprungligen postat av MrHandley
Citat:

Ursprungligen postat av gjohansson

Fattar inte? Vad har det med saken att göra?

hehe, det gick lite för snabbt där... :)
Pligg är dock ett grymt kompetent CMS där just funktioner för att rösta på inlägg och nyheter (liknande DIGG) är inbyggt.

Letar du efter ett färdigt script skulle jag föreslå att du kollar på hotscripts.com

gjohansson 2007-03-27 12:45

Citat:

Originally posted by Conth@Mar 26 2007, 23:53
Vi gör såhär:

Max 2 betyg räknas per IP adress.

Minst 10 betyg skall finnas. Om inte fyller vi ut till 10 med "medelbetyg"

Exempel (vi kör med 1-5):
Ett ämne får betyg: 5, 5, 4, 3, 3 = 20
Vi fyller då ut med 5 st. 3:or = 15 (eftersom det "fattas" 5 st betyg för att komma upp till 10 st)
Betyg (20+15) / 10 = 3,5

Att skydda sig mot "fusk" i en mindre omfattning är i det närmaste omöjligt eftersom den som verkligen vill fuska kan registrera sig flera gånger, låna sin kompis dator, använda proxys etc.

Ett annat sätt är att du sållar bort extremerna (1 och 5 i en 5gradig skala) eller iaf viktar dessa mindre än normalt. Ex:

1= -1,5
2= -1
3= 0
4= +1
5= +1,5

ex. Rösterna (1,3,3,3,4) = 0,5

Du kan även använda dig av percentilen, typ 90 eller 95-percentilen, dvs att du sorterar alla röster, sedan bortser du från 5-10% av de högsta rösterna...

Finns många sajter som diskuterar detta, googla...

Kristofer 2007-03-28 21:17

Om det är för få antal röster på ett objekt så får man tillämpa någon metod för att straffa poängen. Att fylla ut med snittpoängen är ett sätt, inte helt perfekt då alla objekt möts i mitten, även de med låg poäng.

Ett annat vore att se hur snittpoängen ser ut för objektet och hur många röster som saknas för att den ska anses vara helt giltig. Saknas 10% kanske man sänker poängen med 10%. Saknas 90% av det antal man anser ska ha röstat innan den slipper straff så kanske man ska sänka med 90% av nuvarande medelpoäng. Det där får man ju känna av själv...

MrHandley 2007-03-29 11:07

Men om 10 röster är minimum, och en har 10 röster och en annan har 1 000 röster, viktar man då till fördel för den som har fler röster om de har samma snitt? Sannorlikheten är ju högre att fler röstat positivt om det är få röster än om det är många röster.

eliasson 2007-03-29 11:42

Citat:

Originally posted by MrHandley@Mar 29 2007, 11:07
Men om 10 röster är minimum, och en har 10 röster och en annan har 1 000 röster, viktar man då till fördel för den som har fler röster om de har samma snitt? Sannorlikheten är ju högre att fler röstat positivt om det är få röster än om det är många röster.

Ja, det är ju en självklarthet att du visar den som har mest röster, på samma snitt, först. Det är ju den som har varit mest attraktiv.

thorsell 2007-03-29 13:11

IMDB använder sig av den här formeln för att räkna ut snittbetyg:

Result = (v ÷ (v+m)) × R + (m ÷ (v+m)) × C
where:
R = average for the movie (mean) = (Rating)
v = number of votes for the movie = (votes)
m = minimum votes required to be listed in the Top 250 (currently 1250)
C = the mean vote across the whole report (currently 6.8)


Alla tider är GMT +2. Klockan är nu 11:22.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson