רובוט דובר עברית

רובוט דובר עברית

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

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

vinney

Well-known member
לא דיברתי סתם

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

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

ddalus

New member
כמה הבהרות נחוצות

קודם כל, על אינשטיין אף פעם לא צחקו - די מהר אחרי שהוא פרסם את המאמרים שלו הוא כבר הפך לסלבריטי. אם כבר, הוא *עצמו* התכחש לאמיתות של אחד התחומים שהוא המציא (תורת הקוונטים)... אבל לענייננו: אני חושב ש"אדם אוהב וחושב" פשוט לא מודע למשמעות של מה שהוא אומר, וכאן נמצא הכשל - בחוסר הכרותו על מושגי יסוד בתורת החישוביות והסיבוכיות. אף על פי כן, לא צריך לזלזל מראש. צריך לקחת בחשבון שכל הבעיות שאנחנו יודעים לפתור היום - בין אם מדובר על הפיתרון של 4+5 בבדידים, או חישוב כפל של מספרים ענקיים ביעילות, או מציאת מסלול קצר ביותר *בקירוב* בין 2 קודקודי גרף - היו בלתי פתירות עד לרגע שמישהו הראה איך בכל זאת לעשות את זה... בואו נסביר מה בעצם הבעיה כאן, במילים פשוטות, ולמה הקושי *בינתיים* הוא לא *דעה* אלא *עובדה* מתמטית מוצקה. הרעיון של "אדם אוהב וחושב" הוא כזה: 1. המפעיל מדבר ל"רובוט" (לצורך העניין, מחשב-על ללא מגבלות משאבים, עם מיקרופון), גלי הקול עוברים דרך האוויר ומגיעים אל המחשב 2. המחשב מעבד את גלי הקול למידע דיגיטלי גולמי 3. המחשב הופך את המידע הגולמי הזה למשפט טקסטואלי 4. המחשב מנתח את המשפט והופך אותו לרשימה של רכיבי שפה (עברית), כמו נושא, נשוא, פועל, אותיות/מילות חיבור סינטקטי, וכו' 5. המחשב משווה את המשפט המפוענח לאוסף חוקים נתון ו"מבין" מה המפעיל אמר לו לעשות ראשית, החלק הקל: שלבים 1 ו-5 לא דורשים שום דבר חוץ מדמיון בסיסי, ושלב 2 כבר קיים היום (למרות שבפירוש נשאר עדיין מקום לשיפורים בעלי אופי מתמטי מופשט ומסובך בתחום זה). שלב 3 הוא מה ש"אדם אוהב וחושב" משאיר ל"חברת רובוטים" ובעצם לא מתעסק איתו. עצם האקט הזה הוא התעלמות מן הבלתי-אפשרי, והמחקר כיום מנסה כמה שיותר לדלג על שלב 3, להעלים אותו, ולא להנציח אותו. במילים אחרות, גם אם תוכל לפתור את שלב 4 באופן מושלם, עדיין אין שום צל של סיכוי שתמצא חברה שתצליח לבצע את שלב 3. אמנם קיימים באופן עקרוני מוצרים ש*מתיימרים* לבצע אותו - אבל הם עושים זאת בצורה חלקית ולא טובה (בלשון המעטה). המגבלה היסודית ששלב 3 מציב היא יותר מדי חזקה, ואי אפשר להתמודד אפילו עם דברים בנאליים כמו טיפול במבטא של אנשים שונים, בליעת צלילים... והבעיה הכי קשה - מילים עם צליל זהה אך עם כתיב/משמעות שונים! שלב 4... לשם הפשטות, בואו נתעלם לרגע משלב 3 ונניח שאנחנו משתמשים בטכנולוגיית DSR נתונה כדי להפוך גלי קול דיגיטליים ישירות לרשימה של רכיבי דיבור. מדובר בתחום שנמצא על סף פריצה, אך בהחלט עוד לא הגיע אליה, למרות שזה כבר היה אמור לקרות. אז מה הבעייתיות שבו בעצם? התחביר של שפה טבעית (עברית לצורך העניין) הוא באופן מהותי לא-דטרמיניסטי. קיימים משפטים רבים שניתן לתרגם ביותר מצורה אחת, וכדי להתגבר על המכשול הזה צריך להשתמש בטקטיקה הסתברותית (במובן מסויים) כדי להחליט איזה מן סוג של מילה מתאים לאוסף צלילים שקלטנו. כדי לעשות זאת אמנם צריך מילון של השפה - אבל אתה טועה באופן יסודי כאשר אתה מניח שהמילון הוא גרעין הבעיה, כאשר בעצם הוא רק ההתחלה. מה שהרבה יותר מסובך זה להגדיר באופן מדוייק *וממצה* את התחביר של השפה העברית, ולא את אוצר המילים שלה. כל אפשרות לחיבור בין מילים, כל אפשרות לשינוי המשמעות של מילה והפיכתה למשהו אחר (ריבוי למשל, ותוספיות אחרות), כל מבנה חוקי של משפט וגם כל המקרים יוצאי הדופן שקיימים בשפה. אבל נניח שאתה מתבסס על מחקרים קיימים שמתארים דיקדוק בסיסי של השפה העברית - ואכן יש כאלה. כבר הגבלת את הפרוייקט לחלק מאוד מצומצם וקטן של השפה העברית, בניגוד מוחלט לדיבור טבעי, ובכל זאת נגיד שזה מקובל עליך... איך בעצם תממש את ההשוואה של האותות הדיגיטליים (או הטקסט, או כל דבר אחר) לחוקי הדיקדוק הללו? אני לא מתכוון לשאלות "באיזה שפת תכנות", "באילו מבני נתונים" וכו', אלא לאלגוריתם, לשיטת הפיתרון. בדיוק כאן נעוצה הבעיה שבגללה כל העונים פיקפקו בכך שתצליח. הבעיה הזו, כפי שהיא מוגדרת כיום, לא ניתנת לפיתרון בזמן *סביר* (לצורך הדיון, זמן לא סביר יכול להיות שנה לכל משפט, סתם בחירה שרירותית). קיימת לכך הוכחה מתמטית מאוד חד משמעית. היסוד המתמטי הוא מוצק עד כדי כך שקיימת גם הוכחה שכל מודל חישובי אחר שתנסה להגדיר, שונה ככל שתרצה, הוא בעל כוח חישובי זהה, ולכן הוא ייתקל באותן בעיות בדיוק. אין לי מספיק זמן כרגע כדי להכנס לפרטים, אבל אם מישהו יאות להמשיך ולהסביר את המושגים מאחורי המחלקות CFL, NFA ו-REG... אולי את תיזת צ'רץ'-טיורינג בשביל בונוס... מישהו? לבסוף, רק בשביל הפלפל: השאלה המתבקשת היא איך בכל זאת ניתן לפתור ביעילות בעיות שפעם חשבנו שהן בלתי פתירות בזמן סביר? התשובה לכך פשוטה: אפשר למצוא שיטת חישוב מקבילה וטובה יותר (עם שלבים שונים שכל אחד מהם יותר יעיל), או לשנות את נתוני הבעיה, או להניח מספר הנחות מקילות - וכך אנו בעצם מגדירים בעיה אחרת לגמרי, שעבורה יתכן פיתרון יעיל, למרות שהיא שונה ממש במעט מן הבעיה המקורית.
 
מה לגבי Voice Recognition?

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

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

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

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

vinney

Well-known member
הבעיה היא

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

ddalus

New member
אה! אם ככה אז אין שום בעיה... ../images/Emo13.gif

אבל חשוב לציין שהיסוד התיאורטי של הרעיון שלך כבר פותח במאה ה-19, ע"י ברנש בשם ג'ורג' בול, ויושם כבר לפני 60-70 שנה ע"י קלוד שאנון, אבי תורת האינפורמציה, וגם נזנח (בנוגע לניתוח שפות) אי שם באמצע המאה ה-20 (אבל מצד שני הפך לכלי מתמטי/טכנולוגי בסיסי וקריטי!). והמידע הזה דווקא מאוד רלוונטי למי ששואף לדוקטורט בפילוסופיה, כפי שכתבת... גם בגלל שדיברתי על אלגברה בוליאנית, וגם בהתחשב במגמות השולטות בפילוסופיה המודרנית מאז ויטגנשטיין. בהצלחה!
 

vinney

Well-known member
בסלולרי זה משהו אחר לגמרי

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

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

vinney

Well-known member
המחשב זה לא "כמו אדם"

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