rimon/ugtomita.pdf · 2005-10-06 · 1 2 . lomed . gra > gcl GCL (GNU Common Lisp) 2.6.6 CLtL1 Jan...

15

Transcript of rimon/ugtomita.pdf · 2005-10-06 · 1 2 . lomed . gra > gcl GCL (GNU Common Lisp) 2.6.6 CLtL1 Jan...

Page 1: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

1 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

בתוכנת:האחדה�פסאודו למשתמש Tomitaמדרי�

וחישובית(pseudo-unification)האחדה�פסאודו תיאורטית מסגרת בחבילת,היא הממומשת

משפטי� וניתוח דקדוקי� להגדרת Generalized")תוכנה LR Parser/Compiler"),מאת

M. Tomitaמאוניברסיטת Carnegieואחרי� Mellon,ב"ארה.

בתוכנה.1 שימוש הוראות

בעזרת דקדוק להכי� קוב�.כלשהוeditorיש הוא הדקדוק הכולל,רגילasciiקוב�

בפרק המתואר במבנה דקדוק הקוב�.בהמש�2חוקי name>.gra>:ש�

> gcl לסביבת GNUלמשל,LISPנכנסי� Common Lisp: .ב

עשוי העבודה לשיריבמהל� להזדקק הדקדוקeditorותי� בקוב� .לשינויי�

ב להשתמש בכלי,LISPשל�editorאפשר ולהשתמש נפרד חלו� לפתוח UNIXאו

.כבחירתכ�

בסביבת תחבירי,LISPכשנמצאי� לניתוח התוכנה חבילת את לטעו� :יש .ג

> (load “/cs/course/current/nlp/tomita/v8-4-sb.lisp”)

> (compgra "<name>") הרצוי"קומפילציה"מבצעי� :>name>.gra,לדקדוק .ד

> (compgra "lomed") :למשל

קבצי במספר נשמרת לעבודה.עזר�התוצאה ומוכ� נטע� המעובד .הדקדוק

> (compgra "<name>" :result-to-file nil) :ההוראה

הדיסקת על העזר קבצי שמירת .מנע

להשתמ ברצונכ� קומפילציהא� קוד� עבר שכבר בדקדוק שינוי ללא אותו,ש טענו :רק

> (loadgra "<name>")

> (p "dani lomed") p)ההוראה משפט("..." לניתוח ):parse(משמשת .ה

> (disp-tree)הניתוחי�המבנימוצגי� של .תכוניות

הגזירה ע� :לקבלת

> (p* '("....." ".....")) אחתאפשר בהוראה משפטי מספר :לנתח .ו

> (quit) העבודה סיו מ,ע :LISPסביבתיוצאי .ז

Page 2: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

2 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

הדקדוק.2 מבנה

מהצורה הוא דקדוק :חוק

(context-free phrase structure rule

(list of equations) )

המבני phrase(החלק structure rule(רכיב של ש� ביניי�(כולל שמאלבצ)סמל מפרידח�,ד

רכיבי�,<==>או<-->מסוג של סוגריי� בתו� רשימה ימי� לקסיקליות,ובצד חלקי(קטגוריותמשולשי�.אלפנומריי��תוויאו)דיבר סוגריי� בתו� מופיעי� וקטגוריות רכיבי� .שמות

התכוניות למבני מתייחסות הד")הפונקציונלירהתיאו("המשוואות החוק רכיבי .קדוקישל

החוקx0המשתנה של שמאל בצד הרכיב של התכוניות מבנה מבניx1,..xnוהמשתני�,הוא ה�החוק של הימני בחלקו הרכיבי� של לימי�"עפ,התכוניות משמאל הופעת� סדר .י

משתנה של ש� בתור מסלול ת,)..,x0,x1(נגדיר מחרוזות לשרשר אפשר לציו�ושאליו כלשה� וי�

מפור יותרשמות כרצוננו)צמתי�(טי� היררכי תכוניות x1:למשל;במבנה agr num.

שמאל צד לה ויש רגילי� בסוגריי� נתונה משוואה מסלול,כל תאור להיות,שהוא שיכול ימי� וצד

מסלול הוא הוא,�תווימחרוזת,ג� הראשו� שאברה רשימה ואחריו*EOR*או*OR*אות מחרוזות של כלשהו בסוגריי�.�ויומספר לשי� יש אטומי שאינו :ביטוי

(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) = -) ) )

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

להשמה זהה ההאחדה ותוצאת ריק באופ� מתקיימת .קומפטיביליות

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

Page 3: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

3 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

פסאודו של מתכונת בי� בחירה מאפשרת טהורה�התוכנה האחדה של מתכונת לבי� .האחדה

פסאודו• של במתכונת ערכי�,האחדה�בעבודה שיתו� ,co-reference(אי� re-entrancy(ג�בפועל ערכי� זהות :מכא�.כשיש

יותר� כללי כגר� ולא כע� מיוצג תכוניות )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נניח ש� של מילוני ער� ע,הוא מצוי� תכונית"שמספרו x0)י agr number),לא א�

מינו x0)מצוי� agr gender).ש ג� דומהVנניח מילוני אפיו� בעל פועל .הואהחוק טהורה <S>)בהאחדה <--> (<N> <V>)החוק,צליחי <Start>)א� <--> (<S>)

