פיתוח חילוץ יחסים לחילוץ קשרים סמנטיים

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

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

Relation Extraction על טקסטים אמיתיים: היכן אובד הדיוק

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

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

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

ככל שסוגי הקשרים רבים יותר, כך קשה יותר לתחזק כללים: כל מילה חדשה דורשת חריגה חדשה, והחריגות מתחילות להתנגש זו בזו.

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

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

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

אפקט ההטמעה: מהירות פירוק, שלמות ודיוק הקשרים

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

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

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

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

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

גישות ל-Relation Extraction: כללים, מודלים, סכמות היברידיות

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

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

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

כיצד נבנה פרויקט: מביקורת קורפוס ועד מסירת מודל

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

  1. ביקורת קורפוס. סופרים נפח אמיתי, כפילויות וסוגי ישויות שמופיעים, ומסמנים אילו קשרים חסרים לאימון.
  2. סכמת סימון. קובעים סוגי קשרים, את כיוונם ואת כללי המקרים השנויים במחלוקת — שלילות, מניירות, אזכורים בסוגריים. את הסכמה מתאמים לפני הסימון, אחרת כותבים מחדש את ההנחיות יחד עם החומר המוכן.
  3. סימון ובקרת איכות. חלק מהמסמכים מסומנים על ידי שני אנשים בנפרד, ופערים מחדדים את ההנחיה. הסכמה נמדדת באחוזים: ערך נמוך משמעו שגם האדם וגם המודל מבינים את המשימה אחרת.
  4. אימון. מודל על ייצוג שפה מאומן מראש עובר אימון נוסף על הקורפוס; בנפרד בודקים סוגי קשרים נדירים, שאובדים ראשונים.
  5. בדיקה על מדגם מושהה. מדדים נמדדים על מסמכים שמחוץ לאימון ובנפרד לפי כל סוג קשר — הערכה ממוצעת מסתירה כשל במחלקות נדירות.
  6. הטמעה בתהליך. מחברים את המודל למתאר הקיים: עיבוד באצווה, הערכת ביטחון לכל קשר, בדיקה ידנית של מקרים מפוקפקים. סף הביטחון מכוון כך שזרימת הבדיקה לא תגדל מהר יותר מקצב הפירוק של הצוות.
  7. מסירה. מוסרים משקלות, תצורת פריסה, סכמת סימון וניתוח מדדים — אימון נוסף על נתונים חדשים הצוות מבצע בעצמו.

מה מוסרים לידיים: סכמת סימון, מודל, תקנון עבודה

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

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

קייס: מיצוי קשרים בין צדדים בחוזים ובבקשות

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

קורפוס בקרה נאסף ממסמכים מסומנים והושווה מול מערך פתוח CUAD — מדדים נספרו רק עליו, כדי שהתוצאה לא תהיה תלויה בהפקה אחת.

סוגי שגיאות ומה נעשה איתם

סוג שגיאה סיבה מה שינו שיעור לפני → אחרי
הקשר עובר לצד הסמוך הסימון לא הפריד בין תפקידי המשלם והערב תוויות נפרדות לתפקידים ומילון טריגרים לפי סוגי סעיפים 18% → 4%
ניתוק קשר בין פסקאות חלון הניתוח נשבר בגבול הפסקה התחשבות בהפניות פנימיות בכל טקסט המסמך 12% → 3%
קשרים שגויים בפרטי זיהוי הכותרת פורקה כגוף החוזה סינון לפי מקטעים סמנטיים ומבנה המסמך 9% → 1%

דיוק הקשרים על קורפוס הבקרה עלה מ-0.74 ל-0.92, ושיעור המסמכים שעברו לבדיקה ידנית — מ-41% ל-9%. הקריטי לא היה סיבוך המודל, אלא הפרדת תפקידים בסימון: הצמדת צד להתחייבות הפסיקה להיות תלויה בסדר האזכורים בטקסט.

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

במה מיצוי קשרים שונה מחיפוש לפי מילות מפתח

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

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

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

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

ספקות לגבי נתונים, סימון ותחזוקת המודל

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

יש לנו מעט נתונים מסומנים — המודל יספיק?

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

סימון חלקי קיים, אך נעשה למשימה אחרת

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

מסמכים מגוונים: חוזים, התכתבות, סרוקים, טבלאות

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

מה קורה למודל לאחר ההשקה?

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

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

נדון במשימת מיצוי הקשרים שלכם ובהיקף הקורפוס

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

מכם כדאי להראות:

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

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

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