מדריך TF-IDF: איך בוטים מבינים רלוונטיות של מילים

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

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

אחת התשובות האלגנטיות והמשפיעות ביותר לשאלה זו היא אלגוריתם TF-IDF.

מה זה TF-IDF?

TF-IDF, ראשי תיבות של Term Frequency-Inverse Document Frequency, הוא מדד סטטיסטי המשמש להערכת חשיבותה של מילה מסוימת (Term) בתוך מסמך ספציפי (Document) ביחס לאוסף שלם של מסמכים (Corpus).

למרות שפותחו מאז טכניקות מורכבות יותר בתחום עיבוד השפה הטבעית (NLP), TF-IDF נותר רלוונטי, משפיע ובעיקר – כלי לימודי חיוני להבנת היסודות של אחזור מידע וניתוח טקסט.

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

מה זה TF-IDF

1. האינטואיציה – מה הופך מילה לחשובה?

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

באופן אינטואיטיבי, אתם תחפשו ספרים שבהם המילה "קוונטים" מופיעה בתדירות גבוהה. אם מצאתם ספר שבו המילה "קוונטים" מופיעה 50 פעמים, לעומת ספר אחר שבו היא מופיעה רק פעם אחת, סביר להניח שהספר הראשון רלוונטי יותר. זהו העיקרון של Term Frequency (TF).

אבל זה לא כל הסיפור. מה לגבי מילים כמו "ה", "ו", "ספר" או "פרק"? מילים אלו יופיעו בתדירות גבוהה מאוד כמעט בכל ספר בספרייה.

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

כאן נכנס לתמונה החלק השני של המשוואה: Inverse Document Frequency (IDF). עיקרון זה קובע שמילה היא בעלת חשיבות גבוהה יותר ככל שהיא נדירה יותר בכלל האוסף (הספרייה). המילה "קוונטים" תופיע במספר מצומצם יחסית של ספרים, ולכן היא מקבלת "ציון נדירות" גבוה. לעומת זאת, המילה "ה" תופיע כמעט בכל ספר, ולכן תקבל ציון נדירות נמוך מאוד, כמעט אפסי.

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

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

אשמח לבדוק את האתר שלך בחינם!

על מנת לראות את הפוטנציאל האורגני ותוך כמה זמן נכפיל לך את ההכנסות

ניתן לחייג למספר 052-9095200 או למלא את הטופס:

על הנושא של צפיפות מילות מפתח (שרלוונטי לענייננו במידה מסוימת) אני מדבר בסרטון הבא:

2. הפירוק המתמטי של TF-IDF

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

הציון הסופי מורכב משני חלקים שאנו מכפילים זה בזה: ציון ה-TF וציון ה-IDF.

שלב א': חישוב תדירות המילה (Term Frequency – TF)

המטרה של TF היא למדוד באיזו תדירות מילה מסוימת (t) מופיעה בתוך מסמך נתון (d). ישנן מספר דרכים לחשב זאת, מהפשוטה למורכבת:

  1. ספירה גולמית (Raw Count): הדרך הפשוטה ביותר היא פשוט לספור כמה פעמים המילה מופיעה במסמך. TF(t, d) = מספר הפעמים שהמילה t מופיעה במסמך d.
  2. נרמול לפי אורך המסמך (Term Frequency Adjustment): ספירה גולמית עלולה להטעות. מילה יכולה להופיע 10 פעמים במסמך קצר של 100 מילים ו-15 פעמים במסמך ארוך של 3000 מילים. ברור שהחשיבות היחסית שלה גבוהה יותר במסמך הקצר. כדי לנטרל את ההשפעה של אורך המסמך, מנרמלים את הספירה הגולמית בסך המילים הכולל במסמך.
  3. נרמול לוגריתמי (Logarithmic Scaling): לעיתים, עלייה מ-10 הופעות ל-20 הופעות אינה מכפילה את חשיבות המילה. כדי למתן את ההשפעה של תדירויות גבוהות מאוד (למנוע ממילה אחת "להשתלט" על המסמך), משתמשים בסולם לוגריתמי.

הגרסה הנפוצה ביותר ברוב היישומים היא הנרמול לפי אורך המסמך.

שלב ב': חישוב תדירות מסמכים הופכית (Inverse Document Frequency – IDF)

מטרת ה-IDF היא לתת משקל גבוה למילים נדירות ומשקל נמוך למילים נפוצות. החישוב מתבצע על כל הקורפוס (D).

איך מודדים את הייחודיות של מילה (העיקרון הבסיסי)?

דמיינו שיש לכם אוסף גדול של מסמכים (למשל, כל הכתבות באתר חדשות). אתם רוצים לדעת עד כמה מילה מסוימת היא "מיוחדת" או נדירה.

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

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

איך מתמודדים עם מקרים חריגים?

לשיטה הפשוטה יש שתי בעיות קטנות:

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

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

