אז מה היה לנו שם

עזרה לדגי זהב ושאר מאותגרי הזיכרון; על מה בעצם הבחירות; איך פרספקטיבה היסטורית מחדדת את תפיסת המציאות; כוחו של הקיבוץ; ותצוגות גרפיות מסוגים שונים.

[הערה טכנית: כדי לראות את הגרפיקה של חלק מהאובייקטים בפוסט, מומלץ להיכנס להשתמש במכשיר עם מסך גדול יותר משל סמארטפון, למשל טאבלט. אם בכל זאת בחרתם בסמארטפון כנסו לתוך הפוסט ממש ולא לצפות בו מהעמוד הראשי של הבלוג. כמו כן, למשתמשים בסמארטפון, מומלץ להשתמש בו כשהוא על הצד בתצוגה רוחבית אחרת הגרפים עלולים להיות קטנים מדי ויהיו בעיות עם לחיצה כפולה שתבצע zoom במקום בחירה בתצוגות של plotly כפי שיובהר בהמשך]

ארבע שנים – לך תזכור

בוחרים לא מעטים מצביעים פעם אחר פעם לאותה מפלגה. חלק מתוך הזדהות עם ערכיה, אחרים מתוך חיבור רגשי עמוק. אבל, מספרים שאי שם מעבר לקשת יש עוד אנשים שמתחילים מערכת בחירות עם דף חלק ומחפשים את המפלגה שתעשה הכי טוב למדינה בשנים הקרובות. הבעיה הראשונה במימוש התפישה הזאת היא כפי שאמר הפיזיקאי נילס בוהר – “קשה להתנבא, בייחוד לגבי העתיד”, ולכן במקום לנבא את מעשיה של כל מפלגה אפשר להעריך אותה ע”פ המצע שלה, נסיון מעניין אך לעיתים חסר תוחלת בשל קשר רופף בלבד בין המצע לביצוע בפועל. עוד אפשרות היא להעריך כל מפלגה על פי מעשיה בעבר וכאן מגיעה הבעיה השנייה – מי בכלל זוכר מה היה פה ב-4 שנים האחרונות?

אז למה בעצם יש בחירות?

נניח שאתם בכל זאת זוכרים כמה אירועי מפתח או ישויות מרכזיות בקדנציה האחרונה, אפשר בקלות לראות עד כמה פופולאריים הם היו בטוויטר בכל רגע וכך להבין מתי קרו ואיך התפתחו עם הזמן.

לטובת צעירי טוויטר נציין שברשת זו ניתן לשתף ציוץ שנכתב ע”י משתמש אחר וכך להגביר את תפוצת אותו הציוץ ברשת בכלל ובקרב העוקבים שלך בפרט, או בקיצור לעשות retweet. בפוסט הנוכחי אני מתעלם מציוצים חוזרים שכאלו ואחזור אליהם בעתיד כשננסה להבין איזה טוויטים זוכים לפופולאריות גבוהה.

הגרף לעיל יחסית דינאמי, והקוראים מוזמנים לבחור להציג רק חלק מהביטויים ע”י לחיצה כפולה / יחידה עליהם, לעשות zoom-in ולהתמקד באיזור מסוים ע”י סימון שלו, ו-zoom-out ע”י לחיצה כפולה על הרקע.

כשבוחנים נושאים בודדים רואים ש:

  • פרשת הצוללות פרצה לחיינו באמצע 2016 ומאז צפה שוב ב-2017, 2018 עם התקדמות שלבי החקירה
  • גבאי יו”ר העבודה מאמצע 2017
  • פסקת ההתגברות תפסה תאוצה באמצע 2018
  • נתניהו הכי פופולארי בכל רגע נתון והפופולאריות שלו ממשיכה לעלות

 

כשמצליבים זוגות של נושאים אפשר לראות קפיצה בציוצים אודות בחירות במרץ 2018 במקביל לדיונים ערים בנושא התקציב וחוק הגיוס, ולעומת זאת בסוף 2018 הזינוק במספר האיזכורים של הבחירות מופיע במקביל לעליה חדה באיזכורים של חקירות נתניהו למשל בנושא הצוללות ובמקביל עליה של נושא הגיוס.

שתי הסתייגויות חשובות – 
1. מתמטיקאים יציינו בצדק שקורלציה (“מתאם”) בין מספר המופעים לא מעידה בהכרח על קשר סיבתי ישיר. זה נכון כמובן, אבל עדיין במקרה שלנו, הדעה המקובלת היא שיש קשר נסיבתי בין הדברים.
2. העובדה שמדברים על משהו לא הופכת אותו לנכון. ספציפית, אם מדברים על בחירות בהקשר של משבר חוק הגיוס זה לא אומר שזו אכן סיבת הבחירות. במובן הזה הקורפוס שאני עובד עליו בפוסט הזה כולל פחות דעות אישיות של האוכלוסיה הכללית ויותר טוויטים חדשותיים של מקורות חדשות, עיתונאים וכו’ ולכן הוא יותר “מבוקר”. במובנים פוסט-מודרניים ניתן גם לטעון שאין אמת מוחלטת אלא אוסף של נרטיבים שמתגבש לנרטיב המרכזי בטוויטר אבל טיעונים מעין אלו מתאימים אולי לבלוג בנושא פילוסופיה.

(עוד קריקטורה מצויינת של xkcd.com)

מה עושים דגי זהב לפני בחירות?

לדגי זהב יצא שם של יצורים בעלי זיכרון קצר בצורה קיצונית, למזלם הם פחות טרודים בענייני בחירת נציגים לפרלמנט, כך שזיכרון מעורפל ביחס לאירועי השנים האחרונות הוא יותר בעיה אנושית מאשר דגית. אז מה בכל זאת עושים בני אדם מאותגרי זיכרון? פונים למכר בעל זיכרון פנומנאלי (כגון ג.ב.) או לחילופין בוחנים את טוויטר ברזולוציה חודשית ומזהים מילים וביטויים פופולאריים בכל חודש.

בחלון למטה, מוצגים הביטויים הפופולאריים בכל חודש (מוזמנים ללחוץ על החיצים ימינה ושמאלה ולעבור לחודש הבא/הקודם בהתאמה). לתצוגה שכזו קוראים “ענן מילים” (words cloud). שימו לב שביטויים הכוללים מספר מילים מחוברים ע”י קו תחתון, למשל “בתל_אביב” בינואר 2016. כל ביטוי מקבל ציון שמבוסס על שכיחותו בקורפוס הטוויטים של אותו חודש וככל שביטוי שכיח יותר בחודש זה ציונו יהיה גבוה יותר והוא יופיע בפונט גדול יותר. למשל, “המשטרה” יותר שכיחה בינואר 2016 מ-“הפרקליטות” 

previous arrow
next arrow
Slider

מה למשל אפשר ללמוד מענן המילים?

  • דפנה מאיר ז”ל נרצחה בפיגוע בינואר 2016
  • שמו של אלאור אזריה (“החייל היורה”) התפרסם ביולי 2016
  • שמעון פרס ז”ל נפטר בספטמבר 2016
  • חוק ההסדרה עלה לכותרות בנובמבר של אותה שנה

