2010-09-14 18 views
9

इस साल छात्र परिषद के लिए, मैं "गाने" समिति पर हूं, हम गाने चुनते हैं। दुर्भाग्यवश, नृत्य के बच्चे हमेशा बेवकूफ गीत विकल्पों में से कुछ को नफरत करते हैं। मैंने सोचा कि मैं इसे इस साल अलग कर सकता हूं। पिछले गुरुवार, मैंने एक साधारण PHP एप्लिकेशन बनाया ताकि बच्चे डेटाबेस में गानों को सबमिट कर सकें, एक गीत नाम, कलाकार और शैली (ड्रॉप-डाउन से) की आपूर्ति कर सकें। मैंने रेडडिट की तरह एक मतदान सुविधा भी लागू की। एक अपवॉट बटन पर क्लिक करें, आपने गीत को ऊपर उठाया है, अपवर्त गिनती में वृद्धि की है। डाउनवॉट्स के साथ ही।लोकप्रियता द्वारा गाने की एक सूची छंटनी

किसी भी, डेटाबेस में, मेरे पास जानकारी के तीन tidbits हैं, मैंने सोचा था कि मैं इन गीतों, upvotes, downvotes, और एक timestamp दर करने के लिए उपयोग कर सकते हैं। थोड़ी देर के लिए, रैंक को शीर्ष पर उच्च "वोट" गिनती के साथ गाने रखने के द्वारा बनाया गया था। यही है, अधिक अपवॉट्स, कम डाउनवॉट्स (अपवॉट्स - डाउनवॉट्स) सूची के शीर्ष पर होंगे। यह थोड़ी देर के लिए काम करता था, लेकिन रविवार तक सूची में लगभग 75 गाने थे, और पहले प्रस्तुत किए गए गीत सूची के शीर्ष पर थे।

रविवार, मैंने रैंक एल्गोरिदम को (अपवॉट्स - डाउनवॉट्स)/(CurrentTimestamp - CreationTimestamp) में बदल दिया है, यानी कम समय में जितना अधिक वोट गिनती है, उतना अधिक गीत सूची में होगा। यह काम करता है, बेहतर है, लेकिन अभी भी यह नहीं है कि मैं इसे कैसे पसंद करूंगा।

अब क्या होता है, यह है कि तत्काल एक गीत बनाया गया है और 1 की वोट गिनती के लिए उभरा है, यह कहीं भी सूची के शीर्ष पर समाप्त होता है। जिन गीतों में नकारात्मक वोट हैं, वे अक्सर देखे जाते हैं क्योंकि बच्चे आमतौर पर नीचे स्क्रॉल नहीं करते हैं।

मुझे लगता है कि मैं डेटा को सॉर्ट कर सकता हूं ताकि निचले गाने शीर्ष पर दिखाई दें, इसलिए लोगों को निचले गाने देखने के लिए मजबूर होना पड़ता है। ईमानदारी से, मुझे पहले कभी "लोकप्रियता" एल्गोरिदम पर काम नहीं करना पड़ा, तो, आपके विचार क्या हैं?

वेबसाइट के पर http://www.songs.taphappysoftware.com - मैं अगर मैं इस यहाँ या नहीं रखना चाहिए, नृत्य में कुछ अवांछित गाने कारण हो सकता है पता नहीं है: 0

+0

मुझे लगता है कि एल्गोरिदम ठीक है। समस्या यूआई है। एक गीत के बारे में बहुत अधिक अनावश्यक जानकारी हैं। रैंक को तब न डालें, फिर गीत के साथ + और - चिह्न के साथ चिह्न।उन्हें एक टाइल दृश्य (flikr) में प्रस्तुत करें। इसके साथ, आप स्क्रॉल किए बिना और गाने दिखाते हैं। आप शीर्षक और निर्देश बॉक्स को बहुत छोटा बना सकते हैं और बस इसे अपने आकार की भरपाई करने के लिए एक अधिक ध्यान आकर्षित करने वाला रंग दे सकते हैं। – sheeks06

