Microsoft Word - ugtomita.doc

מסמכים קשורים
שאלהIgal : מערכים דו מימדיים רקורסיה:

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

פייתון

ייבוא וייצוא של קבצי אקסל וטקסט

תורת הקומפילציה

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

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

Microsoft PowerPoint - Chap07cs.ppt

סדנת תכנות ב C/C++

Microsoft Word Viewer - Winter0708-MoedC.doc

HTML - Hipper Text Makeup Language

שאלהIgal : מערכים דו מימדיים רקורסיה:

ex1-bash

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

Microsoft Word - Ass1Bgu2019b_java docx

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

מבוא למדעי המחשב

תרגול 1

PowerPoint Presentation

PowerPoint Presentation

תכנות מונחה עצמים א' – תש"ע

שאלהIgal : מערכים דו מימדיים רקורסיה:

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

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

Microsoft Word - c_SimA_MoedB2005.doc

מהוא לתכנות ב- JAVA מעבדה 3

מבוא לתכנות ב- JAVA תרגול 7

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

מצגת של PowerPoint

Microsoft PowerPoint - Lecture1

PowerPoint Presentation

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

PowerPoint Presentation

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

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

מדריך למרצים ומתרגלים 1

מבוא למדעי המחשב

תוכן הגדרת שאלת רב-ברירה ]אמריקאית[...2 הגדרת שאלת נכון\לא נכון...8 שאלות אמריקאיות 1

שעור 6

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

שאלה 2. תכנות ב - CShell

<4D F736F F D20EEF9E5E5E0E5FA20E3E9F4F8F0F6E9E0ECE9E5FA2E646F63>

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L

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

מקביליות

People. Partnership. Trust מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסי

(Microsoft Word - SQL\353\351\345\345\365 \341\361\351\361 \360\372\345\360\351\355 \ doc)

PowerPoint Presentation

People. Partnership. Trust שלבי הפרויקט והמסלולים השונים - פלטפורמת "קהילה לומדת" מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התח

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

תרגיל בית מספר 1#

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

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

תוכן העניינים

Slide 1

PowerPoint Presentation

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 313, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

מקביליות

Slide 1

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

מבוא למדעי המחשב - חובלים

ביו-סטטיסטיקה למתקדמים - תרגיל מספר 9

אוניברסיטת חיפה החוג למדעי המחשב מרצה: שולי וינטנר מתרגלים: נעמה טוויטו, מחמוד שריף מבוא למדעי המחשב סמסטר א' תשע"ב בחינת סיום, מועד א', הנחי

מבוא למדעי המחשב

<4D F736F F D20E7E5F7E920E0E9EEE5FA20E1E8E1ECE42E646F63>

Overview of new Office 365 plans for SMBs

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

Microsoft Word - עבודת פסח לכיתה י 5 יחל.doc

Slide 1

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

PowerPoint Presentation

Microsoft Word B

Homework Dry 3

BIG DATA תיאור הקורס המונח Big Data הולך וצובר תאוצה בשנים האחרונות, הוא הופך למגמה רווחת בתעשייה. המשמעות הפרקטית של המונח Big Data הינה טכנולוגיות נ

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

Limit

מבוא למדעי המחשב - חובלים

<4D F736F F D20FAF8E2E9EC203220E0F7E520EEE020FAF9F2E1>

PowerPoint Presentation

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

מספר נבחן / תשס"ג סמסטר א' מועד א' תאריך: שעה: 13:00 משך הבחינה: 2.5 שעות בחינה בקורס: מבחנים והערכה א' מרצה: ד"ר אבי אללוף חומר עזר

Microsoft Word - tips and tricks - wave 5.doc

מטלב לפיסיקאים שיעור 1

דף נגזרות ואינטגרלים לשאלון 608 כללים למציאת נגזרת של פונקציה: n 1. y' n x n, y הנגזרת x.1 נכפול בחזקה )נרשום אותה משמאל ל- (. x א. נחסר אחד מהחזקה. ב

Cloud Governance הכלי למזעור סיכונים ומקסום התועלת העסקית

תמליל:

פסאודו-האחדה: מדריך למשתמש בתוכנת Tomita פסאודו-האחדה (pseudo-unification) היא מסגרת תיאורטית וחישובית, הממומשת בחבילת תוכנה להגדרת דקדוקים וניתוח משפטים Parser/Compiler"),("Generalized LR מאת M. Tomita ואחרים מאוניברסיטת,Carnegie Mellon ארה"ב. 1. הוראות שימוש בתוכנה יש להכין דקדוק בעזרת editor כלשהו. קובץ הדקדוק הוא קובץ ascii רגיל, הכולל חוקי דקדוק במבנה המתואר בפרק 2 בהמשך. שם הקובץ: <name>.gra א. נכנסים לסביבת,LISP למשל > gcl GNU Common Lisp ב. : במהלך העבודה עשויים להזדקק לשירותי editor לשינויים בקובץ הדקדוק. UNIX editor של,LISP או לפתוח חלון נפרד ולהשתמש בכלי אפשר להשתמש ב- כבחירתכם. ג. כשנמצאים בסביבת,LISP יש לטעון את חבילת התוכנה לניתוח תחבירי : > (load /cs/course/current/nlp/tomita/v8-4-sb.lisp ) מבצעים "קומפילציה" "<name>") (compgra > לדקדוק הרצוי, <name>.gra : ד. > (compgra "lomed") למשל : התוצאה נשמרת במספר קבצי-עזר. הדקדוק המעובד נטען ומוכן לעבודה. > (compgra "<name>" :result-to-file nil) ההוראה : תמנע שמירת קבצי העזר על הדיסק. אם ברצונכם להשתמש ללא שינוי בדקדוק שכבר עבר קודם קומפילציה, רק טענו אותו: > (loadgra "<name>") ההוראה "...") (p משמשת לניתוח משפט parse) (p "dani lomed") > ה. :( > (disp-tree) מוצגים מבני התכוניות של הניתוחים. לקבלת עץ הגזירה: ו. אפשר לנתח מספר משפטים בהוראה אחת : (("..." "...")' *p) > ז. עם סיום העבודה, יוצאים מסביבת (quit) : LISP > תקציר לקורס מבוא לבלשנות חישובית מ. רימון 1

2. מבנה הדקדוק חוק דקדוק הוא מהצורה: (context-free phrase structure rule (list of equations) ) החלק המבני rule) (phrase structure כולל שם של רכיב (סמל ביניים) בצד שמאל, חץ מפריד מסוג <--> או <==>, ובצד ימין רשימה בתוך סוגריים של רכיבים, קטגוריות לקסיקליות (חלקי דיבר) או תווים אלפנומריים. שמות רכיבים וקטגוריות מופיעים בתוך סוגריים משולשים. המשוואות מתייחסות למבני התכוניות ("התיאור הפונקציונלי") של רכיבי החוק הדקדוקי. המשתנה x0 הוא מבנה התכוניות של הרכיב בצד שמאל של החוק, והמשתנים x1,..xn הם מבני התכוניות של הרכיבים בחלקו הימני של החוק, עפ"י סדר הופעתם משמאל לימין. נגדיר מסלול בתור שם של משתנה ) x0,x1,.. ), שאליו אפשר לשרשר מחרוזות תווים כלשהן לציון שמות מפורטים יותר (צמתים) במבנה תכוניות היררכי כרצוננו; למשל:. x1 agr num כל משוואה נתונה בסוגריים רגילים ויש לה צד שמאל, שהוא תאור מסלול, וצד ימין שיכול להיות גם הוא מסלול, מחרוזת תווים, או רשימה שאברה הראשון הוא *OR* או *EOR* ואחריו מספר כלשהו של מחרוזות תווים. ביטוי שאינו אטומי יש לשים בסוגריים: (x0 = x1) ((x0 subj) = x1) ((x0 root) = talmid) ((x1 case) = (*OR* nom acc)) (<NP> <--> (<DET> <N>) ( ((x2 def) = -) ((x0 def) = (x1 def)) ((x0 root) = (x2 root)) ((x0 agr number) = (x2 agr number)) ) ) דוגמה לחוק שלם: (<S> <--> (<NP> <VP>) ( ((x1 case) = nom) ((x2 form) =c finite) (*OR* (((x2 tense) = present) ((x1 agr) = (x2 agr))) (((x2 tense) = past) ) ) (x0 = x2) ((x0 subj) = x1) ((x0 passive) = -) ) ) דוגמה לחוק מורכב יותר: סימן השוויון במשוואת אילוצים הוא במונחי האחדה: בדיקת קומפטיביליות (חוסר סתירה) של שני הצדדים ויצירת מבנה תכוניות של האחדתם. בפרט, אם לאחד המשתנים אין עדיין ערך, אזי קומפטיביליות מתקיימת באופן ריק ותוצאת ההאחדה זהה להשמה. לעומת האחדה טהורה, שבה המסלולים בשני צדי המשוואה יצביעו לאחר הפעולה אל אותו ערך, בפסאודו-האחדה יוכנסו הערכים הזהים בתוכנם לשני המשתנים השונים. תקציר לקורס מבוא לבלשנות חישובית מ. רימון 2

התוכנה מאפשרת בחירה בין מתכונת של פסאודו-האחדה לבין מתכונת של האחדה טהורה. בעבודה במתכונת של פסאודו-האחדה, אין שיתוף ערכים re-entrancy) (co-reference, כשיש זהות ערכים בפועל. מכאן: גם מבנה תכוניות מיוצג כעץ ולא כגרף כללי יותר (DAG) ייתכנו מצבים בהם יש חשיבות לסדר הפעולות - - האמצעים המיוחדים שיתוארו בהמשך פרק זה (דיסיונקציה, שלילה, משוואה מגבילה, דריסת ערכים, בדיקת קיום ושימוש בפונקציות-עזר בשפת (LISP זמינים רק בעבודה במתכונת של פסאודו האחדה ואינם זמינים בהאחדה טהורה. השימוש בפסאודו-האחדה מקנה כוח ביטוי חזק יותר ויעילות חישובית, במחיר פגיעה בפשטות הפורמליזם וסיכון של איבוד קונסיסטנטיות במקרים מסוימים. דוגמה להבדל בהתנהגות בין האחדה טהורה לבין פסאודו-האחדה - השפעה אפשרית של סדר: (<S> <--> (<NP> <VP>) ( ((x0 subj) = x1) ((x2 voice) = active) (x0 = x2) ) ) א. (<S> <--> (<NP> <VP>) ( ((x0 subj) = x1) (x0 = x2) ((x2 voice) = active) ) ) ב. אם לרכיב VP אין ערך voice לפני הפעולה, מבנה התכוניות שיווצר ל S במקרה ב' יהיה שונה מזהשל א', לעומת ביצוע זהה בהאחדה טהורה. דוגמה נוספת להבדל בין האחדה טהורה ופסאודו-האחדה: (<Start> <--> (<S>) ( (x0 = x1) ((x0 agr gender) = f) ((x0 subj agr gender) = m) )) (<S> <--> (<N> <V>) ( (x0 = x2) ((x0 subj) = x1) ((x0 agr) = (x1 agr)) )) נניח ש N הוא ערך מילוני של שם עצם, שמספרו מצוין ע"י תכונית number) x0), agr אך לא מצוין מינו gender) x0). agr נניח גם ש V הוא פועל בעל אפיון מילוני דומה. בהאחדה טהורה החוק <V>) (<S> <--> (<N> יצליח, אך החוק (<S>) (<Start> <--> ייכשל, משום ש x0 agr ו- x0 subj agr אפשר לקבוע תת-ערך שונה לתכונית מין מצביעים עתה על אותו ערך (ע"י (co-reference ואי.(gender) בפסאודו-האחדה תכונית המין מוגדרת בחוק השני לשני עצים שונים, ולכן חוק זה יצליח. תקציר לקורס מבוא לבלשנות חישובית מ. רימון 3

פרט לאמור לעיל, אין חשיבות לסדר החוקים בדקדוק, אולם: צד שמאל של החוק הראשון בדקדוק מגדיר מהו הסמל המיוחס - שורש העץ בניתוח. בד"כ יהיה זה S, לציון מבנה משפט. אם נרצה להשתמש באותו דקדוק לניתוח של רכיבים מסוימים בנפרד (למשל,(NP נוח לכתוב כחוק ראשון את: ולהחליף את S ב NP- בצד ימין בעת הצורך. (<start> <--> (<S>) ((x0 = x1))) מותר מספר כלשהו של חוקים שצד שמאל שלהם הוא,<start> כאשר המנתח מנסה תחילה לתת ניתוח לפי החוק הראשון ועובר לשני רק אם נכשל. חובה לייצר מבנה תכוניות כלשהו לשורש העץ! ניתן לשלב הערות בדקדוק ע"י ציון התו ; בראש השורה. אמצעים נוספים שהתוכנה מאפשרת כאשר עובדים במתכונת של פסאודו-האחדה: דיסיונקציה ושלילה: *OR* ו- *NOT* על ערכי תכוניות: ((x1 agr person) = (*OR* 1 2)) ((x1 agr person) = (*NOT* 3)) זה שקול ל: יש לשים לב ש (3 (*NOT* פירושו כל ערך השונה מ- 3. השקילות לעיל קיימת רק בגלל טווח הערכים המסוים המשמעותי למסלול. x1 agr person (*OR* (מערכת משוואות) (מערכת משוואות ( (..... ) ) *OR* על משוואות: בתוך כל מערכת, כל המשואות חיבות להצליח בכדי שהמערכת כולה תצליח. למשל: (*OR* (((x2 tense) = present) ((x1 agr) = (x2 agr))) (((x2 tense) = past) ) ) (קטע זה יכול להיות חלק מהחוק <VP>) <S> <--> (<NP> בדקדוק לאנגלית, המבטיח התאמת גוף ומספר בין הפועל והנושא בזמן הווה בלבד). *OR* על מערכות משוואות פועל כתנאי "או" מאחד על המערכות. במקביל, והחוק נכשל רק אם כולן נכשלו. ההשוואות מתבצעות לעומת זה, *EOR* הוא תנאי "או" אקסקלוסיבי. מתבצע באופן סדרתי, ברגע שמשוואה מתקיימת הדיסיונקציה מצליחה ואין בודקים תנאים נוספים (ולכן אין מבצעים השמות והאחדות נוספות). מספר המשוואות במבני *OR*/*EOR* אינו מוגבל. מתאפשר דימוי כללי של.if-then-else תקציר לקורס מבוא לבלשנות חישובית מ. רימון 4

*DEFINED* בדיקות קיום: *UNDEFINED* ביטויים אלה יכולים להופיע בצד ימין של משוואה, לציון דרישה על קיום / אי קיום של ערכים. (x2 neg) = *UNDEFINED* למשל: בודק את תכונית neg (שלילה) של x2 ונכשל אם יש לה ערך כלשהו בשלב זה. אין כל השמה. ג'וקר card) :(wild התו % (או סימן אחר שניתן לבחור). מקיים שוויון עם כל תו אחר, ומקבל את ערכו לאחר האחדה. אסור שיישאר ג'וקר פתוח במבנה בסיום הניתוח. הג'וקר שימושי לציון דרישה על עצם הקיום של משתנים, למשל משלימים לפועל: (<V> <--> (p a g a s h) ( - - - - - - ((x0 subj) = %) ((x0 obj) = %) ) ) =c משוואה מוגבלת: התניית פעולה בערך, ללא האחדה/השמה. האופרטור c= מציין שלתכונית המתוארת ע"י הארגומנט השמאלי חייב להיות הערך המופיע כארגומנט הימני. אם אין הערך לתכונית, לא מתבצעת האחדה, כלומר השמה, והחוק נכשל. ((x1 case) =c nom) ((x1 case) =c (*OR* nom acc)) למשל: משוואת השמה: הערך המופיע כארגומנט הימני יוצב בתכונית המתוארת ע"י הארגומנט השמאלי, ו"ידרוס" את הערך הקודם שלה. זו משוואה שמצליחה תמיד. פעולות ב- :LISP בצד ימין של משוואה יכול להופיע קטע כלשהו ב- LISP, עם חץ מפריד מסוג ==> השמה). (משוואת (<integer> <--> (<integer> <digit>) ( ((x0 value) <= (+ (x2 value) (* 10 (x1 value)) ) ) ) ) לדוגמה: שילוב קטעי LISP בדקדוק מאפשר ביטוי קומפקטי של טענות שקשה לאפיין באמצעים של חוקי מבנה או משוואות אילוצים, הערכה סמנטית, שקלול סטטיסטי, ועוד. אולם יש להקפיד על שימוש מבוקר ומינימליסטי ב- LISP בדקדוק. תקציר לקורס מבוא לבלשנות חישובית מ. רימון 5

סימני קצה :(terminals) שהיא חוק רגיל לכל דבר סימני הקצה של הדקדוק הם תווים ולא מלים, ולכן הגדרה מילונית - - יש לרשום כבדוגמה הבאה: (<N> <--> (t a l m i d) (((x0 root) = talmid) ((x0 def) = -) ((x0 agr num) = sg) )) גם המנתח פועל ברמת תווים ומתעלם מרווחים בטקסט עצמו לכן במתכונת עבודה רגילה כל המחרוזות הבאות שוות: (ניתן לכפות התחשבות ברווחים). ve ha talmidim. ve hatalmidim. vehatalmidim. veha tal midim. מבנה תכוניות ריק מיוצג ע"י הסמל.nil אפשרות שימוש במקרוס - ר' פרק 4 בהמשך. תקציר לקורס מבוא לבלשנות חישובית מ. רימון 6

3. פלט הניתוח וקבצי ביניים פלט הניתוח: שני מבני-נתונים, ברוח LFG ותיאוריות דומות: עץ גזירה,(c-structure) המתייחס לרכיבים,(constituents) כפי שהם מוגדרים ע"י החלק המבני של החוקים (כגון S,,NP וכו'). עץ הגזירה מוצג רק בעקבות בקשה של המשתמש. מבנה תכוניות הפונקציונלי,(f-structure) המתייחס למסלולים המוגדרים במשוואות ומצביעים על תכוניות. הפורמליזם מאפשר חופש לגבי המובן של התכוניות ואופן השימוש בהן, אך בד"כ נייצג בעזרתן תפקידים (functions) תחביריים-תמטיים, כגון נושא/נשוא, יחסות, וכיו"ב שאין להם ביטוי בעץ הגזירה המבני. מוצג בכל מקרה. מבנה התכוניות של ראש המשפט (S) קבצי ביניים הקובץ : מתייחס לחלק המבני (CFG) של הדקדוק. נוצר בתהליך <name>.tab הקומפילציה של <name>.gra ונשמר על הדיסק לשימוש נוסף בעתיד. מכיל שלושה חלקים, שכל אחד מהם היא פקודת setq של,LISP המגדירה משתנה פנימי:.1 *gg* חוקי המבנה של הדקדוק, ושמותיהם הפנימיים. החלק השמאלי (פעולות / לדקדוק (התוכנה משתמשת בטכניקת של הדקדוק - החוקים חסרי ההקשר). (actions של טבלת shift-reduce המתאימה Generalized LR לחלק המבני *a-tab* החלק הימני (מעברים. shift-reduce של טבלת (goto / *g-tab* הקובץ : פונקציות LISP הנוצרות בתהליך הקומפילציה של <name>.gra <name>.fun וישמשו לניתוח משפטי הקלט. גם קובץ זה נשמר על הדיסק לשימוש נוסף בעתיד. כל פונקציה מתאימה לאחד מחוקי הדקדוק והיא מחשבת את מבנה התכוניות..2 לדוגמה:... (DEFUN LOMEDF-7 (X1 X2) (LET ((X (LIST (LIST (LIST (QUOTE X2) X2) (LIST (QUOTE X1) X1))))) (AND (AND (P=A (X1 CASE) NOM) (P=P (X1 NUM) (X2 NUM)) (P=P (X0 SUBJ) (X1)) (P=P (X0) (X2))) (OR (GETVALUE* X (QUOTE (X0))) T))))... מתקבל מחישוב מבנה התכוניות בחוק: (<S> <--> (<NP> <VP>) (((x1 case) = nom) ((x1 num) = (x2 num)) ((x0 subj) = x1) (x0 = x2))) הקובץ : קובץ פנימי הנוצר מחדש בכל טעינה של הדקדוק, ומכיל את <name>.loadfun תוכנת הניתוח (בשפת (LISP שנבנתה מהדקדוק, במצב מוכן לעבודה..3 תקציר לקורס מבוא לבלשנות חישובית מ. רימון 7

ג" 4. אמצעי עזר נוספים פרמטרים גלובליים (setq variable value) משפיעים על התנהגות המנתח בריצה מסוימת. ניתן לשנות ברירות מחדל ע"י פקודת :LISP של setq.(ambiguity) *max-ambiguity-display* המספר המירבי של ניתוחים שיוצגו במקרה של רב-משמעות ברירת המחדל: 3..1 *ignore-space* = t יש להתעלם מרווחים במשפט ולנתחו על בסיס תווים רב-משמעות מדומה; למשל:.(pogesh et = pogeshet = nil עבודה ברמת מילה (מתאים, למשל, לאנגלית). פרמטר זה אינו משפיע על אופן ההגדרה המילוני, שם מחויבים רווחים. ברירת המחדל:.t (נוח לעברית, אך עשוי לגרום.2 *recover-from-failure* = t המנתח ינסה להחלץ מכשלון בניתוח. = nil הניתוח יופסק בעת כשלון, ויופק פלט מתאים ברירת המחדל:.t (נוח לשלב הניפוי)..3 *wild-card-character* התו המציין "ג'וקר", ומקיים שוויון עם כל קלט. ברירת המחדל: %..4 *unification-mode* = pseudo = full עבודה במתכונת הטבעית של המערכת, בשיטת פסאודו-האחדה. עבודה במתכונת האחדה טהורה. בנוסף להבדלים בתהליך ההאחדה, במצב full אין תמיכה בפונקציות הייחודיות (דריסה ומחיקה של ערכים, בדיקות קיום, התניית c=, וקריאה ל- LISP ). 'וקר",,*NOT* ברירת המחדל:.pseudo.5 אמצעי ניפוי (debugging) dmode שולט בתצוגת הפלט. יש לקבעו לפני ניתוח משפט, והוא נשאר בתוקף עד שינוי נוסף. ברירת המחדל פלט בסיסי לגבי תהליך הניתוח. בפלט יוצגו קטעי הקלט והחוקים שהופעלו על-פי סדר השימוש בהם. כנ"ל בתוספת הצגה של חוקים שנוסו ונכשלו במהלך הניתוח. (dmode 0) (dmode 1) (dmode 2) מוצגים גם שמות פונקציות ומספרי חוקים בקובץ הדקדוק לאחר קומפילציה. תקציר לקורס מבוא לבלשנות חישובית מ. רימון 8

trace מאפשר מעקב על קריאות לפונקציות LISP המרכיבות את הדקדוק שעבר קומפילציה (ונמצאות בקובץ,(<name>.fun כולל הצגת הערכים שהועברו והוחזרו. דוגמה: lomedf-7) (trace disp-node-value קריאה ל-( n (disp-node-value תציג את שם הרכיב (קטגוריה) הנמצא בצומת n, ערכי תכוניותיו ושמות בניו. disp-nodes רשימת כל הצמתים עם בניהם. disp-def עיון בהגדרה מקורית של חוק, לפי תצוגתו במצב (2.(dmode דוגמה: 52) "lomedf" (disp-def disp-tree קריאה ל-( disp-tree ) לאחר ניתוח משפט תציג את עץ הגזירה (ברירת המחדל היא להציג רק את מבנה התכוניות). בצד שמות הרכיבים יופיע ספרור פנימי שלהם. קריאה ל- (n (disp-tree תציג רק את תת-העץ שתחת הצומת n. disp-tree מציג רק עץ אחד. במקרים של רב-משמעות אפשר לקבל את העצים הנוספים ע"י (n,(disp-tree באשר n הרצוי נבחר מתצוגת הפלט במצב (2 (dmode או מהתשובה ל-.(disp-nodes) תקציר לקורס מבוא לבלשנות חישובית מ. רימון 9

מקרוס אמצעי נוח לכתיב מקוצר של תבניות חוזרות. שימושי במיוחד להגדרות מילוניות: למשל, במקום לחזור עבור שמות תואר רבים דומים על חוקים דוגמת: (<ADJ> <--> (g a d o l) (((x0 root) = gadol) ((x0 agr gen) = m) ((x0 agr num) = sg))) אפשר להגדיר מקרו (במונחי שפת :(Common LISP (defmacro %ADJ (wordlist &key (gen 'm)(num 'sg)) (if (atom wordlist) (setq wordlist (list wordlist))) (append-dolist (word wordlist) '((<ADJ> <-->,(explode-string word) (((x0 root) =,word) ((x0 agr gen) =,gen) ((x0 agr num) =,num)) )) ) ) (%ADJ ( "gadol" "shamen"... )) ואז לכתוב: (%ADJ ( "gdola" "yafa"... ) :gen f) (%ADJ ( "gdolim" "shmenim"... ) :num pl) וכו'. תקציר לקורס מבוא לבלשנות חישובית מ. רימון 10

lomed.gra דוגמה פשוטה: הדקדוק (<S> <--> (<NP> <VP>) (((x1 case) = nom) ((x1 num) = (x2 num)) (x0 = x2) ((x0 subj) = x1) )) (<NP> <--> (<DET> <N>) (((x2 def) = -) ((x0 def) = (x1 def)) ((x0 root) = (x2 root)) ((x0 num) = (x2 num)))) (<NP> <--> (<N>) ((x0 = x1))) (<VP> <--> (<V>) ((x0 = x1))) (<N> <--> (t a l m i d) (((x0 root) = talmid) ((x0 def) = -) ((x0 num) = sg))) (<N> <--> (t a l m i d i m) (((x0 root) = talmid) ((x0 def) = -) ((x0 num) = pl))) (<N> <--> (d a n i) (((x0 root) = dani) ((x0 def) = +) ((x0 num) = sg))) (<V> <--> (l o m e d) (((x0 root) = lamad) ((x0 num) = sg) ((x0 tense) = present))) (<V> <--> (l o m d i m) (((x0 root) = lamad) ((x0 num) = pl) ((x0 tense) = present))) (<DET> <--> (h a -) (((x0 root) = ha) ((x0 def) = +))) יקבל משפטים כמו: תלמיד לומד תלמידים לומדים התלמיד לומד דני לומד (1) (2) (3) (4) וידחה משפטים כמו: תלמיד לומדים הדני לומד * (5) * (6) תקציר לקורס מבוא לבלשנות חישובית מ. רימון 11

תדפיס ריצה עם lomed.gra > gcl GCL (GNU Common Lisp) 2.6.6 CLtL1 Jan 18 2005 00:13:38 Source License: LGPL(gcl,gmp), GPL(unexec,bfd) Binary License: GPL due to GPL'ed components: (READLINE BFD UNEXEC) Modifications of this banner must retain notice of a compatible license Dedicated to the memory of W. Schelter Use (help) to get some basic information on how to use GCL. > (load "/cs/course/current/nlp/tomita/v8-4-sb.lisp") Loading /cs/course/current/nlp/tomita/v8-4-sb.lisp "******************************************************" "** The Generalized LR Parser/Compiler **" "** Symbolics version 8-4 **" "** Center for Machine Translation **" "** Carnegie Mellon University **" "** (c) 1986,1987,1988 All rights reserved **" "******************************************************" "initializing..." Warning: HASH-TABLE-SIZE is being redefined. Warning: HELP is being redefined. "Type (ACKNOWLEDGE) for acknowledgements." Finished loading v8-4-sb.lisp T > (compgra "lomed") - Reading lomed.gra - lomed.gra read ************************************************ ***** Start compiling lomed.gra - Reading lomed.gra - lomed.gra read *** Grammar Pre-processor started *** Grammar Pre-processor done *** LFG Compiler started *** LFG Compiler done *** LR Table Compiler started - converting grammar - there were 10 rules - there were 10 really different rules - there were 17 symbols - there were 11 terminal symbols אותיות - there were 6 non terminal symbols רכיבים / קטגוריות - making augmented grammar - making all items - 50 items made - collecting all items LR [ 0] LR [ 1] LR [ 2] LR [ 3] LR [ 4] LR [ 5] LR [ 6] LR [ 7] LR [ 8] LR [ 9] LR [ 10] LR [ 11] LR [ 12] LR [ 13] LR [ 14] LR [ 15] LR [ 16] LR [ 17] LR [ 18] LR [ 19] LR [ 20] - the number of states is 31 - generating parsing table LR'[ 0] LR'[ 20] - reforming goto table תקציר לקורס מבוא לבלשנות חישובית מ. רימון 12

*** LR Table Compiler done - Writing File lomed.tab אלה קבצי העבודה - File lomed.tab written הנשמרים בדיסק - Writing File lomed.fun גם בסיום העיבוד - File lomed.fun written - Writing File lomed.funload - File lomed.funload written ***** Setting up the runtime parser ;;; Loading source file "lomed.tab" ;;; Warning: File "lomed.tab" does not begin with IN-PACKAGE. Loading into package "USER" ;;; Loading source file "lomed.fun" ;;; Warning: File "lomed.fun" does not begin with IN-PACKAGE. Loading into package "USER" Parser Ready for lomed NIL > (p "talmid lomed") >talmid lomed 1 (1) ambiguity found and took 0.4 seconds of real time קרי : מספר ניתוחים, לאו דווקא רב-משמעות! *** 1 ****; ambiguity ((SUBJ ((NUM SG) (CASE NOM) (DEF -) (ROOT TALMID))) (TENSE PRESENT) (NUM SG) (ROOT LAMAD)) > (disp-tree) <S>(15) --> <NP>(7) <VP>(14) <NP>(7) --> <N>(6) <N>(6) --> T A L M I D <VP>(14) --> <V>(13) <V>(13) --> L O M E D > (p "ha-talmid lomed") >ha-talmid lomed 1 (1) ambiguity found and took 0.7 seconds of real time ;**** ambiguity 1 *** ((SUBJ ((NUM SG) (CASE NOM) (ROOT TALMID) (DEF +))) (TENSE PRESENT) (NUM SG) (ROOT LAMAD)) > (disp-tree) <S>(19) --> <NP>(11) <VP>(18) <NP>(11) --> <DET>(3) <N>(10) <DET>(3) --> H A - <N>(10) --> T A L M I D <VP>(18) --> <V>(17) <V>(17) --> L O M E D תקציר לקורס מבוא לבלשנות חישובית מ. רימון 13

> (p "dani lomed") >dani lomed 1 (1) ambiguity found and took 0.1 seconds of real time ;**** ambiguity 1 *** ((SUBJ ((NUM SG) (CASE NOM) (DEF +) (ROOT DANI))) (TENSE PRESENT) (NUM SG) (ROOT LAMAD)) > (disp-tree) <S>(13) --> <NP>(5) <VP>(12) <NP>(5) --> <N>(4) <N>(4) --> D A N I <VP>(12) --> <V>(11) <V>(11) --> L O M E D > (p "ha-dani lomed") >ha-dani lomed failed parsed --> (H A - D A N I) rest --> (L O M E D $) > (dmode 2) 2 > (p "ha-dani lomed") >ha-dani lomed H A - rule # 10 LOMEDF-55 <DET>(3) --> HA- D A N I rule # 7 LOMEDF-52 <N>(8) --> DANI killed - rule # 2 LOMEDF-47 <NP> --> <DET>(3) <N>(8) failed parsed --> (H A - D A N I) rest --> (L O M E D $) > (p "ha-talmidim lomed") >ha-talmidim lomed H A - rule # 10 LOMEDF-55 <DET>(3) --> HA- T A L M I D rule # 5 LOMEDF-50 <N>(10) --> TALMID rule # 2 LOMEDF-47 <NP>(11) --> <DET>(3) <N>(10) תקציר לקורס מבוא לבלשנות חישובית מ. רימון 14

I M rule # 6 LOMEDF-51 <N>(14) --> TALMIDIM rule # 2 LOMEDF-47 <NP>(15) --> <DET>(3) <N>(14) L O M E D rule # 8 LOMEDF-53 <V>(21) --> LOMED rule # 4 LOMEDF-49 <VP>(22) --> <V>(21) killed - rule # 1 LOMEDF-44 <S> --> <NP>(15) <VP>(22) failed parsed --> (H A - T A L M I D I M L O M E D) rest --> ($) > (p "ha- talmidim lomdim") >ha- talmidim lomdim H A - rule # 10 LOMEDF-55 <DET>(3) --> HA- T A L M I D rule # 5 LOMEDF-50 <N>(10) --> TALMID rule # 2 LOMEDF-47 <NP>(11) --> <DET>(3) <N>(10) I M rule # 6 LOMEDF-51 <N>(14) --> TALMIDIM rule # 2 LOMEDF-47 <NP>(15) --> <DET>(3) <N>(14) L O M D I M rule # 9 LOMEDF-54 <V>(22) --> LOMDIM rule # 4 LOMEDF-49 <VP>(23) --> <V>(22) rule # 1 LOMEDF-44 <S>(24) --> <NP>(15) <VP>(23) 1 (1) ambiguity found and took 0.3 seconds of real time ;**** ambiguity 1 *** ((SUBJ ((NUM PL) (CASE NOM) (ROOT TALMID) (DEF +))) (TENSE PRESENT) (NUM PL) (ROOT LAMAD)) > (disp-tree) <S>(24) --> <NP>(15) <VP>(23) <NP>(15) --> <DET>(3) <N>(14) <DET>(3) --> H A - <N>(14) --> T A L M I D I M <VP>(23) --> <V>(22) <V>(22) --> L O M D I M > (quit) תקציר לקורס מבוא לבלשנות חישובית מ. רימון 15