ענן-מילים הוא כלי מאוד פופולארי לניתוח ראשוני של מידע טקסטואלי כשאין ידע מקדים על הקורפוס (למשל אין יכולת סיווג של מסמכים לסוגים שונים). אבל, לפעמים מתקבלת תחושה של שימוש יתר  שכן לתצוגה הזאת יש חסרונות מובהקים:

  1. הביטויים בענן עומדים כל אחד בפני עצמו בלי קיבוץ סמנטי כזה או אחר והברירות הן הקלה על המשתמש תוך דילול והתמקדות רק בביטויים הכי בולטים או לחילופין עומס של תוכן ויזואלי בכדי לתפוס יותר ביטויים ולהעביר יותר אינפורמציה.
  2. ענני מילים נועדו לתפוס מהות של רגע ולא התפתחות על ציר הזמן ולכן ברצף עננים כגון העננים החודשיים שלנו, ביטויים שחוזרים בין חודשים יופיעו כל פעם במקום אחר והעין האנושית מתקשה לתפוס את החזרתיות הזאת. הסיבה לאי שמירת הסדר היא שחבילת התוכנה בה אני עושה שימוש מנסה לדחוס את כל הביטויים פנימה ע”פ גודלם כך שכולם ייכנסו.
  3. שוב, בגלל שענני מילים בהוויתם מתארים קורפוס קפוא ולא מתפתח, ביטויים חזקים באופן קבוע בקורפוס יאפילו על ביטויים שצפים ועולים לתקופה קצרה ודווקא הם אלו שמתארים את ההתפתחות והשינוי בציר הזמן. לדוגמא, כמו ברוב החודשים גם באפריל 2016 נתניהו מאוד בולט עד כדי כך שהוא מאפיל על פרשת הפרדת היולדות שהתפוצצה באותו חודש.

קצת פרספקטיבה היסטורית לא תזיק

נתחיל דווקא מהבעיה האחרונה והצורך במניעת מצב שבו ביטויים פופולאריים בקביעות מאפילים על אלו ששכיחותם עולה ויורדת בחודשים שונים ומתארים את ההתפתחות על ציר הזמן. אפשר כמובן להחליט לסנן או להחליש ביטויים שנבחרו מראש כגון “נתניהו“, “חדשות“, “דיווח” תוך הסתמכות על היכרות מקדימה של הקורפוס או ניתוח ידני שלו, אבל המטרה בבלוג היא להראות איך מחלצים תובנות בצורה אוטומטית ולהימנע ככל האפשר מעבודה ידנית שכזו.

בגדול,  גישה מקובלת לבעיות מעין אלו היא הדגשת השינויים ביחס לסביבה, ובמקרה שלנו התחשבות בסביבת הזמן או ברקע ההיסטורי סביב חודש ספציפי. דמיינו שאתם מאזינים לתחזית בקיץ, לא באמת מעניין אתכם לשמוע שמחר יהיה חם, כי רוב ימי הקיץ בישראל אם לא כולם חמים. לעומת זאת, אתם כן מעוניינים לדעת שמחר ספציפית יהיה עומס חום קיצוני ביחס לימים האחרונים וסכנת שריפות. באופן דומה, לא מעניין לדעת שגם החודש דיברו הרבה על הכנסת ונתניהו, אלא דווקא אירועים שייחדו את החודש ביחס לחודשים קודמים גם אם שכיחותם של הביטויים הללו נמוכה יותר משל נתניהו.

(מרגלית החזאית נותנת תחזית קבועה בתוכנית “שידורי המהפכה” של אסי וגורי)

איך בפועל נעשה זאת? למשל, כשאנו בוחנים את הביטויים של ינואר 2017,  “נעניש” ביטוי שפופולארי ב-12 החודשים שקדמו לחודש זה (כל שנת 2016) ונפחית מעט מציון הפופולאריות הבסיסי שלו, ולעומת זאת “נחזק” מעט את הציון הבסיסי של ביטוי שבינואר 2017 היה בעל פופולאריות בינונית, אך בכל 2016 כמעט ולא הופיע בטוויטר.

אפשר לראות בענן המילים המעודכן למטה, שבאופן זה של “נרמול” אנו מקבלים ש:

  • נוכחותה של דפנה מאיר ז”ל מתחזקת בינואר 2016
  • מאבק הגז שנעלם מעינינו בענן במקורי מופיע לפתע בפברואר 2016
  • פרשת הפרדת היולדות מתחזקת משמעותית באפריל 2016, וענבל אור יזמית הנדל”ן פתאום נכנסת לתמונה באותו החודש
  • נאום החמוצים מתגלה לעינינו באוקטובר 2017
previous arrow
next arrow
Slider

הקיבוץ המאוחד

מה אם אנחנו רוצים לדעת מה קרה כל חודש לא ברמת הביטויים הבודדים אלא עם איזו רמה של הכללה? למשל אנו שואפים לזהות את התפתחות איום הטרור בציר הזמן. כמובן ניתן לעבור על כל הביטויים הפופולאריים בכל חודש ולנסות לקבץ אותם ידנית ע”פ נושאים, אבל אנחנו מעוניינים במיזעור המאמץ הידני. למשימות מעין אלו קיימים אלגוריתמים שונים לקיבוץ (clustering) שעובדים בגדול באופן הבא – בהינתן אובייקטים שאנו יודעים למדוד דמיון (או שוני) ביניהם ברמת הזוגות, האלגוריתם יזהה ויחזיר לנו מקבצים של אובייקטים כך שהאובייקטים בכל מקבץ דומים יותר אחד לשני מאשר לאובייקטים במקבצים אחרים. במקרה שלנו, אנחנו כבר יודעים למדוד דמיון סמנטי ע”י ייצוג וקטורי של מילים (ראו פוסט קודם) כך שהמקבצים הם מקבצים סמנטיים של ביטויים בעלי משמעות קרובה בקורפוס.

בתצוגה מתחת ניתן לראות תוצאה של חלוקת ביטויים שכיחים בקורפוס החל מינואר 2018 ל-20 מקבצים סמנטיים שזוהו אוטומטית . כל הביטויים באותו המקבץ צבועים באותו הצבע והרדיוס של כל ביטוי מבטא את השכיחות שלו באותו החודש. העברה של העכבר מעל עיגול תציג את שם הביטוי ולחיצה על השם תאתר בגוגל חדשות הקשורות לביטוי זה. לחיצה על כפתור play, תקדם את החודשים ואפשר גם לבחור חודש ספציפי. שוב, כדאי לבחור מקבץ או שניים ע”י לחיצה כפולה על שמם (למשל “חרדים” , “טרור“) ברשימה מתחת לגרף. חשוב לציין שלאחר שהמקבצים נמצאו בצורה אוטומטית אני קבעתי להם שמות אבל יש גם דרכים לתת שמות למקבץ ללא התערבות ידנית. גם פה ניתן לסמן איזור מסויים בגרף בכדי לעשות zoom-in, ולחיצה כפולה על הרקע תבצע zoom-out.