ש,כשליי x0משו� agrו�x0 subj agrער� אותו על עתה ואי)co-referenceי"ע(מצביעי�תת לקבוע מי��אפשר לתכונית שונה .(gender)ער�

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

Page 4: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

4 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

לעיל לאמור בדקדוק,פרט החוקי� לסדר חשיבות של:אול�,אי� שמאל הראשו�צד החוק

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

נרצה בנפרדא� מסוימי� רכיבי� של לניתוח דקדוק באותו לכתוב,)NPלמשל(להשתמש נוחאת ראשו� :כחוק

(<start> <--> (<S>)

((x0 = x1)))

את �הצור��NPבSולהחלי בעת ימי� .בצדהוא שלה� שמאל שצד חוקי� של כלשהו מספר תחילה,<start>מותר מנסה המנתח כאשר

החוק לפי ניתוח נכשללתת א� רק לשני ועובר .הראשו�

הע� לשורש כלשהו תכוניות מבנה לייצר !חובה

ע בדקדוק הערות לשלב התו"נית� ציו� השורה;י .בראש

נוספי� שלאמצעי� במתכונת עובדי כאשר מאפשרת :האחדה�פסאודושהתוכנה

ושלילה :דיסיונקציה

*OR*ו�*NOT*תכוניות ערכי :על

((x1 agr person) = (*OR* 1 2))

ל שקול :זה((x1 agr person) = (*NOT* 3))

ש לב לשי *NOT*)יש מופירוש(3 השונה ער� טווח.�3כל בגלל רק קיימת לעיל השקילותלמסלול המשמעותי המסוי x1הערכי agr person.

*OR*משוואות :על(*OR*

משוואות) (מערכת

( מש וואותמערכת )(. . . . . ) )

מערכת כל תצליח,בתו� כולה שהמערכת בכדי להצליח חיבות המשואות :למשל.כל

(*OR*

(((x2 tense) = present)

((x1 agr) = (x2 agr)))

(((x2 tense) = past) ) )

מהחוק( חלק להיות יכול זה <S>קטע <--> (<NP> <VP>)לאנגליתבדק המבטיח,דוקבלבד הווה בזמ� והנושא הפועל בי� ומספר גו� ).התאמת

*OR*משוואות מערכות כתנאיעל המערכות"או"פועל על מתבצעות.מאחד ההשוואותנכשלו,במקביל כול� א� רק נכשל .והחוק

זה תנאי*EOR*,לעומת סדרתי.אקסקלוסיבי"או"הוא באופ� שמ,מתבצע שוואהברגענוספי� תנאי� בודקי� ואי� מצליחה הדיסיונקציה השמות(מתקיימת מבצעי� אי� ולכ�

נוספות ).והאחדות

במבני המשוואות מוגבל*OR*/*EOR*מספר דימוי.אינו .if-then-elseשלכללימתאפשר

Page 5: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

5 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

קיו� *UNDEFINED**DEFINED*:בדיקות

י בצד להופיע יכולי אלה משוואהביטויי של קיו,מי� על דרישה ערכי/לציו� של קיו .אי

:למשל(x2 neg) = *UNDEFINED*

תכונית את זהx2של)שלילה(negבודק בשלב כלשהו ער� לה יש א השמה.ונכשל כל .אי�

wild(וקר'ג card(:תוה%)לבחור שנית� אחר סימ� ).או

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

(<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וקר

Page 6: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

6 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

קצה תו):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פרק'ר�מקרוסאפשרות

Page 7: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

7 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

ביניי�.3 וקבצי הניתוח פלט

הניתוח :פלט

מבני דומותLFGברוח,נתוני� שני :ותיאוריות

גזירה• לרכיבי�,)c-structure(ע� ע,)constituents(המתייחס מוגדרי� שה� החלק"כפי י

החוקי� של המשתמש).'וכו,NP,Sכגו�(המבני של בקשה בעקבות רק מוצג הגזירה .ע�

הפונקציונלי• תכוניות במשוואות,)f-structure(מבנה המוגדרי� למסלולי� המתייחסתכוניות על השימוש.ומצביעי� ואופ� התכוניות של המוב� לגבי חופש מאפשר הפורמליז�

בד,בה� תפקידי�כ"א� בעזרת� נושא,תמטיי� תחביריי�)functions(נייצג ,נשוא/כגו�

המבני"וכיו,יחסות הגזירה בע� ביטוי לה� שאי� המשפט.ב ראש של התכוניות )S(מבנהמקרה בכל .מוצג

ביניי� קבצי

המבני:>name>.tabהקוב�.1 לחלק הדקדוק)CFG(מתייחס בתהלי�.של נוצר

שלהקומפילצ בעתיד>name>.graיה �נוס לשימוש הדיסק על שלושה.ונשמר מכיל

פקודת,חלקי� היא מה� אחד פנימי,LISPשלsetqשכל משתנה :המגדירה

*gg*הדקדוק של המבנה הפנימיי�,חוקי .ושמותיה�

*a-tab*השמאלי טבלת)actions/פעולות(החלק המתאימהshift-reduceשל

בטכניקת(קלדקדו משתמשת Generalizedהתוכנה LRהמבנילחלקהדקדוק חסריה�של .)הקשרהחוקי�

*g-tab*הימני טבלת)goto/מעברי�(החלק .shift-reduceשל

שלLISPפונקציות:>name>.funהקוב�.2 הקומפילציה בתהלי� >name>.graהנוצרות

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

:לדוגמה

.....

(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וב הק.3 של טעינה בכל מחדש הנוצר פנימי את,קוב� ומכיל

הניתוח מהדקדוק)LISPבשפת(תוכנת לעבודה,שנבנתה מוכ� .במצב

Page 8: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

8 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

נוספי�.4 עזר אמצעי

גלובליי� פרמטרי�

מסוימת בריצה המנתח התנהגות על .משפיעי�

ע מחדל ברירות לשנות פקודת"נית� LISP:(setqלשsetqי variable value)

1.*max-ambiguity-display*

רב של במקרה שיוצגו ניתוחי� של המירבי .(ambiguity)משמעות�המספרהמחדל .3:ברירת

2.*ignore-space*

t=ת בסיס על ולנתחו במשפט מרווחי� להתעל� לעברית(וי�ויש לגרו�,נוח עשוי א�

מדומ�רב pogesh:למשל;המשמעות et = pogeshet.(

nil=מילה ברמת ).לאנגלית,למשל,מתאי�(עבודההמילוני ההגדרה אופ� על משפיע אינו זה רווחי�,פרמטר מחויבי� .ש�

המחדל .t:ברירת

3.*recover-from-failure*

t=בניתוח מכשלו� להחל� ינסה .המנתח

nil=כשלו בעת יופסק מתאי�,�הניתוח פלט הניפוי(ויופק לשלב ).נוח

המחדל .t:ברירת

4.*wild-card-character*המציי� קלט,"וקר'ג"התו כל ע� שוויו� .ומקיי�

המחדל %.ברירת :

5.*unification-mode*

pseudo=המערכת של הטבעית במתכונת פסאודו,עבודה .האחדה�בשיטת

full=הא במתכונת טהורהעבודה ההאחדה.חדה בתהלי� להבדלי� �אי�fullבמצב,בנוס

הייחודיות בפונקציות ערכי�(תמיכה של ומחיקה קיו�,דריסה ,c=התניית,בדיקות

*NOT*,"ל,"וקר'ג ).�LISPוקריאה

המחדל .pseudo:ברירת

ניפוי )debugging(אמצעי

•dmode

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

(dmode המחדל(0 הניתוח–ברירת תהלי� לגבי בסיסי .פלט

(dmode על(1 שהופעלו והחוקי� הקלט קטעי יוצגו בה��בפלט השימוש סדר .פי

(dmode שנוס"כנ(2 חוקי� של הצגה בתוספת הניתוחל במהל� ונכשלו .ו

קומפילציה לאחר הדקדוק בקוב� חוקי� ומספרי פונקציות שמות ג� .מוצגי�

Page 9: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

9 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

•trace

לפונקציות קריאות על מעקב קומפילציהLISPמאפשר שעבר הדקדוק את המרכיבות

בקוב�( שהוע,)>name>.funונמצאות הערכי� הצגת והוחזרוכולל .ברו

trace):דוגמה lomedf-7)

•disp-node-value

ל disp-node-value)�קריאה n)הרכיב ש� את בצומת)קטגוריה(תציג ערכי,nהנמצאבניו ושמות .תכוניותיו

•disp-nodes

הצמת כל בניה�רשימת ע� .י�

•disp-def

חוק של מקורית בהגדרה במצב,עיו� תצוגתו dmode)לפי 2).

disp-def):דוגמה "lomedf" 52)

•disp-tree

ל הגזירה(disp-tree)�קריאה ע� את תציג משפט ניתוח רקברי(לאחר להציג היא המחדל רתהתכוניות מבנה שלה�).את פנימי ספרור יופיע הרכיבי� שמות .בצד

ל disp-tree)�קריאה n)תת את רק הצומת�תציג שתחת .nהע�

disp-treeאחד ע� רק רב.מציג של הנוספי��במקרי� העצי� את לקבל אפשר משמעות

disp-tree)י"ע n),באשרnנבחר במצבהרצוי הפלט dmode)מתצוגת מהתשובה(2 או

.(disp-nodes)�ל

Page 10: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

10 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

מקרוס

חוזרות תבניות של מקוצר לכתיב נוח מילוניות.אמצעי להגדרות במיוחד :שימושי

דוגמת,למשל חוקי� על דומי� רבי� תואר שמות עבור לחזור :במקו�

(<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)

.'וכו

Page 11: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

11 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

פשוטה gra.lomedהדקדוק:דוגמה

(<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* לומד) הדני

Page 12: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

12 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

ע� ריצה gra.lomedתדפיס

> 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

Page 13: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

13 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

*** 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

;**** ambiguity 1 *** ניתוחי�:קרי דווקא,מספר !משמעות�רבלאו

((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

Page 14: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

14 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

> (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)

Page 15: rimon/ugtomita.pdf · 2005-10-06 · 1 2 . 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:

15 ל חישובית“קורסתקציר לבלשנות רימו�.מ”מבוא

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)