חיפוש מורפולוגי לאלסטיק מבוסס הקשר לעברית וערבית
Hebrew/Arabic Morphology for Elastic Search
השפות השמיות (כגון עברית וערבית) מורכבות מאוד מבחינה לשונית, מורכבות המקשה מאוד על ביצוע חיפוש איכותי (מבוסס מנוע חיפוש) במסמכים, באתרי האינטרנט, בארכיונים, במסדי נתונים ובכל מאגר מידע המכיל מידע כתוב.
מורכבות זו נובעת מהעובדה שלכל מילה בשפות אלה קיימות לעיתים מאות ואלפי נטיות שונות, מה שגורם לכך שמנועי החיפוש לא יזהו את כל המופעים של מילת החיפוש כשהיא כתובה בכתיב שונה או בנטייה לשונית אחרת, וכתוצאה מכך לא יאותרו בממוצע כחצי מהמסמכים הרלוונטיים.
דוגמה לבעיה:
משתמש מחפש את המילה "אישה" במאגר מסמכים. באחד המסמכים מופיעה המילה "נשים". במרבית המקרים ירצה המשתמש לאחזר גם את המסמך הזה, אולם מנועי חיפוש אשר אינם עושים שימוש בניתוח טקסט מורפולוגי לא יחזירו את המסמך, והמשתמש לא ייחשף אליו כלל (על אף שהוא מאוד רלוונטי לחיפוש).
המנוע המורפולוגי של מלינגו מתחבר למנוע החיפוש של אלסטיק (Elastic Search) ופותר את המורכבות הזו, ומאפשר למנוע החיפוש של אלסטיק לאחזר את כל המסמכים הרלוונטיים – אלו המכילים את המילה המבוקשת לנטיותיה השונות – ללא איבוד תוצאות. המוצר של מלינגו מוסיף יכולות הכרחיות נוספות כגון התגברות על רב-משמעות, תזאורוס, וכן יכולות נוספות שמשפרות משמעותית את איכות אחזור המידע והרלוונטיות שלו למשתמש.
כיצד פועל החיפוש המורפולוגי של מלינגו לאלסטיק
How does Melingo's Morphology plug for Elastic Search works
המוצר המורפולוגי של מלינגו מתממשק למערכת האינדוקס והאחזור של מנוע החיפוש אלסטיק (Elastic Search) ולבסיסי הנתונים של אלסטיק מבוסס Apache Lucene.
המוצר משתלב בתהליך האינדוקס ומבצע ניתוח מדויק של כל מילה בטקסט, הרכיב מנרמל כל מילה לצורת היסוד שלה על פי ההקשר של המילה בטקסט ומאחד את כל צורות הכתיב וההטיה של מילה מסוימת לצורת בסיס אחת.
למשל, המילים: אישה, נשים, אישתי ,ואשתי, כשנשותינו, וכו', כולן ינורמלו לאותה צורת יסוד.
במקרה של "נשים", על המנוע להחליט האם מדובר ב"אשה" או בפועל "לשים" וההחלטה תבוצע על פי ההקשר של המילה בטקסט. האינדקס שנבנה הוא אינדקס מנורמל הכולל את הטקסט המקורי בצירוף צורת היסוד.
בזמן השאילתה מילות החיפוש מנותחות מורפולוגית, כמו בתהליך האינדוקס, ותוצאת הניתוח היא ערך מנורמל אשר מופנה להשוואה מול האינדקס המנורמל.
כתוצאה מכך חיפוש המילה "אישה" יחזיר לא רק תוצאות המכילות את המילה "אישה", אלא גם תוצאות המכילות את כל הטיותיה – "נשים", "אישתו", "נשותיו" וכו'.
צרו איתנו קשר בכל שאלה בנושא חיפוש מורפולוגי לאלסטיק
מאפייני החיפוש החכם של מלינגו לאלסטיק

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

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

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

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

תמיכה בחיפושי קרבה
רכיב ה-Context Search של מלינגו תומך בחיפושי קרבה כאשר אלו נתמכים ע"י מנוע החיפוש. חיפושי near נועדו לתת למשתמש לבצע שאילתה שכוללת מספר מילים תוך הגדרת מידת הקרבה בין המילים בטקסט שיימצא.

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

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

טיפול בכתיב מלא/חסר
רכיב ה-Context Search של מלינגו מסוגל לבצע המרה בין כתיב חסר וכתיב מלא. כתוצאה מכך בעת ביצוע שאילתה של הצירוף "מזג אויר" יוחזרו גם מסמכים המכילים את הצירוף "מזג אוויר" או "מיזוג אוויר" וכו'.

טיפול בכתיבים חלופיים

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

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

חיפוש הכולל תזאורוס
רכיב ה-Context Search של מלינגו מאפשר זיהוי עשיר של מילים נרדפות, על הטיותיהן. זוהי יכולת המבוססת על מילונים המזהים זהויות אלו באופן אוטומטי. באופן זה ביצוע שאילתה של המילה "מסוק" יאחזר גם תוצאות המכילות טת המילים "הליקופטר", "מסוקם", "ההליקופטרים" וכו'.
כלומר, חיפוש הכולל תזאורוס מאפשר למשתמש להגדיל את מרחב התוצאות שלו במילים נרדפות, על כל הטיותיהן המורפולוגיות, זאת מבלי לוותר על תוצאות החיפוש המורפולוגי הרגיל.
המוצר אף מאפשר להרחיב את מילון הנרדפות על ידי שילוב מילון משתמש המותאם לצרכי הלקוח ולאופי הטקסטים שבהם מבוצע החיפוש.
הרצאה על חיפוש חכם וניתוח טקסט בכנס ניהול ידע 2015
מציג: אמיר שלום, מנכ"ל מלינגו בע"מ
מצגת ההרצאה
דוגמה לפעילות רכיב החיפוש המורפולוגי לאלסטיק בעברית
Example for Hebrew morphology search in Elastic Search
בדוגמה הבאה בוצעה שאילתה של המילה "וירוס" באתר "ויקיפדיה" בפעם הראשונה בוצעה השאילתה ללא שימוש ברכיב המורפולוגי, ובפעם השנייה עם שימוש ברכיב המורפולוגי של מלינגו.
ללא שימוש בחיפוש המורפולוגי של מלינגו
בדוגמה זו, ניתן לראות שהתקבלו 137 תוצאות המכילות את המחרוזת "וירוס" בלבד. תוצאות המכילות הטיות של המילה "וירוס" אינן מוחזרות.