כמובן, המקבצים אינם מושלמים, יש כמה שיכולים היו להתאחד, ואחרים שאינם מספיק אחידים ודורשים פיצול אבל תמיד ניתן לשפר זאת ע”י עבודה אוטומטית מעמיקה ומדוקדקת יותר מזו שהשקעתי לטובת הפוסט. מעבר לכך, בחרתי רק מעט מהביטויים המובילים בכל חודש בגלל מגבלות גודל התצוגה כך שהושמטו לא מעט ביטויים ובהתאמה גם מקבצים (למשל, מאבק הגז)

עוד דרך להציג התפתחות של מקבצים לאורך זמן היא לשכוח לגמרי מהביטויים הבודדים ופשוט לסכום את משקל כל הביטויים שבמקבץ ברמה חודשית. למשל, אפשר לראות בגרף למטה מתאם בין התנהגות המקבצים "טרור", "מד"א" ו-"המצב הבטחוני". שוב, מומלץ לבחור מקבצים ספציפיים כי קשה להבין את כולם יחד. 

לסיכום

קיימות דרכים שונות לראות התפתחות של נושאים לאורך זמן, וניתן להשתמש בהן כדי להבין בצורה אוטומטית מהם האירועים המרכזיים שהתרחשו בקדנציה האחרונה של הכנסת. חלק מסוגי התצוגה מתמקדים ברמת הביטוי הספציפי,  אחרים עובדים רק ברמת המקבץ הסמנטי ויש גם כאלו שמשלבים. בפוסט הזה הצגנו כמה מהאפשרויות (אך בוודאי לא את כולן) בכדי להבין מה היתרונות והחסרונות שבגישות שונות.


הערות והרחבות

  1. בפוסט זה בחרתי להשתמש בחבילת פייטון בשם Plotly ולא ב -matplotlib שהוא יותר סטנדרטי. הסיבה לכך היא ש-Plotly מאפשר תצוגה גרפית דינאמית בתוך אתרים ע"י ממשק JavaScript. מה שאומר שכל גרף שמוצג פה הוא תוצר של מנוע JS קרוב ל-D3 שמעבד פלט שנוצר קודם לכן ב-backend ע"י קוד פייטון. בקיצור כיף חיים ב-fullstack.
  2. הוצאת מילות מפתח (keywords-extraction) וביטויי מפתח היא בעיה קלאסית בעיבוד ספה טבעית וקיימים לה פתרונות מבוססי סטטיסטיקה, סמנטיקה, תחביר ועוד. בפוסט הזה אני מראה שיטה פשוטה לבעיה יותר מורכבת של הוצאת ביטויי מפתח מתפתחים על ציר הזמן
  3. גרף הבועות שאף השראה מהדוגמא הקלאסית של gapminder  אלא שבמקרה שלי מיקמתי באופן קבוע את המרכז של כל עיגול ע"י טרנספורמציית T-SNE על וקטור האמבדינג שלו וגם הוספתי צבעים דינאמיים וקישור לתוצאות חיפוש עדכניות בגוגל.
  4. ענני מילים מוצגים ע"י החבילה wordcloud שדורשת קצת מסאז' עדין לדאטה בכדי שתדע להציג עברית.
  5. לפני wordcloud מומלץ מאוד להעיף stopwords וכו'. אני חישבתי דינאמית מילים נפוצות בקורפוס ויצרתי רשימה שכזו במקום להסתמך על הגדרות דקדוקיות או תחביריות.
  6. wordcloud יודע גם לזהות סטטיסטית רצפי מילים המהווים ביטוי אטומי (co-locations), לפחות עד גודל 2 (bigram). אני בחרתי לחשב רצפי מילים שכאלו עד גודל 3 בתור צעד מקדים ע"י gensim גם בגלל שיש יותר שליטה על הפרמטרים וגם בגלל שהטקסט המעובד נדרש לעוד משימות מעבר לענני מילים.
  7. נרמול לפי סביבה זמנית יכול להתבצע גם ע"י וריאנט של TFIDF אבל אני בחרתי בשיטה אחרת
  8. מחקר של נושאים שונים בקורפוס יכול להתבצע גם תוך שימוש בtopic-modeling ואני מתכוון לפרסם פוסט בנושא
  9. את הקלאסטרים חישבתי ע"י ++k-means של sklearn, לא בגלל שזה בהכרח האלגוריתם הכי מתאים אלא כי הוא מאוד מוכר והיה מספיק בשביל ההדגמה. בהינתן האלגוריתם הנ"ל פתרון יותר מלא דורש חיפוש של מספר הקלאסטרים למשל ע"י שיטת הברך אבל לצורך ההדגמה בפוסט זה קיצרתי תהליכים וקבעתי שרירותית את מספר המקבצים ל-20
  10. שיטה פשוטה למתן שמות למקבצים היא בחירת הביטוי החזק במקבץ, או לחילופין הביטוי הכי קרוב למרכז המקבץ וכו'

תרגיל בדמיון מודרך

ה”פוליטי-מטר” העברי הראשון פותר את תעלומת גנץ; לו היו בחירות ישירות מי היה נבחר לראשות הממשלה; סיוע לקמפיינרים ומצביעים מתלבטים; האם אפשר להחליף סקרים בכלים אוטומטיים לעיבוד שפה טבעית. כל זאת ועוד עם קצת דמיון (מודרך)

אז מה היה לנו שם?

בפוסט הקודם, דיברנו על “קסם” אלגוריתמי שמאפשר ללמוד בצורה אוטומטית מאוסף גדול של טקסטים (“קורפוס”) וללא שימוש במקורות מידע חיצוניים כגון וויקיפדיה ייצוג מספרי לכל מילה. ליתר דיוק ייצוג של כל מילה כוקטור של מספרים המכונה embedding. גם ראינו שהייצוג הנ”ל חושף מידע סמנטי אודות המשמעות של המילה כך שלמשל ניתן לפתור אנלוגיות פוליטיות בסגנון של “נתניהו לקואליציה כמו מי לאופוזיציה?“.

יכול להיות שיש כאלו שיופתעו מהמשפט הבא (אז אולי כדאי לקרוא אותו בישיבה) אבל הייצוג הנ”ל לא ממש נועד לפתור אנלוגיות פוליטיות. למעשה הוא נועד כדי להמיר קלט טקסטואלי לפורמט מספרי שמהווה קלט נוח יותר להרבה אלגוריתמים בעולם של לימוד מכונה (machine learning) באופן כללי, ועיבוד שפה טבעית (natural language processing) באופן ספציפי. אבל כפי שנהוג לומר (וסליחה על הנדושות) “הי, אם כבר למדנו ייצוג כזה אפשר לעשות איתו לא מעט דברים נחמדים“.

