2010-05-19 29 views
9

मैंने डेल्फी में एक विनम्प-जैसे संगीत प्लेयर बनाया है। बिल्कुल जटिल नहीं है। बस एक साधारण एक।सुनने की आदतों के आधार पर स्वचालित संगीत रेटिंग

लेकिन अब मैं एक और जटिल विशेषता जोड़ना चाहता हूं: पुस्तकालय में गीत उपयोगकर्ता की सुनने की आदतों के आधार पर स्वचालित रूप से मूल्यांकन किए जाने चाहिए।

इसका मतलब है: यदि उपयोगकर्ता को कोई गीत पसंद है या नहीं, तो एप्लिकेशन को "समझना" चाहिए। और न केवल वह उसे पसंद करता है बल्कि यह भी कितना।

मेरे दृष्टिकोण अब तक (डेटा जो इस्तेमाल किया जा सकता):

  • आप को मापने के लिए कितनी बार एक गीत समय के अनुसार खेला गया था। गीत गिनती में जोड़ा गया था जब गिनती शुरू करना ताकि हाल के गाने को कोई नुकसान न हो।
  • मापें कि औसत (मिनट) पर कितना समय खेला गया था।
  • एक गीत शुरू करना लेकिन किसी अन्य व्यक्ति को सीधे बदलना रैंकिंग पर बुरा प्रभाव डालना चाहिए क्योंकि उपयोगकर्ता को गीत पसंद नहीं आया।
  • ...

आप कृपया मुझे इस समस्या के साथ मदद कर सकते हैं? मैं बस कुछ विचार करना चाहूंगा। मुझे डेल्फी में कार्यान्वयन की आवश्यकता नहीं है।

उत्तर

4

मापें कि औसत (मिनट) पर कितना समय खेला गया था।

मुझे नहीं लगता कि यह एक अच्छा मीट्रिक है, क्योंकि एक लंबा गीत एक छोटे से गीत पर अनुचित लाभ प्राप्त करेगा। आपको इसके बजाय प्रतिशत का उपयोग करना चाहिए:

औसत। समय खेला/कुल गीत लंबाई

+4

मैं आमतौर पर विपरीत समस्या के बारे में चिल्लाता हूं: यदि आप किसी गीत को अपनी "नीचता" के संकेत के रूप में बजाए जाने की संख्या को मापते हैं, तो लंबे गीतों को दंडित किया जाता है! तो आपका ले-औसत-औसत विचार अपेक्षाकृत साफ है। –

+0

बहुत बहुत धन्यवाद, dbyrne, अच्छा विचार। तो मैं मिनटों के बजाय प्रतिशत में खेला औसत समय माप जाएगा। – caw

+0

हालांकि यह काफी अच्छा काम नहीं करता है - यदि आप औसत प्रतिशत खेला जाता है, तो एक बार खेला जाने वाला एक छोटा गीत 100% रेटिंग होगा, जबकि आमतौर पर केवल कुछ ही मिनटों के लिए खेला जाने वाला एक बहुत लंबा गीत कम रेटिंग होगा खेला जा रहा है। –

10

मैं आपके सभी उपयोगकर्ताओं की सुनने की आदतों को केंद्रीय डेटाबेस में ट्रैक करता हूं, ताकि आप अन्य लोगों को भी पसंद करते हुए सिफारिशें कर सकें ("जो लोग इस गीत को पसंद करते हैं, उन्हें इन अन्य गीतों को भी पसंद आया ")

कुछ अन्य मीट्रिक पर विचार करने के लिए:।

  • बार के अनुपात में है कि गीत तुरंत पुनः बजाया गया था (पूर्व यह गाना तुरंत बार यह खेला गया था)

  • का 12% पुनः बजाया गया था टी किया अरे खेल के दौरान "इस गाने को दोहराएं" बटन चालू करें?

  • प्रति घंटे, दिन, सप्ताह खेला बार, महीने के बार इस गीत को छोड़ दिया गया था की

  • अनुपात। (उदा। इस गीत खेला गया था, लेकिन तुरंत समय के 99% को छोड़ दिया) गीत के

  • अनुपात की बात सुनी (उपयोगकर्ता, औसत पर इस गीत का 50% की बात सुनी बनाम कुछ अन्य गीत का 100%)

भी

:

उपयोगकर्ता के माइक्रोफ़ोन को चालू में सुनें। क्या वे साथ गाते हैं? : डी

