פרויקט תעשייתי – 234313 [#39] Summarization Tool for
Download
Report
Transcript פרויקט תעשייתי – 234313 [#39] Summarization Tool for
פרויקט תעשייתי – 234313
[#39] Summarization Tool for Hebrew Text
מצגת סיום
מנחים :ניר משולם וד"ר מירי רבינוביץ' -רפא"ל
סטודנטים :גיא ויינר ויונתן כורם
מרכז מקצועי :פרופ' מיקי אלעד
סמסטר אביב 2011
מטרות
.1פיתוח מודול לדירוג אוטומטי של משפטים במסמך .המודול מקבל כקלט מסמך
וקובץ XMLהמכיל את תוצרי ניתוח המסמך כפי שנפלטו ממודול NLPשפותח
ברפא"ל .ה XML-מכיל ניתוח מורפולוגי וסמנטי של המילים במסמך.
.2פיתוח ממשק משתמש נוח הממחיש את יכולות המודול המדרג על ידי הצגת
משפטי המפתח של המסמך .הממשק מספק למשתמש שליטה באופן הצגת
התוצאות (כמות המשפטים המוצגים ,סדר הופעתם וכדומה).
.3פיתוח התוצר הסופי (מודול +ממשק) המאפשר עבודה/חקר/פיתוח עתידי בצורה
נוחה.
מתודולוגיה
.1קריאת מאמרים תיאורטיים ומחקריים העוסקים בנושא הדירוג האוטומטי ,והסקת
מסקנות שהשפיעו על פעולות המודול ואופן הפיתוח.
.2פיתוח המודול ב C#-בסביבת .NET4.0
.3פיתוח ממשק המשתמש ב API-של .WinForms
.4שימוש בכלי ה Serialization-של :C#
•
ייצור אובייקט בזמן ריצה המכיל את הניתוח שנעשה ברפא"ל.
•
שמירה וטעינה של קובץ ההיסטוריה של הקורפוס.
מתודולוגיה (המשך)
.5שימוש ב:MultiThreading-
•
מקבול התהליך של הכנת מבני הנתונים המייצגים את המסמך לקראת עבודה.
•
מקבול הרצת האלגוריתמים לדירוג המשפטים.
.6שימוש בקובץ קונפיגורציה ( )Settings Fileכדי להשיג שליטה רחבה על אופן פעולת
המודול המדרג.
הישגים
.1פרמטריזציה
•
קביעת סוג המילים שינופו מתוך המסמך בשלב של בניית מבני הנתונים לפי
סוגם המורפולוגי – ערכים מספריים ,מילות יחס ,מילות שאלה וכדומה.
•
קביעת אלגוריתמי הדירוג שיורצו ומשקלם בשקלול הסופי.
•
קביעת ספים מספריים שונים הנחוצים לאלגוריתמים מסוימים .לדוגמה:
האלגוריתם Coverageדורש סף מספרי על מנת לקבוע האם מילה נחשבת
"מילת מפתח".
•
קביעת ספים מספריים לשם תהליכים נוספים במודול .לדוגמה :ההחלטה האם
שני משפטים "דומים מדי" ולכן רק אחד מהם ייכלל בפלט.
הישגים (המשך)
.2תמצות קורפוס מסמכים
•
המודול תוכנן לעבוד גם על קבוצת מסמכים הקשורים כולם באותו נושא .לכן
שמרנו גם מידע גלובלי שמסייע להבחין במילים הקשורות לנושא שבו עוסקים
כלל המסמכים.
•
אנו שומרים את מספר המופעים הכולל של כל משפחת מילים בקורפוס ,וכן את
מספר המסמכים שבהם היא הופיעה ,בקובץ שייקרא מעתה היסטוריה.
•
אלגוריתמי דירוג מסוימים משתמשים במידע זה כדי לדרג מילים ומשפטים
(מפורט בהמשך).
•
המידע שבקובץ ההיסטוריה מתעדכן בכל תמצות ,אם המשתמש בוחר בכך.
הישגים (המשך)
הישגים (המשך)
.4מימוש מספר מבני נתונים שונים המייצגים את המסמך:
•
מבנה הנתונים העיקרי הוא מערך פסקאות שכל אחת מהן מורכבת ממשפטים
הבנויים ממערך מילים.
•
גרף – כל מילה במסמך מיוצגת ע"י צומת ויש קשת בין שני צמתים אם המילים
שהם מייצגים מופיעות באותו משפט.
•
מילונים המקשרים מזהה משפחת מילים לכל המילים בעלות המזהה הזה.
ישנם שני מילונים; אחד מחזיק מזהים הקשורים לדמיון דקדוקי והשני מחזיק
מזהים הקשורים לדמיון סמנטי.
אופן פעולת המודול המדרג
קלט
קבצי XML
XML De-Serialization
המערכת
המתמצתת
מסמך לתמצות
Text Pre-Processing
ניפוי מילים מיותרות והשלמת בניית המסמך
עידון קובץ ההיסטוריה
הרצת אלגוריתמי דירוג למשפטים
שילוב הדירוגים במטרה לתת ציון לכל משפט
פלט
פליטת אחוז מסוים של המשפטים החשובים
ביותר ,תוך מניעת יתירות בתמצות
פליטת הציונים של כל המשפטים לניתוח
מודולים עתידיים (אופציונלי)
וקטור המשקלים של האלגוריתמים
• כאמור ,הציון הסופי לכל משפט בתמצות ניתן באמצעות שקלול התוצאות של כלל
אלגוריתמי הדירוג כקומבינציה לינארית שלהם.
• ערכנו ניסיון למצוא את וקטור המשקלים "האופטימלי" בעזרת קירוב Least Squares
באופן הבא:
• דירגנו כל מסמך שהיה לנו באופן ידני (כלומר את המשפטים שבו) ואז פתרנו מערכת
משוואות שכל שורה בה מייצגת משפט יחיד .לבסוף מיצענו את הוקטורים שקיבלנו
מכל המסמכים לקבלת וקטור יחיד .תהליך זה נעשה מספר פעמים על כמה וריאציות
של מצב ההיסטוריה ,אשר ביחס אליה הרצנו את האלגוריתמים.
• למתמצת ישנם פרמטרים רבים נוספים המשפיעים על אופן פעולתו ,אך אנו בחרנו
"להקפיא" את ערכיהם לצורך ניתוח זה.
וקטור המשקלים – ניתוח התוצאות
• לאחר מציאת המשקלים כיילנו את המערכת לפיהם ובדקנו את תוצאות הדירוג מול
הדירוג הידני.
• בשקף הבא מוצג גרף המשווה את תוצאות הדירוג האוטומטי מול הדירוג הידני עבור
שני מסמכים שונים.
• ניתן לראות מהגרף שקיים פער ניכר בין התוצאות עבור חלק מהמשפטים ,ולפיכך יש
מקום לשפר את וקטור המשקלים שמצאנו.
וקטור המשקלים – ניתוח התוצאות (המשך)
14
השוואת תוצאות הדירוג עבור שני מסמכים
12
מסמך ראשון ,דירוג אוטומטי
10
מסמך ראשון ,דירוג ידני
מסמך שני ,דירוג אוטומטי
ציון המשפט
8
מסמך שני ,דירוג ידני
6
4
2
0
1
2
3
4
5
6
7
8
9
14
13
12
11
10
מספרי משפטים (לפי סדר הופעתם במסמך)
15
16
17
18
19
20
21
22
23
וקטור המשקלים – ניתוח התוצאות (המשך)
• כזכור ,יש פרמטרים רבים נוספים המשפיעים על אופן פעולת המודול ש"הקפאנו" על
ערכים מסוימים כדי למצוא את הוקטור .ייתכן כי ערכים אלו אינם אופטימליים בפני
עצמם וכדאי לשנותם על מנת לקבל תוצאות איכותיות יותר.
• תוצאות האלגוריתמים השונים לא נמצאות כולן באותו תחום ,וכן התפלגויות התוצאות
בכל תחום שונות .רוב האלגוריתמים מנורמלים במטרה לקבל תוצאות בין 0ל ,1-אך
אנו סבורים שהתפלגות זהה של התוצאות בתחום הייתה גורמת לחישוב "נכון יותר"
של המשקלים.
• ייתכן כי קומבינציה לינארית אינה מתאימה כאן ,ואולי יש צורך בשיטת שקלול שונה
לחלוטין (כגון קומבינציה ריבועית ,שימוש במסווגים ועוד).
ממשק המשתמש
המסמך המקורי מול תמצותו:
ממשק המשתמש (המשך)
שליטה על אופן הצגת המשפטים:
מסקנות להמשך עבודה
• יש להמשיך את החקר הניסיוני על מנת להביא את המתמצת לרמת תוצאות רצויה.
• אם השימוש בשקלולים (ליניאריים או לא) יעמוד בעינו ,רצוי לבצע את החקר על סמך
מסמכים רבים ,ובשיתוף אנשים רבים.
• כיוון שיש מסמכים ובעיקר כתבות אשר אינם בנויים לפי הנחות הקלט שלנו ,ועלולים
להכיל מבנים טקסטואליים לא רגילים (למשל כותרות משנה) ,יש מקום להמשיך
לשכלל את המתמצת כדי שיוכל לטפל במקרי קצה.