התוכנה
הרצת התוכנה

 

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

מנתח צורני הסתברותי תחבירי - תיעוד התוכנה

כללי

באריזה זו  נמצאים כל הקבצים הדרושים לקומפילציה ולהרצה של המנתח הצורני. כל הקבצים הם קבצי טקסט. האריזה נוצרה על מחשב PC. לכן, כדי להתאים את הקבצים לעבודה על UNIX, יש להוריד מהם את תווי סוף-השורה. ניתן לבצע זאת באופן אוטומטי אם פותחים את האריזה בעזרת הפקודה unzip -aa (לפרטים נוספים: man unzip).

האריזה כוללת שלוש תוכניות:

  • התכנית mc.exe היא מנתח צורני -- ללא הסתברות וללא הקשר (הוא רק מחזיר עבור כל מילה את כל הניתוחים האפשריים עבורה).
  • התכנית mch.exe היא מנתח צורני הסתברותי שמשתמש בפקודות תיקון, כלומר -- שלב המחרוזת ושלב הזוג (הוא מנתח קבצי טקסט שלמים).
  • התכנית mcht.exe היא מנתח צורני הסתברותי תחבירי, כלומר -- שלב המחרוזת, שלב הזוג ושלב המשפט.

תקציר על הקבצים

  • הקבצים cpp/cpplib/*.cpp, cpp/cpplib/*.h הם קבצי-מקור כלליים, שלא קשורים לשפות טבעיות.
  • הקבצים cpp/morph/*.cpp, cpp/morph/*.h הם קבצי-מקור שקשורים לניתוח צורני ותחבירי.
  • הקבצים hmntx/milon/*.ma הם קבצי המילון, הדרושים להרצת המנתחים הצורניים. הסבר על המילון
  • הקבצים hmntx/tqstim/*.txt הם קבצי טקסט שעליהם מתבצע הניתוח. הסבר על הטקסטים
  • הקבצים hmntx/tqstim/*.to הם קבצים שכוללים את הניתוח הנכון לחלק מקבצי הטקסט. הסבר על הניתוח
  • הקבצים hmntx/tqstim/*.nts הם קבצי-פלט של שלב המילה (הם נשמרים כדי שלא יהיה צורך להריץ את שלב המילה בכל פעם מחדש).
  • הקובץ hmntx/makefile הוא קובץ יצירה עבור התוכניות.
  • הקובץ hmntx/hmntx.dsw הוא קובץ סביבת-עבודה עבור Microsoft Visual Studio 6.0. הקבצים hmntx/*.dsp הם קבצי פרוייקט המשמשים לבניית הפרוייקט על Windows.
  • הקבצים hmntx/*.mca הם קבצי הגדרות עבור התוכנה. הסבר על קבצי ההגדרות

בניית התוכניות

על unix

יש להיכנס למדור hmntx ולכתוב: make [name].exe כאשר [name] הוא שם התוכנית. אפשר גם לכתוב make all או make כדי לבנות את שלוש התכניות.

על windows

יש לפתוח את הקובץ hmntx.dsw בMicrosoft Visual Studio, לבחור את התוכנית שרוצים לבנות, ובתפריט לבחור Build -> Build.

על הרצת המנתח ניתן לקרוא כאן.

פירוט הקבצים

אין תיעוד מפורט לתוכנה כולה, אך יש תיעוד ישן לחלק מהתוכנה (עד שלב המילה). ניתן להוריד אותו כאן.


כדי ליצור את המנתח הצורני שלא תלוי בהקשר (mc.exe) -- דרושים הקבצים (cpp) הבאים:

  1. קבצים שנמצאים בספריה cpplib (לא קשורים לשפות-טבעיות):
    • klli1.cpp -- שגרות-עזר כלליות
    • cmdline1.cpp -- שגרות-עזר לטיפול בשורת הפקודה
    • ui.cpp -- שגרות-עזר למנשק-משתמש בדו"ס
    • stringt.cpp -- שגרות-עזר לטיפול במחרוזות
  2. קבצים שנמצאים בספריה morph:
    • morphtyp.cpp -- הגדרת סוגים מורפולוגיים -- חלק-דיבר, מין, מספר וכו'
    • morphinf.cpp -- הגדרת המבנים שמייצגים ניתוח צורני של מילה אחת (MorphInfoBasic -- בלי ערך-מילוני; MorphInfo -- עם ערך מילוני).
    • tavnit.cpp -- הגדרת "תבנית-מילה", מבנה שמשמש לזיהוי תבניות במחרוזות.
    • morphtav.cpp -- הגדרת תבניות-המילה שמשמשות את המנתח שלנו.
    • lexinf.cpp -- הגדרת סוגים שקשורים למידע-מילוני (המידע שצריך להיות כתוב במילון על כל מילה).
    • lexicon.cpp -- הגדרת המילון שמשמש את המנתח שלנו.
    • morphanl.cpp -- הגדרת המנתח הצורני.
    • morphanl.test.cpp -- התוכנית הראשית. זוהי תכנית-דוגמא שמאפשרת לכתוב מילה ולקבל את כל הניתוחים הצורניים האפשריים עבורה.

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


כדי ליצור את המנתח הצורני ההסתברותי (mch.exe) דרושים, בנוסף לקבצים הנ"ל, גם הקבצים הבאים:

    • morphsik.cpp -- מבנה שמכיל את כל הניתוחים האפשריים למילה אחת, עם "סיכוי" שמותאם לכל ניתוח.
    • morphst2.cpp -- מבנה שמכיל את כל הניתוחים האפשריים לכל המילים, עם "סיכוי" שמותאם לכל ניתוח.
    • mone-nit.cpp -- מונה ניתוחים, לצורך חישוב ההסתברות של כל ניתוח.
    • cpplib/wordcnt.cpp -- מונה מילים שלמות, כנ"ל.
    • bw2fw.cpp -- מבנה שמתאים כל ערך מילוני לכל המילים השלמות שנגזרות ממנו.
    • similar.cpp -- יחידה שמגדירה את מושג ה'דמיון' בין מילים, עבור חישובים סטטיסטיים.
    • alghist.cpp -- אלגוריתם לחישוב ההסתברות של כל ניתוח (בלי הקשר).
    • mip.cpp -- תבנית של מידע צורני של מילה
    • tiqun3.cpp -- יחידה ללימוד של פקודות-תיקון ולשימוש בהן (כדי לתקן את הניתוח של מילה ע"פ המילה שלפניה והמילה שאחריה)
    • corpus.cpp -- מבנה לאחסון וניתוח טקסטים
    • sntncinf.cpp -- מבנה לאחסון וניתוח משפטים
    • morphui.cpp -- יחידה לקריאת ניתוח-צורני של מילה מהמקלדת
    • hpmaio.cpp -- יחידת ק"פ של התכנית הראשית
    • hpmamain.cpp -- עוד יחידת עזר של התכנית הראשית
    • addlex.cpp -- שגרות שקשורות להוספת מילים חדשות למילון (לא מתועד)
    • MntxCurniHstbruti.main.cpp -- התכנית הראשית, כוללת גם את מנשק-המשתמש.

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

    • soi.cpp -- מבנה-עזר למנתח התחבירי ההסתברותי.
    • cimcumim.cpp -- קובץ שמגדיר חוקי-צמצום תחביריים -- צמצום של כמה רכיבים לרכיב אחד.
    • sa-aux.h -- המנתח התחבירי
    • sntncas.cpp -- המנתח התחבירי ההסתברותי: מנסה למצוא את הניתוח הסביר ביותר למשפט בעזרת ניתוח-תחבירי שטחי.
    • MntxCurniHstbrutiTxbiri.main.cpp -- תוכנית ראשית שכוללת ניתוח תחבירי (קצת יותר מסובכת מהקודמת).

Hebrew Probabilistic Morphological Analyzer -- The Software

General

This zipfile contains all files needed for compiling and running the probabilistic morphological analyzer. All files are text files for PC. In order to compile on Unix, you should clean them of the "Line Feed" (^M) characters. You can do this automatically using the command unzip -aa. (for more info: man unzip ).

The zipfile includes three different programs:

  • mc.exe -- a basic morphological analyzer, which returns for each input word the set of all its morphological analyses.
  • mch.exe -- a probabilistic morphological analyzer with correction rules (i.e.: the word-token phase and the word-pair phase). It can analyze entire articles with or without supervision.
  • mcht.exe -- an extension of mch.exe, that uses syntactic rules (i.e.: the word-token phase, the word-pair phase and the sentence phase).

File summary

  • The files cpp/cpplib/*.cpp and cpp/cpplib/*.h are general source files, not related to natural languages.
  • > The files cpp/morph/*.cpp and cpp/morph/*.h are source files, related to morphological and syntactical analysis.
  • The files hmntx/milon/*.ma are the lexicon data files.
  • The files hmntx/tqstim/*.txt are the input text files.
  • The files hmntx/tqstim/*.to are the correct analysis files.
  • The files hmntx/tqstim/*.nts are output files of the word-token phase. They are kept here to save time.
  • > The file hmntx/makefile is the makefile for all programs.
  • The file hmntx/hmntx.dsw is a workspace file for Microsoft Visual Studio 6.0. The files  hmntx/hmntx.dsp are project files for building the projects on a Windows system.
  • The files hmntx/*.mca are argument files for running the programs.

Making the programs

On Unix

change to directory "hmntx", and write make [name].exe where [name] is the program name. You can also write make or make all to make all three programs.

On Windows

Open the file hmntx.dsw with Microsoft Visual Studio 6.0, choose the program you wish to build, and choose menu Build -> Build. Read here about running the analyzer.

File detail

Curently there is no full documentation for the entire software. There are only several old files that document the basic morphological analyzer and the word-token phase. They can be downloaded here.

 


 

This page should be viewed using Microsoft Internet Explorer 4+, with  Hebrew support. If you don't have Hebrew support, or don't read Hebrew, you can read a partial  English translation here.

כתובת האתר: http://www.cs.technion.ac.il/~erelsgl/bxi/hmntx/teud_tokna.html

להערות ותגובות: erelsgl @ cs . technion . ac . il