नोट: ट्रैक चयन और रोटेशन एल्गोरिथ्म


यह स्मार्ट रेडियो पर पिछले लेख की एक निरंतरता है जो इंटरनेट खो जाने पर नहीं मरता है। ऐसा लगता है कि पहले पैनकेक बल्कि ढेलेदार था: अधिकांश उपयोगकर्ताओं को आवेदन पसंद नहीं था। आलोचना मूल रूप से दो मोर्चों में विभाजित है:


  1. एक ही ट्रैक बहुत बार दोहराया जाता है, और नए बहुत कम दिखाई देते हैं।
  2. अपने पसंदीदा शैलियों, या माइनस अनुपयुक्त ट्रैक को चुनने का कोई तरीका नहीं है, ताकि उन्हें दर्दनाक रूप से छोड़ना न पड़े।

दूसरी समस्या पहले से बहुत अधिक बढ़ गई थी, क्योंकि चूक के कारण बहुत बार सभी समान पटरियों को दोहराते थे, हालांकि एक अलग अनुक्रम में।


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


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


प्रारंभिक विचार के अनुसार, पटरियों का घुमाव उस समय होना चाहिए जब सभी पटरियों को कम से कम दो बार सुना गया हो (एक बार यह ट्रैक के विश्वसनीय अनुमान के लिए अपर्याप्त लग रहा था)। रोटेशन के समय, पटरियों को हटा दिया गया था जिसका वरीयता स्कोर एक निश्चित स्तर से नीचे था, और पटरियों का एक नया हिस्सा लोड किया गया था।


व्यवहार में यह एल्गोरिथ्म एक बहुत ही दुर्लभ रोटेशन का कारण बना। वास्तव में, पटरियों को जल्दी से छोड़ दिया गया था जिससे लंबे समय तक फिर से सुनने की क्षमता खो गई। इसलिए, मुझे उन पटरियों के लिए अपने वरीयता स्कोर को कृत्रिम रूप से कम करना पड़ा, जिन्हें मैंने उनके खेलने की संभावना को बढ़ाने के लिए दो बार से कम सुना था।


इसके अलावा, अभी-अभी चली गई पटरियों की पुनरावृत्ति को बाहर करने के लिए, पिछले खेले गए पटरियों के लिए वरीयता स्कोर को कृत्रिम रूप से कम करने का निर्णय लिया गया था।


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


तो यह एप्लिकेशन के मूल संस्करण में था, जो पिछले लेख को लिखने के समय प्रकाशित किया गया था। अब उपयोगकर्ता अनुभव को बेहतर बनाने के लिए क्या किया गया है:


  1. अगले पुनरावृत्ति के लिए, रोटेशन अब सभी पटरियों के लिए केवल एक बार (पहले दो बार थे) सुनने के लिए पर्याप्त है।
  2. अनसुनी रचनाओं की उपस्थिति में, वरीयता का मूल्यांकन तेजी से बढ़ता है, अन्य सभी के लिए, यह तेजी से घटता है (दोनों परिमाण के एक क्रम से)।

इन परिवर्तनों ने इस तथ्य को जन्म दिया है कि जब इंटरनेट कनेक्शन होता है, तो पटरियों को अब केवल एक बार खेला जाता है (जैसा कि नियमित रेडियो में), लेकिन आपके द्वारा पसंद किए जाने वाले ट्रैक कैश में जमा हो जाते हैं, बाकी को भीड़ देते हैं। जैसे ही इंटरनेट कनेक्शन खो जाता है, पुराने तंत्र को सक्रिय किया जाता है, वरीयता के आकलन के अनुपात में चयनित पटरियों को पुन: पेश करता है।


पीएस ए दिखाई वाईफाई की मान्यता की कमी से संबंधित एक बग भी तय किया गया था।


PPS रिलीज 1.0.2 टूट गया था। मैंने मिनिक्यूशन और संसाधनों के संपीड़न को चालू किया, नतीजतन, अनुप्रयोग क्रैश हो गया, जैसा कि निकिता_डोल द्वारा बताया गया है। मैं माफी मांगता हूं, अब से मैं केवल बीटा संस्करणों के माध्यम से अपडेट अपलोड करूंगा। मुझे वास्तव में उम्मीद है कि संस्करण 1.0.3 काम कर रहा होगा।

Source: https://habr.com/ru/post/hi464053/


All Articles