עוד תזכורת קטנה וחשובה – במקרה שלנו, את הייצוג למדנו על קורפוס פוליטי אשר מבוסס על טוויטים של ח”כים, מפלגות, עיתונים, ערוצי חדשות, עיתונאים, משרדים ממשלתיים ועוד מקורות. כשנותנים למחשב ללמוד ייצוג על קורפוסים שונים הוא לומד דברים קצת אחרים על העולם. דמיינו מעין רפונזל מודרנית שמסוגרת במגדל ויכולה ללמוד על העולם רק משבועונים שמקבלת משום מה מהאם החורגת שלה. ברור שאם יש לה מנוי לנשיונל ג’יאוגרפיק היא תבין את העולם אחרת מאשר אם היא מנויה רק לישראל היום, למרות שיש לא מעט מילים חופפות בין שני הקורפוסים הללו.

ימין ושמאל רק חול וחול

מקובל להגיד שהחלוקה לימין ושמאל בישראל שונה מזו שבשאר המדינות. מומחים עשויים להזכיר מאפיינים לאומיים, כלכליים, פופוליסטיים, דתיים. אני לא מומחה במדעי המדינה, אבל לשמחתי זה לא בלוג פוליטי במובן הצר של המילה ולכן אין צורך להיכנס להגדרות מדויקות. יותר מזה, לא ממש משנה ההגדרה המדויקת של ימין לעומת שמאל כי בסופו של דבר השאלה היא מהי התפיסה של האדם ברחוב לגבי ההבדל בין ימין לשמאל ובמקרה שלנו איך המושגים האנושיים “ימין” ו-“שמאל” משתקפים בקורפוס.

בהינתן העמימות היחסית של המושגים ימין ושמאל, לא פעם ובפרט לקראת מערכת בחירות, השיח הבין-מפלגתי בישראל הופך למאבק תודעתי. כשנלחמים על מנדטים בתוך אותו הגוש, כל מפלגה מנסה להצטייר טהורה יותר. הימניים יאשימו את מפלגת האחות הימנית בשמאלנות, השמאלנים את אחיהם השמאלניים בימניות ואלו שבמרכז (ככל שיש מרכז) יקראו לכל השאר קיצוניים. לי באופן אישי זה קצת מזכיר את המערכון של מונטי פייטון עם people’s front of Judea. 

כחלק מהעניין, התקשורת מתחבטת שבועות ארוכים איפה בעצם בני גנץ ממוקם במפה הפוליטית, וכשאין תשובות ברורות מתחילים לפשפש בעברו ולחפש התבטאויות מרמזות שלו או של משפחתו וחבריו. אז הנה פיתרון שעוד לא חשבו עליו – “הפוליטי-מטר העברי הראשון” – נשתמש בייצוג הוקטורי שלמדנו מהקורפוס ונמדוד האם המשמעות הסמנטית של “גנץ” כפי שמיוצגת ע”י וקטור קרובה יותר לייצוג הוקטורי של המושג “ימין” או לזה של המושג “שמאל“. למעשה, אנחנו נעשה יותר מזה, כדי להעריך עד כמה השיטה הזאת עובדת אנחנו ניישם אותה על כל ראשי המפלגות המובילות (ומכאן שלוחה התנצלות חמה לאיימן עודה אבל אני מתמקד בטוויטים בעברית ולכן הוא לא נכלל בבדיקה, חוץ מזה, הוא הודיע על פרישה ועוד לא נבחר לו מחליף). 

נטייה פוליטית של מנהיגי המפלגות כפי שנמצאה באופן אוטומטי ע”י דמיון סמנטי יחסי למושגים “ימין” ו-“שמאל”.

בגרף למעלה מוצג הפער היחסי בין הדימיון או הקירבה שבין הייצוג הוקטורי של כל פוליטיקאי למושג “ימין“, לבין אותה קירבה בין הפוליטיקאי למושג ” שמאל“. פער חיובי מבטא קירבה גדולה יותר למושג “ימין” ומסומן בכחול, ופער שלילי מבטא קירבה גדולה יותר לשמאל ומסומן באדום. 

שוב, באופן מאוד מרשים ואולי קצת מפתיע, אפשר לראות בגרף שלפחות בחלוקה הגסה של ימין/שמאל השיטה הנ”ל מצליחה לסווג את הפוליטיקאים המוכרים בצורה נכונה ולכן אפשר להעריך שגם גנץ מסווג נכון והוא שייך לאגף השמאלי של המפה הפוליטית כפי שאכן מאושש ע”י הסקר האמיתי להלן. צריך לציין שגודל המשרעת (אמפליטודה) של כל פוליטיקאי מושפע לא רק מרמת ה-“קיצוניות” שלו אלא גם מטיב הייצוג שלו בטוויטר ולכן למשל סמוטריץ’ שנכנס רק בימים האחרונים להנהגת מפלגת תקומה, נראה פחות ימני מנתניהו, למרות שסביר שהמצב האמיתי הפוך. מעבר לכך, חשוב להדגיש גם שמקורות שונים מייצגים פוליטיקאים באור שונה ולכן הימניות של מיודענו סמוטריץ’ פחות מודגשת כי הוא מכוסה יותר ע”י מקורות חדשות מהמגזר הימני ופחות מהמרכז וביחס למקורות חדשות אלו, סמוטריץ’ לא ימני במיוחד. בהמשך הסידרה מתוכנן פוסט שמשווה בין עיתונים, ערוצי חדשות וכו’ כדי לבחון האם יש משמעות לדיווח אובייקטיבי או שהכל תלוי בנטייה הפוליטית של המוציא לאור.

סקר אמיתי מתאריך 17.1.19 לגבי שיוכו הפוליטי של בני גנץ. רוב הציבור מעריך כי גנץ ממוקם בצד השמאלי של המפה הפוליטית כפי שעולה גם מהניתוח הסמנטי על טוויטר.

מבחן מנהיגות

מעבר לבחינת אחוזי התמיכה המפלגתית, שאלה שמופיעה בחלק מהסקרים במערכת הבחירות היא “מי הכי מתאים בעיניך להנהיג את המדינה / להיות ראש ממשלה?“. אמנם שאלה קצת תיאורטית כי אין כרגע בחירה ישירה לראשות הממשלה וכל מועמד שייבחר בסופו של דבר יגיע עם שלל חבריו הססגוניים מהשורות האחוריות במפלגה, ועדיין שאלה לגיטימית. 

גם על שאלת המנהיג המועדף אפשר לענות ע”י מדידת הקירבה בין הייצוג סמנטי של כל פוליטיקאי לייצוג של המילה “מנהיג” כפי שהם נלמדים מקורפוס הטוויטים. בגרף הבא מוצגים הפוליטיקיאים המובילים ברמת הדמיון לייצוג הסמנטי של המושג “מנהיג“.

פוליטיקאים בעלי דמיון גבוה לייצוג הסמנטי של המילה “מנהיג”

זה הזמן להסתייג ולהגיד שכמו סקרים שנכונים (לכל היותר) רק לרגע שבו נעשו, גם שימוש בדמיון סמנטי בכדי לאבחן מי מזוהה כיותר מתאים להנהגה מוגבל ברמת הדיוק ולו בגלל ההסתמכות על אוכלוסיה לא מייצגת של משתמשים בטוויטר. מעבר לזה, גם בדמיון סמנטי כמו בסקרים לא כדאי להסתמך על הפער המדויק בין המקומות הראשונים אלא יותר על התמונה הגדולה – למשל מי בקבוצת המובילים, האם יש פער בין המקומות הראשונים או שהם צמודים יחסית. במקרה שלנו, נחמד לראות שנכון לשעת ניתוח הקורפוס, התוצאות משקפות מאבק צמוד בין גנץ לנתניהו על הדמות המועדפת להנהגה כפי שגם עולה בסקר להלן.

