אפשרויות של ישות

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

יש גם שתי אפשרויות שלא קובעות את סוג הישות, אבל משפיעות על ההתנהגות של התאמת הישויות:

במסמך הזה מתוארת כל אחת מהאפשרויות האלה.

איפה אפשר למצוא את הנתונים האלה

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

  1. עוברים אל מסוף Dialogflow ES.
  2. בוחרים נציג תמיכה.
  3. בתפריט הצדדי הימני, לוחצים על ישויות.
  4. בוחרים בכרטיסייה Custom (מותאם אישית) כדי לראות את הישויות המותאמות אישית שהוגדרו לסוכן, או בכרטיסייה System (מערכת) כדי לראות את ישויות המערכת שהסוכן משתמש בהן.
  5. אלה האפשרויות של תיבות הסימון לגבי ישויות קיימות:
    • הגדרת מילים נרדפות
    • Regexp entity (ישות של ביטוי רגולרי) (רק ישות בהתאמה אישית)
    • אפשר להפעיל הרחבה אוטומטית (רק עבור ישות מותאמת אישית)
    • התאמה חלקית (רק לישות מותאמת אישית)

אם אתם בונים סוכן באמצעות ה-API ולא באמצעות המסוף, תוכלו לעיין בחומר העזר בנושא EntityTypes. שמות השדות ב-API דומים לשמות השדות במסוף. בהוראות שבהמשך מודגשים ההבדלים החשובים בין המסוף לבין ה-API.

ישות במפה

Map entities מספקות מיפוי מערכי ערכי הפניה למילים נרדפות לכל ערך הפניה. כל רשומה של ישות מיפוי מכילה ערך הפניה יחיד ורשימה של מילים נרדפות. לדוגמה, כל אחת מהשורות הבאות היא רשומה של ישות מסוג size:

ערך ההפניה מילים נרדפות
S S, ‏ small, ‏ tiny, ‏ little
M M, medium, average
L L, large, huge, big

שימו לב שערך ההפניה נכלל ברשימת המילים הנרדפות בכל רשומה של ישות שמופיעה למעלה. כדי שערך הפניה יתאים, צריך לכלול אותו כמילה נרדפת. כשמזינים ערך הפניה באמצעות המסוף, הוא מתווסף אוטומטית כמילה נרדפת.

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

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

הרבה יישויות מערכת הן יישויות מפה. לדוגמה, ישות המערכת @sys.date מתאימה לקלט נפוץ של תאריכים כמו '1 בינואר 2015' או 'הראשון בינואר 2015'. שני ערכי הקלט האלה ממופים לערך הפניה בפורמט ISO-8601: ‎"2015-01-01T12:00:00-03:00".

כדי ליצור ישות של מפה:

  • בקונסולה, מבטלים את הסימון של האפשרות Regexp entity ומסמנים את האפשרות Define synonyms.
  • באמצעות ה-API, מגדירים את השדה EntityType [EntityType] לערך KIND_MAP.kind

הצגת רשימת ישויות

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

ערך
בד
עץ
מתכת

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

הרבה ישויות מערכת הן ישויות רשימה. לדוגמה, ישות המערכת @sys.color תואמת לקלט של צבעים נפוצים כמו "אדום" או "כחול". כשמזוהה צבע, הערך שחולץ לא ממופה לאף ערך הפניה. לדוגמה, גוונים של אדום כמו "אדום בוהק" או "אדום כהה" לא ממופים לערך "אדום" ומוצגים כערכים המקוריים "אדום בוהק" ו "אדום כהה".

כדי ליצור ישות רשימה:

  • במסוף, מבטלים את הסימון של האפשרות Regexp entity ושל האפשרות Define synonyms.
  • באמצעות ה-API, מגדירים את השדה EntityType [EntityType] לערך KIND_LIST.kind

ישות מורכבת

ישות מורכבת היא סוג מיוחד של ישות רשימה. ערכי ישויות של ישויות רשימה מכילים בדרך כלל מילים או ביטויים פשוטים,<0x000A>אבל הם יכולים להכיל גם סוגים אחרים של ישויות. כשסוג ישות מפנה לסוג ישות אחר, ההפניה נקראת כינוי. כשיישות מסוג רשימה מכילה כינויים לסוגי ישויות אחרים, היא נקראת ישות מורכבת.

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

@entity-name:property-name

לדוגמה, אפשר ליצור סוג ישות place שתואם לעיר או למדינה עם רשומות הישות הבאות:

ערך
@sys.geo-city:city
@sys.geo-state:state

אם ביטוי של משתמש קצה מכיל חלק 'נאשוויל', מתבצעת התאמה לסוג הישות place. הערך שחולץ מוחזר בתור: {"city": "Nashville"}.

אפשר גם להשתמש בכמה כינויים של ישויות ברשומה של ישות. נבחן את move סוג היישות בהתאמה אישית הבא שמכיל כינויים לסוג היישות direction ולסוג היישות של המערכת @sys.number:

סוג הישות של מפה מותאמת אישית של כיוון:

ערך ההפניה מילים נרדפות
העברה קדימה
הקודם אחורה, אחורנית, אחורה

העברת סוג ישות של רשימה מותאמת אישית:

ערך
‫@sys.number:steps steps @direction:direction

אם הישות move תואמת לביטוי של משתמש קצה שמכיל את המילים "five steps backward" (חמישה צעדים אחורה), הישות move תהיה תואמת. הערך שחולץ מוחזר בתור: {"steps": 5, "direction": "back"}.

הרבה יישויות מערכת הן יישויות מורכבות. לדוגמה, ישות המערכת @sys.unit-currency משמשת להתאמת סכומי כסף לשם מטבע. הוא מתאים לביטויים של משתמשי קצה כמו '50 יורו' או 'עשרים דולר וחמישה סנטים'. הערך שחולץ מוחזר כאובייקט JSON, כמו: {"amount": 50, "currency": "EUR"}

ישות מסוג Regexp

באמצעות ישות regexp, אתם יכולים לספק ביטויים רגולריים להתאמה. מידע נוסף זמין במאמר בנושא Regexp entities.

כדי ליצור ישות של ביטוי רגולרי:

  • במסוף, מסמנים את האפשרות Regexp entity.
  • באמצעות ה-API, מגדירים את השדה EntityType [EntityType] לערך KIND_REGEXP.kind

הרחבה אוטומטית

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

ערך
לחם
חמאה
חלב
apple, אפל
גלידה

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

כדאי לפעול לפי השיטות המומלצות כשמשתמשים בהרחבה אוטומטית:

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

כדי להפעיל את ההרחבה האוטומטית:

  • במסוף, מסמנים את האפשרות אישור הרחבה אוטומטית.
  • באמצעות ה-API, מגדירים את השדה EntityType [EntityType] לערך AUTO_EXPANSION_MODE_DEFAULT.autoExpansionMode

התאמה חלקית

אפשר להפעיל התאמה משוערת לישות מותאמת אישית. אם מפעילים התאמה משוערת, הסדר של המילים בערך או במילה נרדפת לא משנה. מידע נוסף זמין במאמר בנושא התאמה משוערת.

כדי להפעיל התאמה משוערת:

  • במסוף, מסמנים את האפשרות התאמה משוערת.
  • באמצעות ה-API, מגדירים את השדה EntityType [EntityType] לערך true.enableFuzzyExtraction