वे गीत किस मात्रा में खेलते हैं?क्या वे इसे क्रैंक करते हैं?

"दोस्तों को इस गीत की अनुशंसा करें" बटन में रखें (जो कि दोस्त या कुछ के लिए गीत गीत शीर्षक)। वे जो गीत सुझाते हैं, वे शायद पसंद करते हैं।

आप ऑडियो स्ट्रीम पर कुछ फीचर निष्कर्षण करना चाहते हैं, और इसी तरह के गाने ढूंढ सकते हैं। यह मुश्किल है, लेकिन आप इसके बारे में यहाँ और अधिक पढ़ सकते हैं:

http://portal.acm.org/citation.cfm?id=1150523

http://www.springerlink.com/content/g71368g57x013j48/

"अस्थायी आंकड़ों के साथ संपूर्ण सुविधा पीढ़ी के आधार पर संगीत संग्रह की समझ में आता मॉडल" "वर्गीकृत ऑडियो डेटा के लिए स्वत: फ़ीचर निष्कर्षण"

"संगीत संग्रह के संगठन के लिए एक वितरित प्रणाली में सुविधाओं के सहयोगी उपयोग" http://www.idea-group.com/Bookstore/Chapter.aspx?TitleId=24432

+0

बहुत बहुत धन्यवाद, एल चीफ। आपके उत्तर में कुछ अच्छे विचार हैं। पहले अनुच्छेद के बारे में: मुझे यह दृष्टिकोण पता है (last.fm) लेकिन मैं एक एकल उपयोगकर्ता अनुप्रयोग बनाता हूं। तो मैं उपयोगकर्ता की आदतों की तुलना अन्य उपयोगकर्ताओं की आदतों से नहीं कर सकता। – caw

+0

अपने अतिरिक्त मीट्रिक के बारे में: क्या कोई मेट्रिक # 4 और मीट्रिक # 5 को संयोजित नहीं करना चाहिए? यदि एक गीत तुरंत छोड़ दिया जाता है, तो अनुपात की गणना सिर्फ 1% या उससे भी कम है, है ना? – caw

+0

आपकी मीट्रिक # 3 मेरी मीट्रिक # 1 से मेल खाती है, है ना? चाहे मैं प्रति सप्ताह या प्रति वर्ष खेले गए समय को मापता हूं, क्या कोई भेद नहीं करता है, है ना? – caw

0
(ListenPartCount * (ListenFullCount^2)) + (AverageTotalListenTime * ListenPartTimeAverage) 
-------------------------------------------------------------------------------------------- 
       ((AverageTotalListenTime - ListenPartTimeAverage) + 0.0001f) 

यह सूत्र एक अच्छा परिणाम देगा, क्योंकि उपयोगकर्ता वास्तव में गीत का हिस्सा पसंद कर सकता है, यह स्कोर में देखा जाना चाहिए, अगर उपयोगकर्ता को पूर्ण गीत पसंद है तो वजन दोगुना होना चाहिए।

आप विभिन्न तरीकों से, f.ex सुनने के उपयोगकर्ता पेड़, f.ex शामिल करता है, तो उपयोगकर्ता एक गीत सुनता है और उसके बाद वह एक और गीत कई बार सुनता में इस folmula ठीक कर सकते हैं, आदि

0

उपयोग की तारीख लाइब्रेरी में एक शुरुआती बिंदु के रूप में गीत जोड़ा गया था।

मापें कि गीत/शैली/कलाकार/एल्बम कितनी बार खेला जाता है (पूरी तरह से, या भाग में या छोड़ दिया जाता है) - यह आपको यह मापने की अनुमति देगा कि कितनी बार एक गीत/शैली/कलाकार/एल्बम नहीं खेला जाता है।

इन मानकों के आधार पर भारोत्तोलन के साथ आओ, जब एक गीत, इसकी शैली, कलाकार या एल्बम अक्सर खेला नहीं जाता है, तो इसे खराब रैंक करना चाहिए। जब कलाकार को हर दिन गाने खेला जाता है तो उसे बढ़ावा मिलेगा, लेकिन कहें कि कलाकार के गीतों में से कोई भी कभी नहीं खेला जाता है, इस गीत को अभी भी बहुत कम

1

अपने अतिरिक्त मीट्रिक के बारे में बताएं: मेट्रिक को गठबंधन नहीं करना चाहिए # 4 और मीट्रिक # 5? यदि एक गीत तुरंत छोड़ दिया जाता है, तो अनुपात की गणना सिर्फ 1% या उससे भी कम है, है ना? - marco92w मई 21:08