שלב ג': חישוב ציון ה-TF-IDF הסופי

השלב האחרון הוא הפשוט ביותר: מכפילים את שני הציונים שחישבנו. הציון מחושב עבור כל מילה (t) בכל מסמך (d) בתוך הקורפוס (D). TF-IDF(t,d,D)=TF(t,d)×IDF(t,D) התוצאה היא מספר שמייצג את החשיבות היחסית של המילה t במסמך d. ככל שהמספר גבוה יותר, כך המילה מאפיינת טוב יותר את המסמך הספציפי הזה וייחודית לו ביחס לשאר המסמכים.

אז איך זה עובד בפועל? בואו נראה דוגמה פשוטה

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

המשפטים שלנו:

  • משפט 1: "השוק הפיננסי מגיב לריבית"
  • משפט 2: "הריבית משפיעה על שוק ההון"
  • משפט 3: "שוק ההון הוא שוק תנודתי"

שלב ראשון: מנקים את הרעש

קודם כל, אנחנו מורידים את כל "מילות המילוי" שלא תורמות הרבה למשמעות, כמו "ה", "ל", "על", "הוא". זה כמו לנקות אבק כדי לראות מה באמת חשוב.

המשפטים אחרי ניקיון:

  • משפט 1: "שוק", "פיננסי", "מגיב", "ריבית"
  • משפט 2: "ריבית", "משפיעה", "שוק", "הון"
  • משפט 3: "שוק", "הון", "שוק", "תנודתי"

שלב שני: מה חשוב בתוך כל משפט? (החלק של ה-TF)

בשלב זה, אנחנו מסתכלים על כל משפט בנפרד. המילה "שוק", למשל, מופיעה פעמיים במשפט 3, מה שהופך אותה למילה דומיננטית בתוך המשפט הזה.

שלב שלישי: מה מיוחד בכל האוסף? (החלק של ה-IDF)

כאן קורה הקסם. אנחנו מסתכלים על כל שלושת המשפטים יחד ושואלים: "אילו מילים הן 'מומחיות' ואילו הן 'כלליות'?"

  • המילה "שוק": היא מופיעה בכל שלושת המשפטים. בגלל שהיא כל כך כללית, היא לא באמת עוזרת לנו להבדיל ביניהם. לכן, המחשב נותן לה ציון ייחודיות של 0. היא מילת רקע.
  • המילים "ריבית" ו"הון": כל אחת מהן מופיעה בשניים מהמשפטים. הן די מיוחדות, אבל לא לגמרי. לכן, הן מקבלות ציון ייחודיות נחמד וחיובי.
  • המילה "פיננסי": בינגו! המילה הזו היא "מומחית" שמופיעה רק במשפט 1. זה הופך אותה לרמז החזק ביותר לגבי מה שמייחד את משפט 1. לכן, היא מקבלת את ציון הייחודיות הגבוה ביותר.

שלב רביעי: משלבים הכל לציון סופי (TF-IDF)

עכשיו, המחשב פשוט מכפיל את החשיבות של מילה בתוך המשפט שלה (שלב 2) בציון הייחודיות הכללי שלה (שלב 3).

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

  • הזרקור על המילה "שוק" כבוי לחלוטין. למרות שהיא מופיעה הרבה, היא כללית מדי וקיבלה ציון ייחודיות 0.
  • הזרקור על המילים "ריבית" ו**"הון"** דולק בעוצמה בינונית.
  • הזרקור על המילה "פיננסי" במשפט הראשון דולק בעוצמה הכי חזקה. הוא אומר לנו: "זו המילה הכי חשובה ומיוחדת במשפט הזה!".

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

איפה משתמשים בשיטה הזו בעולם האמיתי?

זה לא סתם תרגיל תיאורטי. השיטה הזו שימושית מאוד:

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

המגבלות של השיטה ומה בא אחריה

השיטה הזו חכמה, אבל לא גאונית. יש לה כמה חסרונות:

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

בגלל המגבלות האלה, התחום המשיך להתפתח:

  • השלב הבא (Word2Vec): פותחו שיטות שכן מבינות את הקשר בין מילים. הן למדו ש"מלך" ו"מלכה" הם "שכנים" מבחינת משמעות, וגם "ללכת" ו"לרוץ".
  • המהפכה האמיתית (BERT ו-AI מודרני): זו הטכנולוגיה שמאחורי כלים כמו ChatGPT. מערכות אלו מבינות הקשר. הן יודעות שהמילה "גדה" מתכוונת למשהו אחד כשמדברים על נהר, ולמשהו אחר לגמרי כשמדברים על בנק. הן קוראות ומבינות שפה כמו בן אדם.

ומה המסקנה מכל זה?

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

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

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

למדריכים נוספים:

יש מצב שגם אלו יעניינו אותך...
Call Now Button חייגו עכשיו