נקדן

randomalia

New member
נקדן

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

ברנדל

New member
בטכנולוגיה של היום, זו משימה בלתי אפשרית.

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

"שמור לי את הכסא" לעומת "הכסא שמור לי"
"היה היה מלך" לעומת "הוא מלך שנים רבות"
"תן לי את הספר" לעומת "תן ילל ביער"

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

randomalia

New member
תגובה

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

nocgod

New member
כדי להביא ניקוד נכון בהקשר לקונטקסט

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

פרסאוס

New member
המחשב לא צריך להבין אותו ברמה האנושית

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

freak2100

New member
מה שהיא שאלה

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

פרסאוס

New member
גם בנאדם לא יעשה את זה ב 100% הצלחה

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

nocgod

New member
אחת המרצות שלי

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

פרסאוס

New member
זה רחוק. לא דובר על משהו ברמה הזו

אלא על אפשרויות ניקוד למילים קיימות.
בויקי יש דוגמא טובה:
"נתנו לקופים את התפוזים משום שהם היו רעבים", ו"נתנו לקופים את התפוזים משום שהם היו רקובים".
למחשב יהיה קשה להבין את תכליתה של המילה "הם" כפי הנראה, אבל לנקד את המילים יהיה קל בהרבה.
אני לא יודע אם תהיה הצלחה ברמה של 100%, אבל לרמה של 90-95% אני מאמין שאפשר להגיע בניקוד.
הכוונה הייתה לגבי הניקוד ולא לגבי הבנה אנושית של משפט.
 

nocgod

New member
אני מסכים שלנקד הרבה יותר קל מ"להבין"

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

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

freak2100

New member
לגבי הקושי...

בעקרון, ברנדל, אתה צודק, היום לא יודעים להגיע ל-100%
מצד שני, אני יכול להגיד לך שהיה לי מרצה לבלשנות חישובית (פרופ' עוזי אורנן, הוא שם ידוע בתחום), שהראה לנו שהוא יצר תוכנה שמקריאה טקסטים
הוא אמר שהקושי העיקרי בלכתוב תוכנה כזו הוא לבחור את הניקוד הנכון למילה, כי אם היה לך את הניקוד הנכון נתון פשוט היית צריך לעבור על המילה ולהשמיע את ההבהרות, וזה קלי קלות
עכשיו, הוא עשה עבודה שבה הוא הסתמך רק על כללי הסינטקטיקה, עוד לא על סמנטיקה. זאת אומרת, לזהות איך המשפט מסתדר מבחינת נושא-נשוא, ככה שאין יותר מנשוא אחד (בצורה מאוד מאוד מופשטת - אין יותר מפועל אחד), אין יותר מנושא אחד (יותר משם עצם אחד, נניח) וכן הלאה. זה גם עסק לא פשוט, בשביל זה הוא פרופסור לבלשנות בכלל ובלשנות חישובית בפרט, אבל הוא אמר שאם לא מתייחסים לסמנטיקה (למשל, דוגמה שהוא נוהג להשתמש בה: "האריה דלק אחרי הגדי". "דלק" זה "רדף", ולכן המשמעות של המשפט היא שהאריה רדף אחרי הגדי. אבל "דלק" זה גם ממשמעות "נשרף", ו-"אחרי" יכול להיות גם תיאור זמן, זאת אומרת שהגדי נשרף, ובמשפט הזה אומרים שאחריו האריה נשרף), זה עושה את החיים יותר פשוטים.
שימוש בסינטקטיקה בלבד (שהוא, שוב, ממש ממש לא קל) לא מחזיר 100% נכונות, אבל נותן אחוזים יפים (נדמה לי שהוא דיבר על איזור ה-80%, אבל אל תתפסו אותי במילה, עברו איזה 4 שנים מאז...)
 

randomalia

New member
אז לא הבנתי את השורה התחתונה

בשביל לכתוב תוכנה שאדם מכניס לתוכה מילה (או משפט) ונותן את כל אפשרויות הניקוד של אותה מילה, מה צריך לעשות?
 

ברנדל

New member
לא הבנת את התשובה כי אנחנו לא הבנו את השאלה.

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

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

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

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

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

freak2100

New member
אני חושב שמה שהוא התכוון זה הרבה יותר פשוט.

חוץ מזה שלא הבנתי את המשפט "ראיתי שתי מלכות"

אני חושב שמה שהוא התכוון זה כמו ה-T9 לטלפון. זאת אומרת, אתה מסמן את המילה "אשר", והתוכנה נותנת לך את כל האפשרויות לניקוד:
אֹשֶׁר
אֲשֶׁר
אִשֵּׁר
אֻשַּׁר
אָשֵׁר
(במקרה הזה השתמשתי בויקימילון בשביל למצוא את כל הניקודים האפשריים)
ואז אתה בוחר, ולא התוכנה בוחרת בשבילך.
בשביל זה כל מה שצריך זה מאגר מילים (או נניח להתממשק לויקימילון, אבל לא בטוח עד כמה הוא מלא, ולא בטוח שהוא יודע הטיות, שזה סיפור בפני עצמו - אפשר או להכניס למאגר את כל ההטיות של כל מילה, או שאפשר ליצור מנגנון הטיות אוטומטי, אבל זה ממש מסובך).

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

הכל שאלה של:
1. באיזו מסגרת אתה עושה את זה?
2. מה הדרישות?
3. כמה אתה יכול \ מוכן להשקיע?
4. מה הידע שלך, ומה המשאבים העומדים לרשותך?
 

randomalia

New member
אכן לאפשרות הראשונה התכוונתי

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

אני פשוט רוצה לדעת אם אני צריכה ידנית ליצור מאגר כזה (על כל מילה אפשרית להכניס את כל הניקוד האפשרי שלה) או שאני יכולה לשלוף נתונים מאיזשהו מאגר קיים או שאני צריכה לכתוב קוד שיגנרץ ניקוד (נשמע שלא מהתשובות).
 

nocgod

New member
לעשות ידנית

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

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

אiהד

New member
גם אם אין מאגר קיים

אפשר לקחת כמות מכובדת של טקסט מנוקד ולמיין אותו
 
למעלה