גם לכם יש הרגשה שהשירים ברדיו נעשים חזרתיים יותר? הלכנו ובדקנו את זה סטטיסטית. כדי לבדוק עד כמה שיר הוא חזרתי אנחנו משתמשים בשיטות כיווץ שמזהות חזרות בטקסט. כך גילינו ששירי המצעדים בשנים 2018–2020 היו החזרתיים ביותר ב־50 השנים האחרונות. אגב, השיר הכי רפטטיבי במצעד האחרון הוא 'יש לי חור בלב בצורה שלך' של להקת 'ג'ירפות' (נראה אתכם נזכרים בעשר מילים שונות מתוך השיר).
פוסט אורח מאת גבע קיפר – מהנדס תוכנה, בוגר תואר שני במדעי המחשב מאוניברסיטת תל־אביב ויוצר האתר GlglStats לניתוח חזרות בשירים [1].
התמקדנו בגישה פשוטה: מדידת החזרתיות שבשיר על פי המידה שבה ניתן לדחוס אותו בשיטות כיווץ סטנדרטיות. אלה אותן שיטות המשמשות ליצירת קבצי ארכיון בפורמט ZIP. בגישה הזו מחפשים חזרות בטקסט, וכך אפשר להפנות למיקום הקודם של המילים במקום להעתיק אותן מחדש. למשל, את השיר "אין אין אין חגיגה, בלי בלי בלי בלי עוגה" אפשר לכתוב כך: "אין (1–3)2x חגיגה, בלי (20–22)3x עוגה". כלומר אנחנו משכפלים את האותיות ממקומות 1–3 פעמיים, ואת האותיות ממקומות 20–22 אנחנו משכפלים שלוש פעמים. במקרה הזה לא ממש חסכנו בתווים, אבל במשפט המלא החיסכון כבר בולט לעין: "אין (1–3)2x חגיגה, בלי (20–22)3x עוגה, איפה (42–45)12x ה(36–39)" – חיסכון של כמעט 50% ביחס לטקסט הלא מכווץ.
כדי למצוא ביעילות את החזרות האלה נכתבו מרבית התוכנות בתחום על בסיס אלגוריתם שפרסמו שני חוקרים ישראלים, אברהם למפל ויעקב זיו [2], בשנת 1977. השנה אף הוענק ליעקב זיו אות כבוד יוקרתי בגין עבודה זו [3]. כמעט 50 שנה אחרי פרסום המאמר נעזרנו גם אנחנו בשיטה היעילה שהציעו – LZ77.
אם נפעיל את שיטת זיהוי החזרות על השירים של דודו פארוק למשל, נגלה שיש בהם בממוצע 45% חזרות ורק 55% תוכן. לא מפתיע למישהו שאפילו בשם הפרטי שלו יש חזרות. השיר הכי חזרתי שמצאנו הוא 'יהודה יהודה' של 'השמחות'. כיווץ בשיטה הזאת מקצר אותו בכ־90%!
כיווץ מבוסס חזרות מתאים מאוד לטקסט של שיר כי כשפותחים את הכיווץ מתקבל שוב השיר במלואו. במדעי המחשב כיווץ כזה נקרא Lossless (שלא מאבד דבר). לא כל שיטת כיווץ היא כזו. ואם כבר בשירים עסקינן, בוודאי נתקלתם בפורמט MP3. אומנם הפורמט מצליח לחסוך מקום, אך לא שומר על כל המידע שהוקלט. כיווצים כאלה מתבססים בדרך כלל על אופי החושים שלנו כדי לדעת על איזה מידע אפשר לוותר מבלי שנרגיש. לדוגמא, אם מנגנים בו־זמנית שני צלילים בתדרים דומים, הצליל החזק 'יבלע' את החלש והאוזן שלנו לא תשמע אותו. בפורמט MP3 מנצלים זאת ומוחקים את הצליל החלש שממילא השומע לא ירגיש בחסרונו, וכך נחסך מקום בשמירת הקובץ [4]. פורמט JPG מכווץ תמונות באופן דומה ומזניח פרטים שהעין לא תבחין בהם. למידע נוסף ראו קישור לפרק מרתק על פורמט MP3 בפודקאסט 'עושים היסטוריה' [5].
ישנן גישות מתוחכמות יותר מזיהוי חזרות לכיווץ טקסט. אחת מהן היא מדד 'סיבוכיות קולמוגורוב'. מדד זה מחשב את אורך המשפט הקצר ביותר המאפשר להסביר איך ליצור את הטקסט. לדוגמה, בטקסט "אבגדהוזחטיכלמנסעפצקרשת" אין חזרות, אבל אפשר להסביר את כולו במשפט הקצר "אותיות הא"ב לפי הסדר". אפשר לומר שזו דרך טובה למדוד עד כמה טקסט מסוים הוא בנאלי. למרבה הצער, קשה מאוד לחשב סיבוכיות קולמוגורוב, ויעבור זמן רב מדי עד שהמחשב יגיע לתשובה. לכן השימוש בגישה הזאת לכיווץ לא מעשי [6]. אנחנו בכל זאת חושבים שזה ממש מעניין.
יש גם גישות משודרגות שמסתמכות על ההבנה של שפת הטקסט. בעברית למשל שיר שיש בו המון מילים מהשורש אה"ב יכול להיחשב שיר חזרתי, גם אם המילים לא חוזרות על עצמן ("אוהב לאהוב אותך אהבה שלי"). יש כלים אוטומטיים שמאפשרים לנתח כך את השפה [7], וככלל התחום של עיבוד השפה הטבעית מתפתח במהירות. רק לפני כמה שנים תרגום ממוחשב נחשב למשימה בלתי אפשרית, והיום כבר יש לנו תוכנות שמתרגמות במהירות ובחינם.
הרעיון לניתוח שירים בכלים של מדעי המחשב אינו חדש. כבר בשנת 1977 פרסם דונלד קנות' (Knuth), אחד מאבות תורת האלגוריתמים, מאמר הומוריסטי ושמו The Complexity of Songs. קנות' אפילו מנתח את השיר "אחד מי יודע" ומסביר שאורך השיר הוא ריבועי ביחס לאורך הקידוד שלו [8]. אם תהיתם למה סדר פסח ארוך כל כך, הרי לכם התשובה.
ונחזור לשאלה המקורית על מצעדי הפזמונים. הניתוח שלנו מגלה ששירי המצעדים בשנים 2018–2020 היו החזרתיים ביותר בהיסטוריית המצעדים (מאז שנת 1970). המצעד החזרתי מכולם היה זה של 2020. כדי להסיק מסקנות רציניות יותר נצטרך לבדוק אם יש כאן מובהקות סטטיסטית. בינתיים נסתפק בלהגיד – ידענו!
הפרטים המלאים נמצאים באתר שבנינו [1].
מקורות והרחבות:
[1] האתר שבנינו ובו ניתוח של כל שירי האומנים ושל שירי המצעדים
[3] כתבה על זכייתו של יעקב זיו במדליית כבוד של ארגון IEEE
[5] פרק בפודקאסט 'עושים היסטוריה' על פורמט MP3
[6] מאמר מדעי על הקושי בחישוב 'סיבוכיות קולמוגורוב'
[7] כלים לביצוע עיבוד שפה טבעית בעברית
[8] המאמר ההומוריסטי The Complexity Of Songs