זיהוי ישויות

(הופנה מהדף זיהוי שם ישות)

זיהוי ישויותאנגלית: Named-Entity Recognition) הוא תהליך מתחום עיבוד השפה הטבעית, שמטרתו לחלץ שמות של ישויות מתוך טקסט, ולסווגם לקטגוריות. הישויות האמורות הן לרוב אנשים, ארגונים, מיקומים, תאריכים, כמויות, ערכים כספיים, אחוזים ועוד. כך למשל, מתוך המשפט "יוסף רכש 300 מניות של חברת טבע בשנת 2006", התהליך יזהה את המילה "יוסף" כשם של אדם, "טבע" כשם של ארגון, ואת "2006" כשנה.

כיום, קיימות מערכות המבצעות את תהליך ה-NER באמצעות טכניקות למידת מכונה ברמות דיוק גבוהות למדי (מערכות מסוימות הצליחו לזהות שמות ישויות עם ציון F-score של 93.39%, כאשר מעריכים אנושיים קיבלו ציונים של כ-97.30%).[1][2]

פלטפורמות לזיהוי ישויות

עריכה

פלטפורמות NER בולטות הן:

  • SpaCy - ספריית פייתון פופולרית המאופיינת בביצועים מהירים וכוללת, בנוסף לזיהוי שמות סטטיסטי, אפשרות ויזואליזציה מותאמות במיוחד לNER.
  • GATE - כלי לשימוש בשפת Java.
  • OpenNLP - כולל זיהוי שמות סטטיסטי על בסיס סט של חוקים.

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

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

הערכת ביצועים

עריכה

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

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

תחומים בעייתיים

עריכה

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

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

ראו גם

עריכה

הערות שוליים

עריכה
  1. ^ Elaine Marsh, Dennis Perzanowski, "MUC-7 Evaluation of IE Technology: Overview of Results", 29 April 1998 PDF
  2. ^ MUC-07 Proceedings (Named Entity Tasks)
  3. ^ Tjong Kim Sang, Erik F.; De Meulder, Fien (2003). Introduction to the CoNLL-2003 shared task: Language-independent named entity recognition. CoNLL.
  4. ^ Named Entity Definition. Webknox.com. Retrieved on 2013-07-21.
  5. ^ Krallinger, M; Leitner, F; Rabal, O; Vazquez, M; Oyarzabal, J; Valencia, A (2013). "Overview of the chemical compound and drug name recognition (CHEMDNER) task". Proceedings of the Fourth BioCreative Challenge Evaluation Workshop vol. 2. pp. 6–37. CiteSeerX 10.1.1.684.4118.
  6. ^ Eiselt, Andreas; Figueroa, Alejandro (2013). A Two-Step Named Entity Recognizer for Open-Domain Search Queries. IJCNLP. pp. 829–833.
  7. ^ Sekine's Extended Named Entity Hierarchy. Nlp.cs.nyu.edu. Retrieved on 2013-07-21.