מהו עיבוד שפה טבעית (NLP)?

קרוליין אפרייט | אסטרטגית תוכן | 25 במרץ 2021

עיבוד שפה טבעית (NLP) מוגדר

עיבוד שפה טבעית (באנגלית: Natural Language Processing - NLP) הוא ענף של בינה מלאכותית (AI) המאפשר למחשבים להבין, ליצור ולטפל בשפה האנושית. לעיבוד שפה טבעית יש את היכולת לחקור את הנתונים עם טקסט או קול בשפה טבעית. זה נקרא גם "שפה בפנים". רוב הצרכנים כנראה מקיימים אינטראקציה עם NLP מבלי להבין את זה. לדוגמה, NLP היא טכנולוגיית הליבה של העוזרים הווירטואליים, כגון Oracle Digital Assistant (ODA), Siri, Cortana או Alexa. כאשר אנחנו שואלים שאלות את העוזרים הווירטואליים האלה, NLP הוא זה שמאפשר להם לא רק להבין את הבקשה של המשתמש, אלא גם להגיב בשפה טבעית. NLP חל גם על טקסט כתוב וגם על דיבור, וניתן ליישם אותו על כל השפות האנושיות. דוגמאות נוספות לכלים המונעים על-ידי NLP כוללות חיפוש באינטרנט, סינון דואר זבל, תרגום אוטומטי של טקסט או דיבור, תמצות מסמכים, ניתוח סנטימנטים, ובדיקת דקדוק/איות. לדוגמה, תוכניות דוא"ל מסוימות יכולות להציע באופן אוטומטי תגובה מתאימה להודעה על בסיס תוכנה—תוכניות אלו משתמשות ב-NLP כדי לקרוא, לנתח, ולהגיב להודעה שלכם.

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

בפועל, NLU משמשת כמונח נרדף ל-NLP. הבנת מבנה ומשמעות של כל השפות האנושיות על-ידי מחשבים, מאפשרת למפתחים ולמשתמשים לתקשר עם מחשבים באמצעות משפטים טבעיים ותקשורת. בלשנות חישובית (CL) היא תחום מדעי שחוקר את ההיבטים החישוביים של שפה אנושית, בעוד ש-NLP הוא תחום הנדסי העוסק בבניית כלים חישוביים שמבינים, מייצרים או מעבדים שפה אנושית.

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

יישומים של עיבוד שפה טבעית (NLP).

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

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

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

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

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

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

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

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

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

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

סקירה כללית של טכנולוגיית NLP

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

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

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

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

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

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

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

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

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

דוגמאות לטכניקות קדם-עיבוד של NLP

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

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

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

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

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

שפות תכנות NLP

Python:

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

Java ו-C++‎:

לעיבוד כמויות גדולות של נתונים, לעיתים קרובות מעדיפים להשתמש ב-C++‎ וב-Java מכיוון שהן תומכות בקוד יעיל יותר.

ספריות וסביבות פיתוח של NLP

הנה דוגמאות לכמה ספריות NLP פופולריות.

TensorFlow ו-PyTorch‏: אלו הם שני ערכות הכלים הפופולריות ביותר ללמידה עמוקה. הן זמינות באופן חופשי למטרות מחקר ומסחר. על אף שהן תומכות בשפות שונות, השפה העיקרית שלהן היא Python. הן מגיעות עם ספריות גדולות של רכיבים מובנים מראש, כך שגם מודלים מתקדמים מאוד של למידת מכונה NLP דורשים לעיתים קרובות רק חיבור רכיבים אלו יחד. הן גם תומכות בתשתית מחשוב בעלת ביצועים גבוהים, כגון אשכולות של מחשבים עם מאיצי יחידות עיבוד גרפיות (GPU). יש להן תיעוד והדרכות מצוינות.

AllenNLP: זו ספרייה של רכיבי NLP ברמה גבוהה (למשל, צ'אטבוטים פשוטים) המיושמים ב-PyTorch וב-Python. התיעוד מעולה.

HuggingFace: חברה זו מפיצה מאות מודלים שונים של למידת מכונה NLP מאומנים מראש, וכן ערכת תוכנה plug-and-play ב-TensorFlow ו-PyTorch המאפשרת למפתחים להעריך במהירות עד כמה מודלים מאומנים מראש שונים מבצעים את המשימות הספציפיות שלהם.

Spark NLP: Spark NLP היא ספריית עיבוד טקסט בקוד פתוח עבור NLP מתקדם לשפות התכנות Python, Java, ו-Scala. מטרתה לספק ממשק תכנות יישומים (API) לצינורות עיבוד שפה טבעית. היא מציעה מודלים של רשתות עצביות מאומנים מראש, צינורות, ושיבוצים, וכן תמיכה באימון מודלים מותאמים אישית.

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

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