+1

मैं सही खड़ा हूँ। @ डेविड जॉनस्टोन द्वारा रैंकिंग अलगो बेहतर है। – sheeks06

+0

इस के साथ एक एल्गोरिदम पर भरोसा मत करो। अपने स्वाद का प्रयोग करें (आप सभी के बाद गानों की समिति पर हैं)। या एक डीजे किराया। पहले से ही रेडियो पर पर्याप्त कंप्यूटर से उत्पन्न प्लेलिस्ट। – Thilo

उत्तर

6

एक बहुत अच्छा सवाल है कि। यहां कुछ ऐसे प्रश्न हैं जिन्हें यहां पूछा गया है।

This article शायद शुरू करने के लिए एक अच्छी जगह है। स्पष्ट रूप से upvotes minus downvotes इसे करने का एक बुरा तरीका है। प्रत्येक के लिए स्कोर असाइन करने और उसके द्वारा क्रमबद्ध करने के लिए complicated maths का बेहतर तरीका उपयोग करना है।

यहाँ लेख से रूबी में एक स्कोरिंग समारोह है:

require 'statistics2' 

def ci_lower_bound(pos, n, power) 
    if n == 0 
     return 0 
    end 
    z = Statistics2.pnormaldist(1-power/2) 
    phat = 1.0*pos/n 
    (phat + z*z/(2*n) - z * Math.sqrt((phat*(1-phat)+z*z/(4*n))/n))/(1+z*z/n) 
end 

pos, सकारात्मक रेटिंग की संख्या है n रेटिंग की कुल संख्या है, और power सांख्यिकीय शक्ति को दर्शाता है : 95% संभावना है कि आपकी निचली बाउंड सही है, 0.05 9 7.5% मौका, आदि

उपयोगिता की बात के रूप में, मैं स्कोर द्वारा डेटा को सॉर्ट करूंगा, लेकिन मैं उपयोगकर्ता को स्कोर नहीं दिखाऊंगा। मैं केवल अपवॉट्स और डाउनवॉट्स की संख्या दिखाऊंगा।

+0

हाँ, स्कोर वर्तमान में कुछ पागल decimals होने के लिए बाहर आते हैं। मैं केवल वोट दिखाता हूं, और फिर यदि आप एक टेबल पंक्ति पर होवर करते हैं (+/-) अन-छुपाएं गिनती है। –

+0

@ मैट ईगन: मैं अपवॉट्स माइनस डाउनवॉट्स को बिल्कुल नहीं दिखाऊंगा क्योंकि यह कुछ भी मदद नहीं करता है। इसके अलावा, आपकी रैंकिंग इस समय बिल्कुल सही नहीं दिखती है, क्योंकि "हे लियोनार्डो" (+ 1/-8) कुछ + 1/-2 गीतों से ऊपर है। –

+0

मैंने अभी तक इस लोकप्रियता रेटिंग को लागू नहीं किया है। मैं बिस्तर पर झूठ बोलने वाला हूं, मैं सोफोरोर साल से अपने कुछ आंकड़े नोट्स देखने जा रहा हूं, इसलिए मैं वास्तव में समझ सकता हूं कि मैं यहां क्या कर रहा हूं। मुझे समझना अच्छा लगता है कि मैं क्या कर रहा हूं। - साथ ही, अब आप इसे इंगित करते हैं, मुझे नहीं लगता कि यह पूरी "टाइम" रेटिंग बहुत अच्छी तरह से काम कर रही है:/ –

0

समय या वोटों की संख्या (ऋणात्मक + सकारात्मक) पोस्ट करके गाने को सॉर्ट करने के बारे में कैसे? यदि आपका लक्ष्य हर गीत को समान ध्यान देना है, तो यह काफी अच्छा लगता है।