סקר אמיתי מתאריך 17.1.19 לגבי ראש הממשלה המועדף על הציבור

מת מתל מתלב מתלבט (במי לבחור)

עוד שימוש יפה שאפשר לעשות בדמיון סמנטי הוא למדוד את הקירבה בין המועמדים והמפלגות השונות כפי שעולה מהדמיון בייצוג הוקטורי שלהם. למה זה טוב? נניח שאתם קמפיינרים של מפלגה/מועמד ורוצים לדעת איך להתקדם, שאלה בסיסית היא מי המתחרים שצריך לבדל את עצמך מהם ע”י הדגשת תכונות/מצע כאלו ואחרים. באותה מידה, אם אתם שוקלים להצביע למועמד מסוים, מציאת מועמדים שדומים לו תחדד אצלכם את הפרמטרים על פיהם אתם מצביעים ותעזור לכם להצביע נכון יותר.

“מפת חום” אשר מתארת דמיון בין פוליטיקאים. ככל שהפוליטיקאים בטור ושורה מסוימים קרובים יותר זה לזה, צבע המשבצת בה הטור והשורה מצטלבים יתקרב לאדום. לעומת זאת כחול מבטא מרחק גדול בין הפוליטיקאים.

במפת החום (heat map) שלעיל, הקירבה בין הפוליטיקאים שבכל שורה ועמודה מתבטאת בצבע של המשבצת בה העמודה והשורה מצטלבות – צבע כחול כהה מבטא חוסר דמיון מובהק וככל שהדמיון גדל והפוליטיקאים קרובים יותר, צבע המשבצת “יתחמם” עד שיגיע לאדום. האלכסון הראשי ממנו אפשר להתעלם הוא כמובן אדום כיוון שמתאר קירבה מושלמת בין כל פוליטיקאי לעצמו. אפשר לראות למשל שהפוליטיקאי המאוים ביותר ע”י כניסתו של גנץ הוא יאיר לפיד. באופן דומה אפשר לראות שליצמן ודרעי מאוד קרובים, דבר שמסביר את המגעים לאיחוד אפשרי בין יהדות התורה וש”ס.

האם כלים מעין אלו של מדע נתונים יכולים להחליף סקרים?

לא.

ובכל זאת?

כן, לפחות בצורה חלקית כפי שראינו. מה שבטוח הוא שניתוח אוטומטי פאסיבי שכזה (ללא פנייה ישירה למשתמשים) ניתן לעשות בכל רגע נתון בעלות אפסית ובניגוד לסקר בניתוח שכזה ניתן “לשאול” כמה שאלות שרוצים. אבל מצד שני יש גם פערים שדורשים התייחסות – למשל, נדרש כיסוי טוב ומדוייק יותר של משתמשים בטוויטר, פילוח דמוגרפי וגיאוגרפי, זיהוי סנטימנט, איתור של משתמשים מזויפים (“בוטים”), התייחסות לאמינות ואובייקטיביות של הצייצן, מידת השפעה של הצייצן על משתמשים אחרים ועוד. בפוסטים הבאים בסדרה אתאר כיצד ניתן להתמודד עם פערים אלו.

 

הערות והרחבות

  1. שוב אני עושה שימוש בחבילת הפייטון gensim לטובת עבודה עם ייצוגים וקטוריים.
  2. כדי לשמור על מדידה אחידה ככל האפשר הייצוג הוקטורי של כל פוליטיקאי הוא מעין ממוצע ממושקל על ייצוגים שונים אפשריים שלו הכוללים את שם חשבון הטוויטר שלו והטיות שונות על שם המשפחה של אותו הפוליטיקאי. למשל, במקרה של נפתלי בנט יש פה ממוצע בין הייצוגים של “naftalibennett@”, “בנט”, “ובנט”, “שבנט”, וכו’. המשקל היחסי של כל ייצוג נגזר מהשכיחות היחסית של הביטוי בקורפוס לעומת ביטויים אחרים. למשל, “בנט” יותר שכיח בקורפוס מ-“שבנט” ולכן משקל הוקטור של “בנט” בממוצע המשוקלל יהיה גבוה יותר מהמשקל של הוקטור המתאים ל-“שבנט”. טכנית הממוצע הנ”ל מחושב ע”י numpy.average
  3. הגרפים נוצרו ע”י חבילת פייטון מומלצת בשם matplotlib. ישנן עוד חבילות מומלצות כגון plotly שיכולות גם להציג גרפיקה דינמית כפי שנדגים בפוסט הבא.
  4. בכדי לייצר מטריצת דמיון כמו זו של ה-heatmap ניתן להשתמש עקרונית ב-similarity_matrix של gensim. בפועל לא השתמשתי בה כיוון שרציתי למצוא דמיון בין וקטורים ממושקלים כפי שתואר לעיל ולכן חישבתי ישירות את המטריצה

 

מה מחשבים מבינים ואנלוגיות פוליטיות

אנלוגיות פוליטיות

האם מחשב יכול לזהות בעצמו מי ראש האופוזיציה?איך השוויון בין המינים בא לידי ביטוי במפלגות השונות? מה שלום השד העדתי נכון לתחילת 2019? איך החלפת היו”ר במחנה הציוני (ז”ל) באה לידי ביטוי? מי מזוהה יותר עם המשרד שלו – ליברמן (לשעבר) או כחלון?

פרולוג – מה בעצם מחשבים מבינים?

(הקדמה קצרה לגבי מה מחשבים “מבינים”. מי שכבר ממש בוער לו לראות דברים מגניבים ופחות מלל מוזמן לדלג לפסקאות הבאות ואז לחזור כדי להבין טוב יותר מה בעצם קורה פה …)

מחשבים לא מגיעים מהמפעל כשהם יודעים “להבין” טקסט שמוצג להם. כלומר, הם יודעים לזהות את האותיות והסימנים השונים אבל אפילו משימה פשוטה כמו חלוקה של טקסט למשפטים ומילים דורשת “ללמד את המחשב” איזו שיטה אוטומטית לעיבוד של הטקסט בין אם מדובר במספר כללים היוריסטיים או אלגוריתם סטטיסטי מורכב. אז בעצם, אם אפילו חלוקה למילים דורשת איזה אלגוריתם, שלא לדבר על זיהוי הדקדוק והתחביר של המשפט, איך אפשר לצפות ממחשב להבין את המשמעות הסמנטית של טקסט ומה אנחנו עושים פה?

