עיבוד שפה טבעית

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

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

==עיבוד שפה טבעית==
בשנות ה-50 וה-60 מערכות מוקדמות כמו SHRDLU, שעבדו ב"עולמות קוביות" עם אוצר מילים מצומצם, ולאחר מכן ELIZA, עבדו היטב, והובילו את החוקרים לאופטימיות מוגזמת, שחלפה במהירות כאשר המערכות הוגדלו למצבים מציאותיים יותר עם המורכבות וחוסר הבהירות של העולם האמיתי.

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

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

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

==המשימות העיקריות של עיבוד שפה טבעית==
*הפיכת טקסט לדיבור
*זיהוי דיבור
*יצירת שפה טבעית
*תיוג תפקידים סמנטי
*תרגום מכונה
*מענה על שאלות
*כריית מידע
*מציאת מידע
*בדיקת טקסטים
*גרירה טקסטואלית
*סיווג טקסטים
*סיכום (יצירת תקציר) אוטומטי

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

;רב־משמעות לקסיקלית: למלים רבות יש יותר ממשמעות אחת; מציאת המשמעות הנכונה מחייבת התחשבות בהקשר וב"ידע העולם". רב-משמעות לקסיקלית עשויה להביא ליצירת צירופים שנראים אבסורדיים, אך בעצם הם מובנים לדוברי השפה, למשל: "סבון נטול סבון" (סבון במשמעות "תכשיר רחצה" לעומת סבון במשמעות "סוג של חומר").
פתרון רב־משמעות לקסיקלית חשוב לזיהוי אוטומטי של ישויות (named entity recognition), למשל ההבחנה בין "Nice System is an Israeli company" ל "I have nice systems at home".

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

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

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

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

==ראו גם==
* שכיחות אותיות בעברית
* מילת עצירה

==קישורים חיצוניים==

* אורי אליאבייב, [http://machinelearning.co.il/344/nlp/ המהפכה הלשונית השנייה: עכשיו תורן של המכונות ללמוד לדבר], באתר [http://machinelearning.co.il/ Machine Learning Israel], תאריך 4 במאי 2016
* 
* [http://mila.cs.technion.ac.il מרכז הידע לתקשוב בשפה העברית]
* [http://israelinlp.wiki.co.il עיבוד שפה טבעית בישראל]
* [https://www.iahlt.org האיגוד הישראלי לטכנולוגיות שפת אנוש - תכנים לאימון שפה טבעית לעברית וערבית]
* [https://lighttag.io LightTag - כלי תיוג המשמש להכנת טקסט לעיבוד שפה טבעית]
* 

קטגוריה:בינה מלאכותית
קטגוריה:בלשנות חישובית
קטגוריה:בלשנות
קטגוריה:ערכים שבהם תבנית בריטניקה אינה מתאימה