זיהוי ישויות (Named Entity Recognition)

מודלים ושפה

הגדרה

זיהוי ישויות (NER) היא משימת-NLP קלאסית שמזהה ומתייגת אוטומטית שמות של אנשים, ארגונים, מקומות ותאריכים בתוך טקסט חופשי — משימת-יסוד שקדמה למודלי-השפה הגדולים בעשרות שנים.

מה זו משימת זיהוי-ישויות

זיהוי ישויות (Named Entity Recognition, NER) היא המשימה למצוא אוטומטית, בתוך טקסט חופשי, רצפי-מילים שמציינים ישות ממשית ספציפית, ולתייג לאיזה סוג ישות כל אחד שייך — הנפוצים ביותר הם אדם (PERSON), ארגון (ORGANIZATION) ומקום (LOCATION), ולעיתים קרובות גם תאריכים, שעות וסכומי-כסף. קוראים אנושיים עושים את זה מיידית ובלי מודעות; NER הוא הניסיון לבצע את אותו הדבר בעזרת תוכנה, כשלב-הכנה מוגדר-היטב לפני משימות-הבנה מורכבות יותר, כמו מענה-על-שאלות או בניית אינדקס-חיפוש לפי "מי עשה מה".

טרום-נוירוני: קונפרנסי-MUC בשנות ה-90 והולדת המונח

למשימה, וממש למונח "ישות בעלת-שם", יש תאריך-לידה מתועד: הקונפרנס השישי להבנת-מסרים (MUC-6), שאורגן ב-1995–1996 במסגרת מאמצי-הערכה במימון DARPA בהובלת בת' סנדהיים ורלף גרישמן, היה האירוע הפורמלי הראשון שהגדיר והעריך את המשימה תחת השם הזה, על-פני קטגוריות שכללו שמות-אנשים וארגונים, שמות-מקומות, וביטויי-זמן, כסף ואחוזים. מערכות באותו שלב הסתמכו על כללי-דפוס כתובים-ביד ורשימות-שמות מוכרות (Gazetteers), לא על למידה מנתונים. מבחן-ייחוס נפוץ מאוחר יותר, CoNLL-2003, שפורסם ב-2003, תיקנן את המשימה עבור טקסטים באנגלית וגרמנית מסוכנויות-ידיעות, עם ארבעה סוגי-ישויות (אדם, ארגון, מקום, וקטגוריית "שונות" כללית), והיה קנה-מידה נפוץ להשוואת מערכות-NER במשך למעלה מעשור אחריו.

העידן הסטטיסטי: מ-Hidden Markov ל-CRF

לאורך שנות ה-90 והעשור הראשון של שנות ה-2000 עבר NER מכללים כתובים-ביד למודלים סטטיסטיים שאומנו על נתוני-דוגמה מתויגים: מודלי מרקוב-נסתרים (Hidden Markov Models), ומאוחר יותר — גישה מדויקת יותר למשימת-תיוג-רצף מהסוג הזה — שדות-אקראיים-מותנים (Conditional Random Fields, CRF), שהציגו לפפרטי ועמיתיו ב-2001. מודלים אלה למדו, מתוך דוגמאות רבות, אילו צירופי-מאפיינים של מילה (אות-רישית, מילים שכנות, סיומות ותחיליות נפוצות בשמות) מעידים סטטיסטית על גבול-ישות וסוגה, בלי צורך לכתוב כל כלל ביד — אך עדיין הסתמכו במידה רבה על מאפיינים שהונדסו ידנית לכל מילה.

המעבר הנוירוני: BiLSTM-CRF ואז מודלים מבוססי-טרנספורמר

שנות ה-2010 הביאו את המעבר הנוירוני: במקום להנדס מאפיינים ביד, מודלים למדו ייצוגי-מילים שימושיים באופן אוטומטי, לרוב מתחילים מהטמעות בסגנון word2vec. מאמר משפיע במיוחד מ-2016, "Neural Architectures for Named Entity Recognition" (לאמפל, באיסטרוס, סוברמניאן, קוואקמי ודייר), שילב רשת LSTM דו-כיוונית עם שכבת-פלט CRF (BiLSTM-CRF) והגיע לתוצאות-שיא בארבע שפות בלי כל משאב שפה-ספציפי כתוב-ביד כמו רשימות-שמות. מ-2018 ואילך, מודלי הטמעה-הקשרית כמו BERT שיפרו את הדיוק עוד יותר, מכיוון שמודל שכבר "מבין" את ההקשר הסובב נוטה להבחין בין משמעויות דו-משמעיות (האם "וושינגטון" הוא אדם, עיר או מדינה?) בצורה אמינה בהרבה משיטות מבוססות-מאפיינים ישנות יותר.

שימושים היום

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

אתגרים שנשארו פתוחים

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

שאלות נפוצות ❓

מאיפה בא המונח "ישות בעלת-שם" (Named Entity)?

מקונפרנס MUC-6 (1995–1996), שהיה האירוע הרשמי הראשון שהגדיר את המשימה תחת השם הזה והעריך מערכות עליה.

מה ההבדל בין הגישה הטרום-נוירונית לגישה הנוירונית?

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

האם LLM כמו GPT יכולים לבצע זיהוי-ישויות בלי מודל ייעודי?

כן, דרך פרומפט פשוט בשפה טבעית — אבל בסביבות-ייצור בקנה-מידה גדול עדיין נפוץ להשתמש במודל NER ייעודי וקל, מטעמי מהירות ועלות.

למה זיהוי-ישויות בעברית קשה יותר מאשר באנגלית?

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