הנה מספר תשובות שיצדיקו את קיום הבלוג וכמות לא מבוטלת של משרות:

  1. לא תמיד המחשב חייב להבין עד הסוף. מספיק שיספק תוצרי ביניים שקל לאדם לצרוך. למשל, מנוע חיפוש לא פותר לאנשים שאלות הבנה אלא רק חוסך להם את החיפוש בכמות עצומה של מקורות מידע, ומשאיר להם את השלב האחרון של בחינת כל מקור ידע לעומק.
  2. עיבוד שפה טבעית (natural language processing) הוא תחום שעוסקים בו שנים רבות באקדמיה ובתעשיה. בשנים האחרונות היו לא מעט פריצות דרך בעיבוד שפה ובתחומים קשורים כגון לימוד מכונה (machine learning) ואינטיליגנציה מלאכותית (artificial intelligence) וכיום השיטות והכלים חזקים הרבה יותר מבעבר. בנוסף, השילוב בין כמויות אדירות של נתונים אשר זמינים למשתמשים בודדים וארגונים, לבין חבילות תוכנה פתוחות ללימוד מכונה מאיץ את תהליך השיפור בתחומי המחקר הנ”ל.
  3. השיטות שמוצגות בבלוג הזה יתמקדו בדרך כלל פחות בהבנה ממוקדת של טקסטים בודדים ויותר בהבנה כללית של אוסף טקסטים גדול המכונה “קורפוס”. דמיינו שאתם עומדים במוזיאון ממש קרוב לציור גדול וממשיכים להתבונן בו תוך שאתם מתרחקים לאט לאט וכך בהדרגה במקום להתמקד במשיחות מכחול בודדות אתם עוברים להסתכל על היצירה כולה. אז יכול להיות שיש לא מעט נקודות שמקרוב לא ברור למתבונן אם הן אדומות או כתומות אבל כשמתרחקים קל לראות שהציור כולו נוטה לצבעים חמים.

על הסמנטיקה העדינה של הסמנטיקה

מה זו סמנטיקה? תלוי את מי שואלים.  באופן כללי סמנטיקה היא תחום שעוסק בחקר והבנת המשמעות של טקסטטים (אבל לא רק). קיימות כמובן דרכים שונות להבין ולייצג את המשמעות של טקסט. למשל, אפשר לקבל את המשמעות של כל מילה מסוג של מילון, ולחבר איכשהו למשמעות המשפט תוך הסתמכות על הקשר בין המילים המכונה “תחביר” (syntax). אפשר אולי גם להצליב עם מקורות ידע חיצוניים כגון וויקיפדיה כדי שכשמזכירים את בריאותה הרופפת של מלכת אנגליה והאפשרות שצ’ארלס יירש אותה, המחשב יבין שמלכת אנגליה היא אליזבת וצ’ארלס הוא בנה.

בניגוד לגישה שצוינה לעיל, שיטות מודרניות רבות להבנת סמנטיקה לא עושות שימוש במילונים, אנציקלופדיות וניתוח תחבירי אלא לומדות ייצוג של מילים וביטויים כוקטור של מספרים אשר מכונה embedding. אותו הייצוג הוקטורי משמש גם כאבן בניין לפתרון של עוד הרבה בעיות אחרות בעיבוד שפה טבעית אבל זה כבר נושא לפוסט אחר.

אמור לי מי שכניך ואומר לך מי אתה

במקרה שלנו, “וקטור של מספרים” הוא פשוט סדרת מספרים באורך קבוע. לדוגמא, מספר טלפון סלולרי בישראל הוא וקטור של 10 מספרים שלמים בין 0 ל-9 (עם כמה מגבלות על מבנה הוקטור למשל הוא חייב להתחיל ב-0). בהקשר של סמנטיקה, זו עדיין סדרת מספרים באורך קבוע אבל הוקטור ארוך יותר מ-10 ומכיל מספרים בעלי נקודה עשרונית (float).

רוב השיטות ללימוד הייצוג של מילים וביטויים כוקטור מספרים מקורפוס טקסטים, עובדות באופן הבא:

המחשב נותן ייצוג וקטורי התחלתי לכל מילה (למשל רצף אקראי של 100 מספרים בין 0.0 ל-1.0), ואז הוא עובר על המון טקסטים (“קורפוס”) כמה וכמה פעמים, ובכל פעם שרואה מילה הוא משנה קצת את הייצוג שלה כך שיתאים יותר לייצוגים של המילים השכנות לה.

בסוף התהליך הזה אנחנו מקבלים ייצוג וקטורי לכל מילה שנתקלנו בה בקורפוס, וייצוג זה מבטא באופן שיוסבר בהמשך את המשמעות שלה כפי שבאה לידי ביטוי בקורפוס. זו נקודה חשובה ששווה להתעכב עליה. הייצוג הוקטורי של מילה יהיה שונה אם המחשב יתאמן על קורפוסים שונים, כך למשל אם הקורפוס שלנו מורכב מספרי ילדים אז הייצוג של המילה “חתול” יהיה קרוב במובן מסוים לייצוג של המילה “כלב”, כי מדובר בשתי חיות בית נפוצות ולכן יכתבו עליהן פעמים רבות באופן דומה. אבל אם נשתמש בקורפוס של ספרי זואולוגיה, אז “חתול” עשוי להיות יותר דומה ל-“נמר” מאשר ל-“כלב” כי בהקשרים שמופיעים בקורפוס זה חתול ונמר הם בעלי קרבה זואולוגית גדולה יותר ולכן ינטו להופיע עם מילים שכנות דומות יותר.

אחד מהתוצרים המעניינים של שיטות ייצוג וקטוריות כנ”ל, הוא שהמשמעות במובנה הוקטורי משמרת יחסים בין מילים (ראו הרחבה בסוף). למשל, Mikolov אחד החוקרים המפורסמים בתחום, הראה ב-2013 שבעזרת ייצוג כזה שנלמד על קורפוס גדול וללא מאגרי מידע חיצוניים ניתן לפתור אנלוגיות שברורות לנו כבני אדם בסגנון של:

  • “מלך ל-מלכה זה כמו גבר ל_____?” (תשובה: אישה)
  • “איטליה ל-רומא זה כמו צרפת ל____?” (תשובה: פריז)
  • “שוחה ל-שחה זה כמו אוכל ל____?” (תשובה: אכל)

 

אם ניקח בחשבון שהאנלוגיות הללו נלמדות ע”י המחשב ללא הסבר ספציפי של מה זו מדינה ומהי עיר בירה, וללא מקורות מידע כגון וויקיפדיה אלא תוך הסתמכות על טקסטים פשוטים כגון חדשות זה לא פחות ממדהים !!! 

אנלוגיות פוליטיות

אז בנינו קורפוס שכולל את כל הטוויטים הפומביים בעברית שפורסמו בשנים האחרונות ע”י

  • ערוצי חדשות מובילים (עיתונים, אתרים, רדיו, טלוויזיה)
  • חברי כנסת בכנסת הנוכחית
  • מועמדים חדשים לכנסת הבאה (בהינתן הרשימות נכון לשעה זו)
  • מפלגות בכנסת הנוכחית
  • מפלגות חדשות שמתמודדות לכנסת הבאה (בהינתן הרשימות נכון לשעה זו)

