זיהוי שפה טבעית Natural Language Detection מורן תמר

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

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

עמוד 1 מתוך 5 יוחאי אלדור, סטטיסטיקאי סטטיסטיקה תיאורית + לוחות שכיחות בדידים/רציפים בגדול מקצוע הסטטיסטיקה נחלק ל- 2 תחומים עיקריים- סטט

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

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

Microsoft Word - ex04ans.docx

תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה

שעור 6

פייתון

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

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

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63>

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

מתמטיקה של מערכות

Algorithms Tirgul 1

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

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

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

" תלמידים מלמדים תלמידים."

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

מבנים בדידים וקומבינטוריקה סמסטר אביב תשע"ט מספרי רמזי תרגול 11 הגדרה: (t R = R(s, הוא המספר הטבעי הקטן ביותר כך שבכל צביעה של צלעות הגרף וכחול(, קיים

מוזיקה סינטטית

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

ע 003 מרץ 10 מועד מיוחד פתרונות עפר

Tutorial 11

PowerPoint Presentation

<4D F736F F D20F4E9E6E9F7E420FAF8E2E5ED20ECF2E1F8E9FA20E4E2E4E420F1E5F4E9FA20496C616E2E646F63>

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

Slide 1

מטלת מנחה (ממ"ן) 11 הקורס: חשבון אינפיניטסימלי II חומר הלימוד למטלה: יחידות 2,1 4 מספר השאלות: 7 משקל המטלה: נקודות סמסטר: ב 2007 מו

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

תכנות דינמי פרק 6, סעיפים 1-6, ב- Kleinberg/Tardos סכום חלקי מרחק עריכה הרעיון: במקום להרחיב פתרון חלקי יחיד בכל צעד, נרחיב כמה פתרונות אפשריים וניקח

תיק משימטיקה מגרף הנגזרת לגרף הפונקציה להנגשה פרטנית נא לפנות: כל הזכויות שמורות

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

שיעור 1

PRESENTATION NAME

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

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

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

הכרת משאבי הספרייה קורס מקוון חיפוש במאגרי המידע ו- PubMed Biosis Previews, Zoological Record )לתלמידי החוג למדעי החיים( (Biosis Previews:

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

עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות

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

Microsoft Word - Sol_Moedb10-1-2,4

Microsoft Word - ExamA_Final_Solution.docx

מקביליות

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

. שאלה 1: ה אי x] T : R 4[ x] R 4[ אופרטור ליניארי מוגדר על-ידי T( ax bx cx d) bx ax cx c )13 נק'( א( מצאו את הערכים העצמיים, המרחבים העצמיים

Microsoft Word - Questions Booklet Spring 2009

1 בגרות עח יולי 18 מועד קיץ ב שאלון x b 2 2 y x 6x שיעור ה- א x לכן, של קדקוד הפרבולה, ו-, מתקבל על ידי הנוסחה a. C(3, 9) ובהתאם, y. (3, 9) 2 C

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

ISI

תרגול 1

בגרות עז יולי 17 מועד קיץ ב שאלון ,000 א. ניתוח הנתונים מחירה של ספה הוא שקלים, והיא התייקרה ב-. 25% כאשר המחיר מתייקר ב- המחיר החדש הוא פי,

. [1,3] ו = 0 f(3) f(1) = עמוד 1 מתוך 6 דר' ז. אולחא מס' הקורס 9711 חדו''א הנ מכונות 1 f ( x) = ( x 1)( x 2)( x 3) c= f c = c (1,3), c תשובות I 1) פונ

שיעור מס' 6 – סבולות ואפיצויות

אנליזה מתקדמת

מבוא לאנליזה נומרית na191 Assignment 2 solution - Finding Roots of Nonlinear Equations y cos(x) שאלה 1 היכן נחתכים הגרפים של? y x 3 1 ושל ממש פתרונות

Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה

סז 002 נואר 07 מועד חורף פתרונות עפר

Microsoft Word - 01 difernziali razionalit

עב 001 ינואר 12 מועד חורף פתרונות עפר

פתרונות לדף מס' 5

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

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

מקביליות

מקביליות

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

התפלגות נורמלית מחודש

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

Microsoft Word - hedva 806-pitronot-2011.doc

