להורדה | אפליקציית מוזיקה ראשונה מסוגה!!! אלגוריתם שלומד מה אתם אוהבים מאה אחוז אופליין!!!
-
@elch הוא עובד מעולה אבל לא מכוייל נכון.
כי אין דרך לבן אדם שפוי לתייג אלפי שירים.
צריך פשוט לכייל אותו שאם אמן מתוייג זה מוסיף סיכוי לשירים לקפוץ
וכו'וכו' על זאת הדרךהוא עובד מעולה אבל לא מכוייל נכון.
כי אין דרך לבן אדם שפוי לתייג אלפי שירים.
צריך פשוט לכייל אותו שאם אמן מתוייג זה מוסיף סיכוי לשירים לקפוץ
וכו'וכו' על זאת הדרךתראה בגירסא האחרונה היעיליתי רשימה מובנית עם 129 אמנים מתוייגים (לא מדורגים) תחת סיגנון משלהם וברירת המחדל של המודל דלוק ללמוד ככה שזה אמור להיות הרבה יותר מדוייק אבל לגבי הכיול הבאתי עכשיו לAI את מה שאמרת בוא נראה מה יצא...
-
@elch לי עובד אחלה, ברחתי שיר לדוגמה והוא פשוט יצר לי רדיו רצוף עם כל השירים שדומים לו בצורה מפתיעה..
-
@נוחעם-fm
התגובה של קלודעובד על הרשימה של המשתמש. בדקתי כל סעיף בקוד לפני שנגעתי — הוא צדק כמעט בכל דבר.
נדחף כבר (CI ירוק):
כפילויות + "קאבר" — מצאתי את הסיבה: Versions.classify קרא לכל שיר באותו שם עם מפתח־אמן אחר "קאבר". הורדה שנייה של אותו שיר עם תיוג ישי ריבו מול ישי ריבו feat. = מפתח אחר, אותו זמר → הוצג כקאבר. תוקן.
זמר אחד משתלט — pick הטיל תקרה של 2-4 שירים לאמן, ואז, כשמדף לא התמלא, עבר שוב על הדירוג עם כל הכללים כבויים. 13 שירים מאותו זמר במדף אחד. עכשיו הוא מרפה בשלב אחד ולא מתמוטט.
ערבוב סגנונות למרות ההגדרה — כלל ההפרדה נבדק רק ברדיו ובהמשך התור. כל המדפים והמיקסים מעולם לא שאלו אותו. עכשיו זה בתוך pick.
דירוג אמן לא מקדם — צדק. הדירוג הגיע כבונוס שטוח לניקוד וזהו: לא הזין את שכן־הסאונד, לא את וקטור הטעם, לא את "נשמע כמו". מי שמדרג אמנים ולא שירים היה, מבחינת המנוע, מי ששתק — ולמי ששותק המנוע מציע את מה שלא שמעת. זה בדיוק "או 4/5 או לא תייגתי בכלל".
CSV — יש ייבוא היסטוריית השמעות, בשני הצדדים.
תיוג תיקייה שלמה — יש, בטלפון ובווינדוס, כולל תת־תיקיות.עכשיו: סעיף הלמידה. מצאתי מלכוד — מי שמתייג אמנים (מה שהאפליקציה עצמה מבקשת) מוציא בכך כל שיר בספרייה מכשירות, והריצה נגמרת ב"אין שירים שצריכים תגיות". עובד על זה.
7 מדדי הגנה נוספו; 6 מהם נכשלים על הקוד הקודם — כלומר הם באמת תופסים את הבאג.
הכל בעברית מכאן.עברתי על הדוח סעיף־סעיף ובדקתי כל אחד מול הקוד לפני שנגעתי. המשתמש שלך צדק כמעט בכל נקודה, וארבע מהתלונות היו באג אחד.
הבאג האחד
pickבונה כל מדף וכל מיקס. הוא הטיל תקרה לאמן, תקרה לאלבום ושומר־כפילויות — ואז, ברגע שמדף לא התמלא למספר שביקש, עבר שוב על אותו דירוג עם שלושתם כבויים. כלומר הכללים תפסו רק בספרייה רחבה מספיק כדי שלא יהיה בהם צורך.שחזרתי את זה על ספרייה בצורה שלו. שורה אחת, לפני:
המיקס שלך: אהרלה=13, מוטי=13, פלוני=8, חנן=13, ישי=13 styles=[חסידי, —, ישראלי] dupes={אהרלה שיר 1=2, מוטי שיר 1=2, ...}אחרי: התקרות מחזיקות, אפס כפילויות, צד אחד של כלל ההפרדה.
הפגם היחיד הזה ייצר את "זמר אחד משתלט", "שירים כפולים", וחצי מ"ערבוב סגנונות".
השאר, כל אחד נבדק
- קאברים.
Versions.classifyקרא לכל שיר באותו שם עם מפתח־אמן אחר "קאבר". אותו קובץ שהורד פעמיים כ־ישי ריבווכ־ישי ריבו feat. …= מפתח אחר, אותו זמר → העותק השני הוצג כקאבר של מישהו. עכשיו קאבר דורש מבצע שונה באמת. גם מאתר הכפילויות השווה אורכים בדליים קבועים, אז 4:01 ו־4:02 נפלו לשני צדדים בערך בחצי מהמקרים. - הפרדת סגנונות. הכלל נבדק ברדיו ובהמשך התור, ובשום מקום אחר. כל המדפים והמיקסים התעלמו ממנו. עכשיו הוא בתוך
pick, כך שמדף חדש לא יכול לשכוח. - דירוג אמן. הוא צדק. זה היה בונוס שטוח לניקוד השיר וזהו — מעולם לא הזין את שכן־הסאונד, לא את וקטור הטעם, לא את "נשמע כמו". מי שמדרג אמנים היה, מבחינת כל מודל במנוע, מי ששתק — ולמי ששותק הפיד מציע את מה שלא שמעת. זה בדיוק ה"או 4/5 או לא תייגתי בכלל" שלו.
- הלמידה. שתי סיבות מבניות, לא סף מחמיר. תיוג אמנים — מה שהאפליקציה מבקשת — הוציא כל שיר מכשירות, אז ספרייה מתויגת היטב נגמרה ב"אין שירים שצריכים תגיות". וחמור יותר: שיר שמתויג
חסידיבלבד הוזן למודל כהוכחה שהוא לאקצבי, כשפשוט אף אחד לא נשאל. מכיוון שכחצי מהשירים הקצביים בספרייה אמיתית נושאים ז'אנר ובלי אופי, הגבול הותאם ישר דרך החיוביים של עצמו. על מקרה מבחן שבו האופי נפרד בצורה מושלמת: כל סגנון קיבל 0% ושום דבר לא נכתב. אחרי התיקון — 100% על אמנים שלא באימון, 32 שירים תויגו. - CSV ותיוג תיקייה נבנו, בשני הצדדים.
מה שצריך לשים לב אליו
לתיקון הלמידה יש מחיר, וכתבתי אותו בדוח במקום להסתיר: הדיוק עכשיו הוא הדיוק על השירים שבאמת ענית עליהם. המודל עדיין כותב תגיות על שירים שלא תייגת, ואין מול מה למדוד את זה.
97 טסטים במנוע, 20 מהם חדשים. הרצתי את המדדים החדשים מול הקוד הישן — 6 מתוך 7 מדדי הפיד ומדד הלמידה נכשלים שם, כלומר הם באמת תופסים את הבאגים ולא רק מתארים את התיקון.
מצאתי גם ש־PR #20 נכנס לקונפליקט מול main (עבודת "שבעת הדלתות" נחתה שם בנפרד) — פתרתי ומיזגתי.
ה־CI עדיין רץ על הענף הממוזג. אדווח כשיסתיים.
ה‑CI עדיין רץ (בערך 4 דקות עד עכשיו — זה הזמן הרגיל של שני הג'obs). אבדוק שוב בעוד דקותיים ואדווח.
- קאברים.
-
טוב היעיליתי שוב גירסא נוספת הפעם השיפור הוא ניטו באלגוריתם הוא אחרי ההערות המדהימות של @נוחעם-fm ועוד כל מיני דברים שקלוד מצא לבד...
הגירסא החדשה היא: 1.0.193אשמח מאוד שתצביעו!!!
-
||מאז התלונה של המשתמש עשיתי שלושה סבבים על המנוע, והכל כבר בענף הראשי. אחד התיקונים בסבב הראשון היה שגוי, ותיקנתי אותו בסבב השני — זה מפורט בהמשך.
סבב 1 — התלונה עצמה (#20)
ארבע מהתלונות נבעו מבאג אחד. הפונקציה שבונה כל מדף וכל מיקס מגבילה כמה שירים נכנסים מכל אמן ומכל אלבום, ומונעת כפילויות. אבל כשמדף לא התמלא, היא השלימה אותו עם כל ההגבלות האלה כבויות. בבדיקה: 13 שירים של אותו זמר, שני עותקים של אותו שיר, ושני סגנונות שביקשת להפריד — הכל באותה שורה.
התלונה מה היה מה עכשיו זמר אחד משתלט ההגבלה לאמן נפלה בהשלמה ההשלמה מרחיבה רק את ההגבלות לאמן ולאלבום; השאר נשמר שירים כפולים / "קאבר" עותק שני עם תיוג אמן קצת שונה נחשב קאבר קאבר רק כשהמבצע באמת שונה ערבוב סגנונות כלל ההפרדה נבדק רק ברדיו נבדק בכל מדף ובכל מיקס דירוג אמן לא מקדם הדירוג היה רק תוספת קטנה לציון הדירוג מזין את מודלי הטעם והסאונד, ויש מדף "מהאמנים שדירגת" "או 4/5 או לא תייגתי" חסר מדף בין שני הקצוות נוסף המדף הזה הלמידה תמיד נכשלת שיר עם ז'אנר בלבד נספר כהוכחה שהוא "לא קצבי" כל סגנון נבדק רק על שירים שתויגו בסוג שלו (ז'אנר או אופי) ייבוא השמעות מ‑CSV לא היה נבנה, בטלפון ובמחשב תיוג תיקייה שלמה לא היה נבנה, בטלפון ובמחשב סבב 2 — השיר שהרשימה בנויה סביבו, ומשקל הדירוג (#21)
- רדיו, ניגון אוטומטי, "אותו סאונד", "כי אהבת את X" — כולם נפתחו שוב על אותו שיר, בעותק אחר או בגרסה חיה.
- "על בסיס האהובים" — החצי של השירים האהובים נכנס בלי אף הגבלה.
- מיקסים יומיים — נכנסו אליהם מחרוזות.
- חיפוש — מחפשים "אור", ו"שיר על האורות" יוצא לפני שיר ששמו בדיוק "אור".
- התיקון השגוי שלי מסבב 1: דירוג האמן נספר פעם אחת לכל קובץ שלו. אמן עם 100 קבצים שלא הושמע אף פעם גבר על 120 השמעות של אמן אחר. עכשיו הדירוג נספר פעם אחת לאמן, והוא עדיין מקדם אותו.
סבב 3 — המלצות דף הבית (#21)
רוב מה שמצאתי כאן נבע מדבר אחד: המנוע התייחס לדילוג כסוג של השמעה.
- "לא שמעת עדיין" — כלל שירים שדילגת עליהם 6 פעמים.
- "אותו סאונד" — אחרי 3 דילוגים על שיר, הוא הפך לשיר שהמיקס נבנה סביבו.
- "מה שמתנגן עכשיו" — אחרי כמה דילוגים ברצף, הפיד זז לכיוון מה שדחית.
- "תשמע שוב" — נפתח בשיר ששמעת לפני 10 דקות, ואחריו שיר שדילגת עליו 30 פעם.
- "כי אתה שומע הרבה X" — ניצח זמר שדילגת עליו הרבה. בנוסף, שיעורים "תפסו" את המדף וגרמו לו להיעלם.
- "מהספרייה שלך" — הציג שירים שדירגת
אחד.
התיקון לא שינה את מבנה מסד הנתונים. הוא קורא מטבלת ההיסטוריה שכבר קיימת בשני הצדדים ושבה נרשמות רק השמעות. כך הנתונים שלך לא בסיכון.
איך בדקתי
כל חשד שוחזר בטסט לפני שנגעתי בקוד. במנוע יש עכשיו 115 טסטים. על רוב הטסטים החדשים בדקתי שהם נכשלים על הקוד הישן, כלומר שהם באמת תופסים את הבאג.
מה עדיין פתוח
- מדד הדילוגים נמדד על כל ההיסטוריה ולא רק על התקופה האחרונה. משתמש מתוסכל שמדלג הרבה מקבל פיד אקראי יותר. כדי לתקן צריך תאריך לכל דילוג, וזה דורש שינוי במבנה מסד הנתונים.
- את השינויים האלה לא ראיתי על ספרייה אמיתית, רק בטסטים. אם המשתמש שלך ירגיש שמדפים יוצאים קצרים מדי, או שהלמידה עדיין לא כותבת כלום, הדוח המפורט של הלמידה יגיד לי בדיוק מה חוסם.||
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות
) עם