למעשה בנינו 2 קורפוסים. הראשון עם ציוצים מ3-4 שנים אחורה והשני עם ציוצים מ-2018 בלבד. למדנו ייצוג וקטורי על כל קורפוס כנ”ל ואז התחלנו לבחון את התוצאות לפתרון אנלוגיות שונות.

זה הזמן שוב להסתייגות – מה שמוצג כאן משקף רק את הטקסטים שאספנו ללא הטיה, וללא התחשבות במקורות חיצוניים כגון מצע של מפלגה או פרוטוקולים מהכנסת וכו’. יכול להיות למשל שפוליטיקאי מסוים רואה עצמו כמוביל נושא מסוים אבל במאגר הטקסטים הוא לא מתואר ככזה.

איך מודדים חוזק של אנלוגיה?

נניח שהייתם מתבקשים לפתור את האנלוגיה הבאה : “חמוץ ללימון כמו מתוק ל_?”

בעלי דעה מוצקה בנושא היו עונים תשובה החלטית כגון “שוקולד” (מתנצל בפני חסידי הוניל) , אבל לא מעט אנשים היו מתלבטים ועונים שזה יכול להיות שוקולד אבל גם אולי וניל או דבש.

כדי לחדד את תשובת המתלבטים נבקש מהם למשקל את רמת הביטחון בכל אפשרות ואז תשובה אפשרית של אדם מתלבט היתה יכולה להיות 50% שוקולד, 45% וניל ושאר ה-5% דבש. תשובה כזאת אומרת שאצל אותו אדם באופן אישי האנלוגיה לא עם פתרון חד משמעי כי הוא מאוד מתלבט בין שוקולד (50) לדבש (45) ויש פער קטן של 5% ביניהם. לעומת זאת אם המתלבט היה אומר 50% שוקולד, 30% וניל, ו-20% דבש היינו אומרים שלמרות ההתלבטות העקרונית יש נטייה ברורה לשוקולד.

גם אצלנו בניתוח של טוויטר אנחנו נפעיל את אותו העיקרון של מדידת הפער בין האפשרות המובילה לאפשרות במקום השני בכדי להעריך חוזק האנלוגיה, ופער של 20% למשל בין המקום הראשון לשני אומר שהתשובה לאנלוגיה הרבה יותר חד-משמעית מאשר פער של 2%. אלא שבמקום להסתמך על הדעה האישית של אנשים  בודדים אנחנו נותנים למחשב לפתור את האנלוגיה ע”פ המשמעות שלמד מהציוצים הפומביים של הרבה אנשים בעלי דעות שונות ומגוונות ולכן סדר הגודל של הפער בין המקום הראשון לשני יהיה מצומצם יותר.

אנחנו גם ננצל את השוני בין 2 הקורפוסים שיצרנו (הראשון של 3-4 שנים אחורה, והשני החל מ-2018) בכדי להבין באילו מקרים אנלוגיות השתנו לאורך הזמן (ראו למשל את מקרה ציפי לבני להלן).

גברים ונשים

פער ב-2018

פער ממקום 2

ל___?

כמו

ל

מי/מה

19%11%שקדאישהבנטגבר
17%ציפיאישהגבאיגבר
אישה / לפיד

כחלון

גבר
20%בוז’יגברלבניאישה

נקודות מעניינות:

  1. שקד נמצאת באופן עקבי כאנלוגיה הנשית של בנט, כפי שאכן מסתמן שקורה במציאות עם ההובלה המשותפת של “הימין החדש”.
  2. כשמתמקדים בציוצים מ-2018 אך לא לפני, ליבני נמצאת מקבילה לגבאי. כשמוסיפים גם ציוצים של מספר שנים אחורה היא מקבילה לבוז’י אך לא ב-2018. כמובן זה מוסבר ע”י החלפתו של בוז’י בגבאי כמועמד המחנצ לראשות הממשלה.
  3. ללפיד וכחלון אין מקבילה נשית כלל. גם זה הגיוני.

סטראוטיפים

פער ב-2018

פער ממקום 2

ל___?

כמו

ל

מי/מה

26%16%רוסיליברמןכיפה בנט
-7% (אלאלוף)3%מרגימזרחיגפניאשכנזי

נקודות מעניינות:

  1. נראה שבנט וליברמן מתוארים בטוויטר באופן דומה עד כדי מאפייני הדת והמוצא. חשוב לציין שליברמן כבר שנים רבות בארץ והוא בכלל עלה ממולדובה ועדיין הסטראוטיפ חי ונושם. נראה גם שהבידול הזה מתחזק ככל שמתקדמים לעבר הבחירות ומתמקדים בציוצים של 2018.
  2. השיוך העדתי של אשכנזי/מזרחי עדיין איתנו, אבל בניגוד לזוג בנט-ליברמן אין פה זוג אנשים שמהווים ארכיטיפ אשכנזי-מזרחי ויש תחלופה בין מרגי לאלאלוף.

נושאים וחוקים מקודמים

פער ב-2018

פער ממקום 2

ל___?

כמו

ל

מי/מה

18%16%רגבנאמנותשקדהתגברות

נקודות מעניינות:

  1. ספינת הדגל או אחת מהספינות בארמדה של איילת שקד היא פסקת ההתגברות והיא נמצאה אנלוגית לחוק הנאמנות של רגב.

תפקידים פוליטיים

פער ב-2018

פער ממקום 2

ל___?

כמו

ל

מי/מה

20%
3%לפידאופוזיציהביביקואליציה
1%דרעיש”סביביליכוד
2%מרצשמאלליכודימין
20%8%ליברמןביטחוןבנטחינוך
3%2%כחלוןאוצרליצמןבריאות

נקודות מעניינות:

  1. בשורות רעות למחנ”צ. מעמדו של לפיד כמנהיג האופוזיציה הולך ומתחזק ככל שמתקדמים לעבר 2018. בנוסף מרצ ולא מחנ”צ הם המפלגה המייצגת את השמאל.
  2. מנהיגותו של ביבי הרבה יותר דומיננטית מאשר זו של דרעי.
  3. הקשר בין ליברמן לתיק הביטחון בולט הרבה יותר מהקשר בין כחלון לתיק האוצר.

סיכום

אז מה בעצם ראינו בפוסט הזה?

  1. אפשר ללמוד ייצוג סמנטי של מילים וביטויים על גבי קורפוס טקסטואלי. ספציפית, הדגמנו את השיטה הנ”ל על קורפוס טקסטואלי של ציוצים בעברית.
  2. ייצוג סמנטי מאפשר לנו ללמוד אנלוגיות. בקורפוס הטוויטרי שלנו ראינו שניתן למצוא בצורה אוטומטית משמעויות פוליטיות שאנחנו כבני אדם יכולים להבין ולאשר את נכונותן.

הערות והרחבות

  1. שיטת ה-embedding הספציפית בה נעשה שימוש בפוסט נקרא word2vec. מוזמנים לקרוא עליה עוד פה. עוד שיטות פופולאריות הן Glove, fasttext.
  2. חבילת הפייטון בה עשיתי שימוש לטובת ייצוגים וקטוריים היא Gensim.
  3. נניח שאנו רוצים לפתור את האנלוגיה “a ל-b כמו מה ל-c?” אזי בהינתן הייצוג הוקטורי של המילים a,b,c שיסומן כ-Va, Vb, Vc, נמצא את המילה w שמרחקה הוא המינימלי מהסכום Va+Vc-Vbמבין כל המילים עבורן למדנו יצוג. המרחק יכול להיות מחושב למשל ע”י cosine אבל יש גם דרכים נוספות.