יחידה 8: שיקוף, הרחבה וכיווץ של פרבולות שיעור 1. שיקוף בציר x תלמידים התבקשו לשרטט פרבולה שכל הערכים שלה שליליים. y יואב ש רטט כך: y תומר אמר: אי-אפשר

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

הגשה תוך שבוע בשעת התרגול

פתרון וחקירת מערכות של משוואות לינאריות שאלות: 1( מצא אילו מהמערכות הבאות הן מערכות שקולות: 2x+ y= 4 x+ y= 3 x y = 0 2x+ y = 3 x+ 10y= 11 א. 2x 2y= 0

SFP6603NRE Dolce Stil Novo תנור פירוליטי 60 ס"מ, זכוכית שחורה +A דרגת אנרגיה EAN13: רכיבים בגימור נחושת פונקציות בישול 10 פונקציות ניקוי

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

אחריות קבוצתית

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

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

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

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

Limit

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

Microsoft Word - tik latalmid-final

תאריך הבחינה 30

DCA & A/B Testing

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

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

מטלת סיום שם הקורס: מורי מורים "עברית על הרצף" מוגשת ל- ד"ר האני מוסא תאריך הגשה: מגישה: זייד עביר יסודי ספר בית קחאוש אלפחם אום 1

Microsoft Word - Ass1Bgu2019b_java docx

Microsoft Word - c_SimA_MoedA2006.doc

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

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

. m most לכל אורך השאלה, במקרה של כוח חיכוך: = 0.01 [kg]; μ א. נתון: = 0.1 k f k = μ k N = μ k mg a = μ k g תור ראשון: לאחר שג'וני גלגל את הגולה הראשו

מועד: א בחינה סופית במתמטיקה דיסקרטית משך הבחינה: 2 1 שעות מרצה: פרופ' תאופיק מנסור תאריך: סמסטר: א תשע"ח m 2 הוראות לנבחן: )1( הבחינה מו

מדריך לחיפוש במאגר JCR Journal Citation Reports מעודכן לדצמבר 2015 כל הזכויות שמורות לתחום היעץ, אוניברסיטת חיפה, הספריה

אשכול: מדעים וחברה לכיתה י'

תמליל:

זיהוי שפה טבעית Natural Language Detection מורן תמר

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

2 מבוא הרעיון לפרוייקט הגיע מתוך הממשק של.Google translate בממשק שלהם, מעל תיבת הטקסט אליה מכניסים את הטקסט אותו מעוניינים לתרגם, ישנה אפשרות "אתר שפה" (באנגלית:,(Detect language והאלגוריתם של גוגל מזהה את השפה של הטקסט שהוכנס ומתרגם אותו, בהצלחה מסויימת. למרות שמשימת התרגום האוטומטי מאתגרת לא פחות, החלטנו שאנחנו ננסה בפרוייקט לפתור את משימת זיהוי השפה. אלגוריתמים המזהים שפה שימושיים בעיקר עבור מנועי חיפוש, סינון ספאם ועוד. גישה טבעית לפתרון הבעיה היא באמצעות שיטות למידה מונחית learning),(supervised בהן אנחנו מקבלות טקסטים מתוייגים עם השפה בה הן נכתבו, ומתוך הדוגמאות לומדים פונקציית סיווג. לאחר מכן יש לבדוק את ביצועי האלגוריתם על טקסטים שהתיוג שלהם ידוע. בחרנו לתקוף את הבעיה בשתי שיטות הנכללות בקטגוריה של למידה מונחית, המתאימות לאופי הבעיה שלנו: באמצעות גישה סטטיסטית ובאמצעות עצי החלטה. החלטנו לצורכי הפרוייקט לבצע מספר הפשטות של הבעיה. החלטנו להתמקד בשפות שלהן א"ב לטיני, ובשפות אלה להתעלם מאותיות מיוחדות ומסימנים דיאקריטיים. כלומר, לכל השפות אותו א"ב לטיני בסיסי בעל 26 אותיות (התעלמנו מאותיות גדולות). תהליך צמצום זה מעלה את רמת הסיבוכיות של המשימה: לשפות מסויימות יש אותיות וסימנים ייחודיים לכן למידתם תהיה קלה וזיהויים יהיה יותר מהיר. אנחנו העדפנו להתמקד במקרה הבסיסי כדי להקטין את מבני הנתונים שלנו ואת זמן הלמידה, זאת כיוון שהאלגוריתמים שלנו מבוססים על הסתברויות של n-grams הסתברויות של מופעים של רצפי אותיות באורך n.

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

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

5 אלגוריתמים בחלק זה נפרט על האלגוריתמים השונים שהשתמשנו בהם בפרוייקט. 5.1 הגישה הסטטיסטית גישת למידה זו היא מאוד ישירה ופשוטה: השתמשנו רק בביגרמים (bigrams) כלומר חישבנו רק הסתברויות של מופעי זוגות אותיות. את ההסתברויות שחישבנו שמרנו במטריצה דו מימדית 27 על 27 כך שבמקום ה- ij מופיע ההסתברות שהאות ה j תופיע מיד אחרי האות ה i זהו הפרופיל של השפה. הסטטיסטיקה היא על 27 תווים: 26 אותיות לטיניות בסיסיות ועוד תו רווח. אחרי שלמדנו את הפרופיל של השפה, הלמידה התבצעה כך: בהינתן משפט, חישבנו את סטטיסטיקת הביגרמים שלו, כלומר את הפרופיל של השפה. כדי לסווג את השפה המתקבלת כקלט, נלמד את הפרופיל של טקסט הקלט ונבדוק לאילו מהשפות שלמדנו יש את הפרופיל הדומה ביותר. כדי להעריך דמיון בין פרופילים יש לכמת דמיון בין מטריצות. לשם כך השתמשנו בנורמת אינסוף של ההפרש בין מטריצות הפרופילים, כאשר נורמת האינסוף מוגדרת להיות המקסימום של השורה בה סכום האיברים בערך מוחלט הוא הגדול ביותר. פורמלית:. השתמשנו בנורמה זו כיוון שהשורות שלנו מייצגות את ההתפלגויות A =max 1 j n a ij m i =1 של האותיות השונות, בהינתן שראינו אות מסויימת. לכן, נגיד שפרופיל מסויים דומה לפרופיל שלמדנו אם ההפרש בין ההתפלגויות המותנות הללו הוא קטן. לכן נורמה זו היא הנורמה המתאימה במקרה שלנו. 5.2 עצי החלטה דרך נוספת ללמוד את השפה היא באמצעות עצי החלטה. עץ החלטה הוא מסווג שלומד את הפיצ'רים (תכונות) המשמעותיים של מה שאנחנו רוצים לסווג, ומייצג אותם בתור עץ. מבנה העץ הוא כזה, שבו כל קודקוד מייצג פיצ'ר מסויים, וכל צלע שיוצאת ממנו מייצגת ערך שאותו פיצ'ר יכול לקבל. צלע יכולה להוביל או לפיצ'ר אחר, או ללייבל מסויים. כאשר לומדים את העץ, אנחנו מנסים לבדוק באמצעות כלים יוריסטיים אילו מהפיצ'רים של הטקסט הם הפיצ'רים המשמעותיים, שהערכים שלהם מכריעים בצורה יחסית טובה איזה לייבל מתאים לטקסט אותו אנו רוצים לסווג. בשביל לבנות את עץ ההחלטה השתמשנו באלגוריתם האיטרטיבי,ID3 שהוא אחד האלגוריתמים הנפוצים המממשים עץ החלטה. האלגוריתם עובד כך: הקלט הוא טבלה המכילה שורות של פיצ'רים ולייבלים. בכל פעם בודקים לכל פיצ'ר מהי איכות הסיווג שלו, באמצעות פונקציית רווח שהוגדרה מראש ובוחרים בפיצ'ר שממקסם פונקציה זו. פיצ'ר זה יהיה השורש של העץ. לאחר מכן מפצלים את הטבלה לפי הערכים של הפיצ'ר הנבחר,

מוחקים את העמודה של הפיצ'ר הנבחר, ומריצים את האלגוריתם על כל תת טבלה שכזו באופן רקורסיבי. אם כל הלייבלים זהים, קובעים את הקודקוד להיות הלייבל שנשאר. אם לא נשארו פיצ'רים, ערך הלייבל יהיה הערך שמופיע הכי הרבה פעמים. מכיוון שפונקציית הרווח היא יוריסטית אנחנו ננסה להשתמש במספר פונקציות רווח שונות ולהשוות בין הביצועים שלהן. היתרון הגדול של אלגוריתם ללמידת עצי החלטה בו השתמשנו הוא שהוא מהיר יחסית ונותן תוצאות טובות. החיסרון שלו הוא שהעץ שהוא מחזיר נוטה להיות גדול מאוד ולהיות מוטה למדגם, כך שעלול להיווצר.overfiting כדי להימנע מבעיה זו בד"כ גוזמים את העץ אחרי שלומדים אותו. אנחנו לא גזמנו את העץ כיוון שרצינו להעריך את ביצועי פונקציות הרווח השונות, ופעולת הגיזום תפריע לבידוד התופעה שאנחנו מנסות להעריך. האתגר הגדול בפרוייקט שלנו היה להגדיר את בעיית זיהוי השפה במונחים שיאפשרו את פתרונה באמצעות אלגוריתמי עצי החלטה. במקרה שלנו, הלייבלים הם השפות שלמדנו והפיצ'רים הם הסטטיסטיקות או הפרופילים של השפה. את הסטטיסטיקות ביצענו לפי יוניגרמים (הסתברויות של מופעים של אותיות בודדות) ולפי ביגרמים (הסתברויות של זוגות אותיות). לא ביצענו סטטיסטיקות לפי אן-גרמים גדולים יותר כיוון שאז מספר הפיצ'רים גדול מאוד וזה מקשה מאוד על החישובים. עד כאן ההתאמה הייתה די מתבקשת. האתגר המרכזי היה להגדיר את ערכי הפיצ'רים (האן-גרמים). כאשר אנחנו לומדים את ההסתברויות של האן-גרמים בטקסט בשפה מסויימת, אנחנו מקבלים טבלה גדולה של ההסתברויות לכל אן-גרם. כדי להפעיל את האלגוריתם הבונה את עץ ההחלטה אנחנו צריכים בכל פעם למקסם איזשהו פונקציית רווח על ידי מעבר על כל ערכי הפיצ'רים. אבל במקרה שלנו ערכי הפיצ'רים הם הסתברויות של אן-גרמים, כלומר ערכים רציפים בין 0 ל 1, ולכן כאשר נעבור על ערכי הפיצ'ר השונים נצפה באופן כללי שמספר הערכים יהיה בערך כמספר השורות. עובדה זו מוציאה את הרוח מהמפרשים של האלגוריתם. כדי שבכל זאת נוכל להשתמש בלמידה באמצעות עצי החלטה, ביצענו דיסקרטיזציה של ההסתברויות, וכמובן האתגר הוא לנסות למצוא את החלוקה הטובה ביותר. עבור הסתברויות היוניגרמים, ביצענו את החלוקה וההתאמה למקטעים באופן הבא: הסתברות מקטע הסתברות 0.09-0.12 4 0-0.001 0.12-0.15 5 0.001-0.03 0.15-0.18 6 0.03-0.06 0.18-1 7 0.06-0.09 טבלה 1: פירוט המקטעים והסתברויות היוניגרמים המתאימות לכל מקטע. מקטע 0 1 2 3 עבור הסתברויות הביגרמים, ביצענו חלוקה מעט שונה. כיוון שיש הרבה יותר ביגרמים מאשר יוניגרמים,

ההסתברויות של הביגרמים יהיו הרבה יותר נמוכות. מצד שני יהיו ביגרמים שכמעט אף פעם לא יופיעו. לשם כך יש לבצע חלוקה יותר מעודנת. אחרי ניסוי וטעייה החלטנו להשתמש במקטעים הללו, אך את ערכי ההסתברויות לחלק פי 10, זאת כיוון שמספר הזוגות המשמעותיים שנוצרים במקרה הביגרמי גדל בערך פי 10. כלומר עבור הסתברויות הביגרמים ביצענו את החלוקה וההתאמה למקטעים באופן הבא: הסתברות מקטע הסתברות 0.009-0.012 4 0-0.0001 0.012-0.015 5 0.0001-0.003 0.015-0.018 6 0.003-0.006 0.018-1 7 0.006-0.009 טבלה 2: פירוט המקטעים והסתברויות הביגרמים המתאימות לכל מקטע. מקטע 0 1 2 3 לכן אחרי שנחשב את ההסתברויות של האן-גרמים של המשפטים, גם משפטי האימון וגם משפטי הערכה, נמפה אותם למקטעים לפי הטבלה. כעת יש לנו מספר ערכים סופי לכל פיצ'ר, וניתן לבנות מהנתונים את עץ ההחלטה. הרצנו את האלגוריתם ID3 עם פונקציות רוות משתנות. פונקציות הרווח בהן השתמשנו הן: Entropy,.Information gain, Information gain Ratio, Train error, Gini index כעת נסביר על כל אחת מפונקציות הרווח. Entropy 5.2.1. האנטרופיה היא מדד מתורת האינפורמציה המכמת את מידת אי הוודאות שלנו לגבי התפלגות נתונה. במקרה שלנו אנחנו עובדים עם התפלגות אמפירית בדידה של הסתברויות לשפה מסויימת, כלומר ההתפלגות היא על הלייבלים, וכמובן ההסתברויות נסכמות לאחד. האנטרופיה מוגדרת להיות: n H S =H p 1,..., p n = i=1 p i log 2 p i במקרה שלנו לחלק 6=n. אנחנו נשתמש בסימון S לציין את הטבלה שאנחנו עובדים איתה, ואת Ps להיות ההסתברויות של הטבלה, כלומר ההסתברויות יהיו מספר השורות שלהן לייבל מסויים (כלומר שפה מסויימת), במספר השורות בטבלה. כדי להעריך את מידת אי הודאות של פיצ'ר מסויים, אנחנו סוכמים את אי הוודאות של כל תת טבלה באופן הבא:. Entropy S, A = v Values A H S v Information gain 5.2.2

פונקציה זו מודדת את תוחלת ההפחתה באנטרופיה אחרי שבוחרים לפצל לפי פיצ'ר מסויים, כלומר: InformationGain S, A =H S v Values A S v S H S v כשאר הסימון S v מסמן את תת הטבלה שמתאימה לאחד מערכי הפיצ'ר, שמסומן באות A, ו- H היא פונקציית האנטרופיה ממקודם. פורמלית:. S v = {rows s S s.t. S A =v } אנחנו נרצה למקסם את הפחתת אי הוודאות, כלומר האנטרופיה. Information gain Ratio 5.2.3 פונקציה זו מהווה מעין הרחבה של הפונקציה הקודמת, כאשר קונסים פיצ'רים בעלי ערכים רבים. פונקציה זו מבטאת את היחס בין ה Information gain לבין ה Information הפוטנציאלי הנובע מחלוקת S ל n תת טבלאות. IV S, A = v Values A S v S log S v 2 S כלומר, אם נגדיר את הפונקציה הבאה: כאשר IV הוא עבור Intrinsic. InformationGainRatio S, A = InformationGain S, A IV S, A, Value אז הפונקציה תהיה: Gini Index 5.2.4 פונקציה זו מודדת את חוסר האחידות של ההתפלגות שלנו, כאשר 0 מסמן אחידות מלאה ו- 1 מסמן חוסר אחידות מקסימלית. לכן פיצ'ר יחשב טוב אם הוא מעלה את האחידות בהתפלגות המותנית על ערך הפיצ'ר. הגדרת פונקציית ג'יני תהיה: ופונקציית הרווח תהיה:. GiniImpurity S, A =Gini S. Gini S =1 P s L=l 2 l Labels v Values A S v S Gini S v Train Error 5.2.5 פונקציה זו מודדת עבור פיצ'ר מסויים את הירידה בתוחלת שגיאת האימון. כלומר נרצה לבחור את הפיצ'ר. TrainError S, A =min P s v Values A S v S min P S v שממקסם את תוחלת הירידה בשגיאת האימון:

6 הערכה ותוצאות כדי להעריך את האלגוריתמים שלנו ביצענו מספר הניסויים. 6.1 הערכת האלגוריתם הסטטיסטי במקרה זה ביצענו שני ניסויים. תחילה למדנו מטקסטים ארוכים במיוחד את הפרופיל של השפה. לאחר מכן ביצענו הערכות על הקלטים הבאים: 1. מאגר של 600 משפטים באורכים שונים ותיוג של שפת המשפט. 2. מאגר של 600 משפטים באורך קבוע של 40 מילים למשפט, ותיוג של שפת המשפט. קיבלנו שאחוזי ההצלחה במקרה הראשון היו 46% ובמקרה השני 46.16%. 6.2 הערכת עצי ההחלטה במקרה הזה ביצענו מספר ניסויים. בכל פעם הבנייה של העץ נעשתה מטבלאות שונות. תחילה בנינו 10 1) של משפטים באורכים יוניגרמים למקטעים (לפי טבלה טבלאות המכילות שורות עם מיפוי הסתברויות משתנים, ולאכן מכן בנינו 10 טבלאות המכילות מיפוי הסתברויות של ביגרמים (לפי טבלה 2). השתמשנו בטבלאות שבהם מספר הרשומות (שורות בטבלה) מכל שפה הם: 800, 600, 400, 200, 100, 50, 20, 1600 1200, ו- 2000. לדוגמה, כאשר ישנם 20 רשומות מכל שפה, בטבלה הגדולה יהיו 120 שורות (20 רשומות לכל שפה, ו 6 שפות סה"כ). בסך הכל היו לנו 20 טבלאות בגדלים משתנים, והשתמשנו בהם על מנת לבנות 5 סוגים של עצי החלטה, כאשר סוג עץ ההחלטה נקבע על פי פונקציית הרווח בה השתמשנו. את הערכה של ביצועי העצים ביצענו על שני המאגרים שמקודם. בנוסף ביצענו את הניסויים הבאים: כמה זמן (במילישניות) לוקח לאלגוריתם לבנות את העץ (לא תלוי במאגר הבדיקה). 1. כמה זמן (במילישניות) לוקח לבצע סיווג (predict) לפי העץ, לכל אחד ממאגרי ההערכה. 2. מהו עומק החיזוי הממוצע של העץ, לכל אחד מהמאגרים. 3. מהי מידת ההצלחה (באחוזים) של החיזוי, לכל אחד מהמאגרים. 4. אם החיזוי של האלגוריתם תואם לתיוג של הפרופיל (השורה במאגר ההערכה), נספור זאת כהצלחה. תחילה נעריך את זמן בניית העץ כפונקציה של סוג העץ, התוצאות מוצגות בגרף 1.

זמן, מילישניות 40000 35000 30000 25000 20000 15000 10000 5000 unigrams bigrams 0 entropy IG IGR Gini train סוג העץ גרף 1: זמן בניית העץ כפונקציה של סוג העץ, עבור טבלה של 600 רשומות מכל שפה. לאחר מכן בדקנו אז זמן בניית העץ כפונקציה של מספר הרשומות במאגר, התוצאות מוצגות בגרף 2. 300000 250000 זמן, מילישניות 200000 150000 100000 50000 unigrams bigrams 0 0 500 1000 1500 2000 2500 מספר רשומות מכל שפה בטבלה גרף 2: זמן בניית העץ כפונקציה של מספר הרשומות מכל שפה בטבלה, עבור עץ מסוג.Gini כעת נעריך את זמן החיזוי של העצים, כלומר כמה זמן לקח לבצע את פעולת הסיווג על ידי העצים שלנו, עבור הערכה של שני המאגרים, ועבור טבלאות יוניגרם ועבור טבלאות ביגרם. התוצאות מוצגות בגרף 3.

זמן, מילישניות 800 700 600 500 400 300 200 100 Pool 1 unigtams Pool 2 unigrams Pool 1 bigrams Pool 2 bigrams 0 Entropy IG IGR Gini Train סוג העץ גרף 3: זמן ביצוע הסיווג על שני המאגרים, ועבור שני סוגי הטבלאות (לפי יוניגרמים ולפי ביגרמים), כאשר העצים נבנו על הטבלה עם 600 רשומות לכל שפה. כעת נבדוק מה היה עומק החיזוי הממוצע של העצים שלנו עבור המאגרים השונים ועבור טבלאות היוניגרם והביגרם. התוצאות מוצגות בגרפים 4 ו 5.. 9 8 7 6 5 4 3 2 1 0 Entropy IG IGR Gini Train סוג העץ ממוצע עומק החיזוי Pool 1 unigtams Pool 2 unigrams Pool 1 bigrams Pool 2 bigrams גרף 4: ממוצע עומק הסיווג של העצים השונים במקרים שונים. העצים נבנו על הטבלה עם 600 רשומות לכל שפה.

10 9 8 7 6 5 4 3 2 1 0 0 500 1000 1500 2000 2500 מספר רשומות לשפה בטבלה ממוצע עומק החיזוי Entropy IG IGR Gini Train גרף 5: ממוצע עומק הסיווג של העצים השונים, עבור טבלאות יוניגרמים בגדלים משתנים. כאן ההערכה התבצעה על מאגר 1. המגמה המוצגת כאן דומה למגמות עבור מאגר 2 ועבור טבלאות הביגרמים. לבסוף נעריך עד כמה מדייקים האלגוריתמים שלנו. התוצאות מוצגות בגרף 6. 70 60 הצלחה באחוזים 50 40 30 20 10 Entropy unigrams IG unigrams IGR unigrams Gini unigrams Train unigrams Entropy bigrams IG bigrams IGR bigrams Gini bigrams Train bigrams 0 0 500 1000 1500 2000 2500 רשומות לשפה בטבלה גרף 6: אחוזי ההצלחה בפעולת הסיווג עבור העצים השונים ביחס לגודל הטבלה, במקרה היוניגרמי ובמקרה הביגרמי, כאשר הערכת התוצאות התבצעה על מאגר 1.

7 דיון בסך הכל, רוב התוצאות שקיבלנו היו יחסית טובות. במקרה הסטטיסטי בסך הכל קיבלנו תוצאות טובות, כאשר אחוזי ההצלחה של אלגוריתם דומים לאחוזי ההצלחה של עצי ההחלטה. על שני המאגרים, אחוזי ההצלחה גבוהים יותר מהממוצע של כל העצים במקרה היוניגרמי, אבל נמוכים יותר מהממוצע של כל העצים המבוססים על הטבלה הגדולה ביותר בעל 2000 רשומות מכל שפה, ולהם אחוזי ההצלחה הגבוהים ביותר. בניית המסווג הסטטיסטי היא מהירה יותר מאשר בניית עץ החלטה, אך נראה שכוחו מוגבל יותר, כיוון שקבוצת האימון שלו הייתה גדולה יותר משאר קבוצת האימון של עצי ההחלטה. עבור עצי החלטה, ראינו שזמן בניית העצים לא היה תלוי משמעותית במספר הפיצ'רים, כלומר לא היה הבדל גדול בין טבלאות מבוססות יוניגרם לבין טבלאות מבוססות ביגרם. בנוסף ראינו שזמן בניית העצים מסוג Gini Index, היה קצר משמעותית מזמן בניית עצים מסוג Information Gain Ration ומסוג Information Gain Train Error ו- Entropy, כאשר מבין האחרונים, הג'יני נבנה מהר יותר. כמו כן, באופן צפוי, הזמן שלוקח לבנות את העץ תלוי במספר הרשומות בטבלה, וככל שהטבלה יותר גדולה כך זמן בניית העץ ארוך יותר. לעומת זאת, זמן ביצוע הסיווג עבור העצים שנבנו על טבלאות יוניגרם היה קצר משמעותית מזמן ביצוע הסיווג עבור טבלאות ביגרם. בהתאמה, ממוצע עומק החיזוי של עצי היוניגרם היה קטן יותר מממוצע עומר החיזוי של עצי הביגרם. מבין סוגי העצים השונים, עומק החיזוי של פונקציית הרווח Gini index במקרה היוניגרמי היה קצר משמעותית מהעומק הממוצע של שאר סוגי העצים, ועומק החיזוי של פונקציית הרווח Entropy היה ארוך יותר משאר סוגי העצים, גם במקרה היוניגרמי וגם במקרה הביגרמי. לבסוף, אנחנו רואים שהעצים שלנו מצליחים לא רע כאשר מתבססים על הטבלאות היוניגרמיות, ומבינהם העץ מסוג Gini משיג את אחוזי ההצלחה הגבוהים ביותר והעץ מסוג Entropy משיג את אחוזי ההצלחה הנמוכים ביותר. העובדה שהGini הצליח לבנות עץ שעומקו נמוך יחסית ואחוזי ההצלחה שלו גבוהים יחסית, מרמז שהעץ שנבנה מצליח לבצע את ההכללה של הבעיה בצורה טובה, ולכן הוא מקטין את ה overfiting שנובע מיצירת עצי החלטה באמצעות האלגוריתם.ID3 לעומתו ה Entropy Tree לא הצליח להבצע את ההכללה כראוי עומק החיזוי הממוצע היה גבוה ואחוזי ההצלחה היו נמוכים, כלומר העץ מותאם יותר מידי למדגם. לעומת זאת כאשר העצים מתבססים על הטבלאות הביגרמיות, העצים שלנו לא מצליחים להשיג אחוזי הצלחה משביעי רצון, התוצאה לא יותר טובה מלנחש. גם פה העץ מסוג Gini משיג בסך הכל את התוצאות הטובות ביותר. אנחנו מעריכות שהתוצאות הנמוכות נובעות מכך שישנם הרבה יותר ביגרמים מיוניגרמים. יתכן שהחלוקה שביצענו למקטעי הסתברויות צריכה להיות עדינה יותר, על ידי שינוי הערכים או חלוקה למקטעים נוספים.

8 מסקנות האלגוריתמים שמימשנו לפתרון הבעיה עבדו בסך הכל לא רע. לא מספיק טוב ברמה המעשית, אבל לא רע ביחס לשיטות הנאיביות שבהן השתמשנו. ראינו שהלומד הסטטיסטי השיג בזמן מהיר יחסית תוצאות לא רעות, ואנחנו חושבות שניתן לשפר את תוצאות אלגוריתם זה באמצעות שיטות הסקה יותר מתקדמות מהגישה שבה השתמשנו, שהיא הערכה באמצעות נורמת אינסוף. ראינו שעצי ההחלטה גם הם נתנו תוצאות לא רעות במקרה היוניגרמי. מבין סוגי העצים השונים, הביצועים של Gini Index היו הטובים ביותר: האלגוריתם הצליח לבצע את הזיהוי באחוזים הגבוהים ביותר וגם ממוצע עומק החיזוי היה הנמוך ביותר. זמן בניית העץ היה ארוך ביחס לעצי IG ול,IGR אבל קצר ביחס לסוגי עצים האחרים אנחנו מסיקות שפונקציית רווח זו היא המתאימה ביותר למשימה. אומנם זמן בניית המסווג היא ארוכה, אבל התוצאות לא רעות. לעומתו הביצועים של Entropy Tree היו הגרועים ביותר: אחוזי הזיהוי היו הנמוכים ביותר וממוצע עומק החיזוי הגבוה ביותר. בנוסף, זמן בניית העץ היה יחסית גבוה. במקרה הביגרמי קיבלנו במפתיע תוצאות לא טובות. באותה מידה יכולנו גם לנחש ולדייק באותם אחוזים. ציפינו לקבל תוצאות יותר טובות כיוון שהחלוקה לביגרמים מתארת יותר במדוייק את הפרופיל של השפה מאשר חלוקה ליוניגרמים. אנחנו משערות שהסיבה לכך היא שהחלוקה שעשינו כנראה לא הייתה מספיק עדינה, ויש לחלק למקטעים אחרים או ליותר מקטעים. אנחנו משערות שעבור חלוקה שכזו אחוזי ההצלחה יהיו גבוהים אף יותר מהמקרה היוניגרמי.

9 מראי מקום מצגות השיעורים והתרגולים של הקורס "מבוא לבינה מלאכותית", 2010. http://en.wikipedia.org/wiki/latin_alphabet http://en.wikipedia.org/wiki/decision_tree_learning http://en.wikipedia.org/wiki/matrix_norm http://people.revoledu.com/kardi/tutorial/decisiontree/how-to-measure-impurity.htm http://tnlessone.wordpress.com/2007/05/13/how-to-detect-which-language-a-text-is-written-in-or- /when-science-meets-human http://web.mit.edu/~6.863/spring2009/readings/niyogi-berwick96.pdf Language Detection based on Unigram Analysis and Decision Trees, Bastrup and Popper, 2003