ये अलग होना चाहिए। छोड़ने के परिणामस्वरूप छोड़े गए गीत के लिए नकारात्मक रेटिंग होनी चाहिए। हालांकि, यदि कोई गीत शुरू होने पर उपयोगकर्ता एप्लिकेशन को बंद कर देता है, तो आपको इसे नकारात्मक रेटिंग के रूप में नहीं मानना ​​चाहिए, भले ही गीत का केवल कम प्रतिशत खेला गया हो।

0

बस मापें कि कितनी बार एक गीत खेला जाता है।

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

0

कृत्रिम बुद्धि इस समस्या पर उपकरण?

अच्छा!मुझे कहना है कि स्क्रैच से शुरू करना का उपयोग करने के लिए वास्तव में मजाकिया हो सकता है, जो अपने स्वयं के "खुफिया" वाले ग्राहकों का नेटवर्क है और अंत में केंद्रीय "खुफिया" पर ग्राहक परिणाम एकत्रित करता है।

प्रत्येक ग्राहक अपने ही "उपयोगकर्ता रेटिंग" उत्पादन कर सकता है उपयोगकर्ता habitudes के आधार पर (पहले से ही के रूप में कहा: औसत listenig, listenig गिनती, आदि ...)।

एक केंद्रीय "बुद्धिमान" कलेक्टर से "वैश्विक रेटिंग" में अलग-अलग रेटिंग्स विलय trands, सुझाव और हर उच्च स्तरीय रेटिंग आप की जरूरत दिखा सकता है।

वैसे भी इस तरह के एक "मस्तिष्क" को प्रशिक्षित करने के मतलब है कि आप पहले एक विश्लेषणात्मक ढंग से समस्या का समाधान करने के लिए है कि, लेकिन वास्तव में परस्पर छोटे दिमाग के इस तरह के एक बादल का निर्माण करने के उच्च स्तर का उत्पादन करने के हास्यास्पद हो सकता है "खुफिया "।

हमेशा की तरह, के रूप में मैं नहीं है अपने कौशल का पता है, तंत्रिका नेटवर्क, आनुवंशिक एल्गोरिथम, फजी लॉजिक को एक बार देख ले, पैटर्न मान्यता और इसी तरह की समस्याओं एक गहरी समझ के लिए।

0

आप की तरह कुछ सरल कार्य का उपयोग कर सकते हैं:

listened_time_of_song/(length_of_song + 15s) 

या

listened_time_of_song/(length_of_song * 1.1) 

इसका मतलब है कि अगर गीत 15 सेकंड में तो रोक दिया गया यह नकारात्मक स्कोर, या हो सकता है दूसरे के साथ दिया गया होगा मामला भी बेहतर है (अगर उपयोगकर्ता ने पूरे गीत को सुना तो गीत की लंबाई से कोई फर्क नहीं पड़ता)

यदि आप इसके साथ आम हैं तो एक और तरीका तंत्रिका नेटवर्क का उपयोग कर सकता है विषय।

3

कृपया समय के साथ समानता को कम करें। यदि आप उन्हें पिछले एन दिनों के दौरान अक्सर सुनाते हैं तो आप गाने को बेहतर पसंद करते हैं, जबकि पुराने गाने को केवल एक अनौपचारिक उल्लेख करना चाहिए, क्योंकि आप उन्हें पसंद करते हैं लेकिन शायद उन्हें बहुत अधिक सुना है।

कम लेकिन आखिरी नहीं, आप समान गीत खोजने के लिए बीट डिटेक्शन (और शायद स्पेक्ट्रम) जोड़ सकते हैं, जो आपको गाने सुनकर इनपुट किए गए उपयोगकर्ता से अधिक डेटा प्रदान कर सकता है।

मैं यहां एमपी 3-आईडी टैग वाले गीतों को समूहित करने के लिए भी जाऊंगा, क्योंकि इससे यह संकेत मिलता है कि उपयोगकर्ता वर्तमान में क्या कर रहा है। और यदि आप कुछ ऑटोप्ले फ़ंक्शन प्रदान करना चाहते हैं, तो यह भी मदद करेगा। एक महान गोवा गीत सुनने के बाद, पंक पर स्विच करना अजीब है, भले ही मुझे दोनों दुनिया के गाने पसंद हैं।

संबंधित मुद्दे