אז למה לי פוליטיקה עכשיו?

בגדול משינה כבר סיכמה את היחס בישראל לפוליטיקה – נהוג לקטר כשמתחילה תקופת בחירות.
לא רק שצריך לחשוב מי הכי מתאים להנהיג את המדינה או את מי נבחר להאשים במצב בשנים הקרובות, עם ריבוי המפלגות הדומות ואפרוריות המועמדים זה הופך להיות 50 גוונים של אפור רק עם ביקורות יותר גרועות. מילא זה, ברגע שאתה כבר מחליט מה המפלגה הכי מתאימה אתה מגלה שהחבר’ה בעבודה שהחשבת עד היום כנורמטיביים הם בעצם חסרי הבנה של מה יעשה טוב למדינה ובגדול טיפוסים הזויים ימניים/שמאלניים/דתיים/חילונים/נהגי-מוניות מדי. וגם יש את עניין העלות למשק של יום שבתון. בקיצור, לא קל…

אבל, מצד שני בחירות זו הזדמנות מצוינת לכל מי שמתעניין בחיים האמיתיים או בנתונים, ולא תמיד יש סתירה ביניהם. הפוליטיקאים מתראיינים בלי הפסקה, הסוקרים סוקרים, העיתונאים מתפייטים ונותנים הערכות, נתונים מספריים על בוחרים מתפרסמים. והכל מתועד או כמו שאומר הגשש “היד פתוח והפנקס רושמת

אז לאור צו השעה של בחירות 2019 נתחיל בסידרה של פוסטים שיתארו את הפוליטיקה העכשווית כפי שהיא משתקפת בנתונים פומביים בעיקר מטוויטר וגם מקורות נוספים כמו סקרים ועוד.

למה טוויטר ?

 כי בטוויטר יש עושר של מקורות טקסטואלים  – עיתונים, ערוצי רדיו וטלוויזיה, משרדי ממשלה, ארגונים לא ממשלתיים, חשבונות פרטיים של עיתונאים,  פוליטיקאים, מפלגות, והמון אנשים פרטיים שמשקפים ברמה כזו או אחרת את הדעה של הציבור.
ברמה הטכנית, השפה שבה אנשים כותבים בטוויטר שונה מזו שמשתמשים בה בעיתונים או אפילו בחיי היום יום. כל ציוץ (tweet) הוא טקסט מוגבל באורכו ל-280 תווים,  והדקדוק והתחביר של טקסט זה לא בהכרח תיקניים, מה שמקשה לא מעט על ניתוח אוטומטי ע”י מודלים סטנדרטיים לעיבוד שפה. אבל, מצד שני, החדשות הטובות הן שטוויטר חושף ממשק שדרכו מתכנתים יכולים להוריד כמויות גדולות של מידע פומבי בצורה קלה יחסית, כך שעל אף הקשיים שווה להתאמץ.

מה למשל אפשר לעשות עם המידע שמפורסם בטוויטר ?

  • למצוא פוליטיקאים דומים שהופרדו משום מה למפלגות שונות
  • לגלות קשרים נסתרים בין ערוצי תקשורת ועיתונאים למפלגות או מתמודדים
  • לסמן את תחומי הפעילות של כל פוליטיקאי
  • למדוד את שביעות הרצון של הציבור מפוליטיקאים בתחומי פעילות שונים ואיזורים גיאוגרפים שונים
  • להתאכזב ממי שהופך להיות חברתי/בטחוני/משהו-שחשוב-לך לכבוד הקמפיין ואז נעלם מהראדאר עד הבחירות הבאות.

 

מה יהיה ומה לא יהיה בבלוג הזה?

  • נציג רק דברים שעולים אובייקטיבית מהנתונים.
  • נימנע מהטיה פוליטית כגון המלצה או ביקורת על מפלגה, מועמד, וכו’.
  • לא נבצע באופן אקטיבי סקרים, אך כן נעשה שימוש בסקרים שפורסמו פומבית.

 

טוב, מספיק הקדמות… בפוסט הבא כבר נתחיל לראות דברים מעניינים


הערות והרחבות

  1. מתעניינים במדע נתונים ושואלים איזו שפת תכנות הכי מתאימה לכם? ברוב הסקרים Python מובילה בפופולאריות בקרב מדעני נתונים. למשל פה.
  2. רוצים ללמוד עוד על Twitter Developer API? לכו לפה. אני משתמש בחבילת Python בשם Tweepy לצורך הממשק עם טוויטר.

מדע הנתונים בחיי היום-יום

איפה הימים שהיה אפשר להבדיל בקלות בין חנון להיפסטר

מדע נתונים (“data-science”) הוא תחום מחקר שמשלב בין סטטיסטיקה, לימוד מכונה (“machine learning”), כריית נתונים, תכנות ועוד מילים קצת מפחידות.

בטח אתם שואלים את עצמכם – “חוץ מכרטיס הנחה למחלקת משקפיים עבות באופטיקנה, ופופולריות מטורפת בטינדר, מה בעצם מדע נתונים נותן לי?” או במילים אחרות, למי רלוונטי מדע נתונים באופן כללי והבלוג הזה ספציפית?

אז בגדול מדע נתונים רלוונטי ל-2 סוגים של אנשים:

    1. מדעני נתונים
    2. כל מי שהוא לא מדען נתונים

מכיוון ש-1 די מסביר את עצמו אז נדלג ישר ל-2. 

בשנים האחרונות, החיים שלנו הפכו דיגיטליים. כמעט כל פעולה שאנחנו מבצעים נרשמת ומתועדת – קניות, ספורט, שיחות עם חברים, קריאת חדשות, ועוד. אז אולי לא התייעצו איתנו כשביטלו את כל עניין הפרטיות אבל לפחות אם הנתונים כבר שם בואו נשתמש בהם לטובתנו. 

השאלה היא דרך איזה משקפיים אנו בוחנים את הנתונים ועוד יותר מכך באיזו תצורה מציגים אותם. אפשר כמובן לבחור להציג גרף מורכב מלווה בכל מיני מונחים סטטיסטיים מאיימים ולחילופין אפשר להציג גם פורמט ידידותי יותר לקורא. בבלוג הזה לא נתמקד בבעיות אקדמיות או תיאורטיות שרלוונטיות רק לחיים המקצועיים של מדעני נתונים, מרתקים ככל שיהיו,  אלא בסיטואציות שנוגעות לכל אדם בחיי היום יום. לטובת הקריאה השוטפת – בעיות, שיטות, ופתרונות לא יוצגו בשפה אקדמית אלא בסגנון של “מדע-פופולארי” ובסוף כל פוסט יצורפו פרטים נוספים לסקרנים ויודעי ח”ן .

אז יאללה מתחילים…