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

גודל: px
התחל להופיע מהדף:

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

תמליל

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

2 תוכן העניינים תקציר...4 מבוא...5 דרישות המערכת... 6 דרישות פונקציונאליות...7 דרישות לא פונקציונאליות...8 מגבלות והנחות המערכת...8 עיצוב מערכת תוכנה ארכיטקטורה...9 תיאור רכיבים עיקריים...11 תיאור תהליכים עיקריים...11 כלי פיתוח...31 המרת קבצי מדיה Extractor( )Media...31 המרת קבצי מדיה לפורמט...11 WAV המרה קבצי קול לטקסט...11 תרשים הרצף...11 מנוע חיפוש...32 אינדקס מהופך...21 תהליכי אינדוקס נתונים...22 תהליך חיפוש...22 דיאגראמת מחלוקות ממשק משתמש...33 מסך חיפוש...19 מסך תוצאות...12 מסכים סטטיסטיקות...13 בדיקות המערכת...43 בדיקות יחידה...11 בדיקות אינטגרציה...11 מקרה בוחן...55 סיכום והצעות לפיתוחים עתידיים

3 נספחים...66 נספח א : סטטיסטיקות...12 נספח ב : איורים...19 נספח ג : קוד...19 נספח ד: התקנת המערכת...72 נספח ה : הצעת פרויקט...73 רשימת מקורות

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

5 2 מבוא כיום אינטרנט מוצף בתכני וידאו ואודיו רבים כגון סרטים, חדשות, הרצאות, סרטי הדרכה וכו'. רוב מנועי חיפוש הקיימים מחפשים בתוך שם הקובץ, כותרת או תיאור )metadata( אשר הוקלדו על ידי משתמש שהעלה את הקובץ ]41[. מקורות אלה במקרה הטוב משקפים בצורה חלקית את מה שנאמר בקבצים הללו, ובמקרים רבים לא רלוונטיים בכלל )לדוגמא: מקרה בו שם הקובץ הוא מספר(. איכות החיפושים )במנועי חיפוש קלאסיים( תלויה ברמת הפירוט והרלוונטיות של שם הקובץ, כותרת ו- metadata ואיננה תלויה בתוכנו של הקובץ. בנוסף לקושי אינדוקס קבצי מדיה קיימת בעיית איתור הקטע הרלוונטי בתוך תוצאות החיפוש, כלומר עם קבלת תוצאות החיפוש המשתמש חייב לראות או לשמוע את כל קובץ לכל האורך על מנת לאתר את הקטע הרלוונטי. בשנים אחרונות חברות רבות משקיעות מאמץ רב במחקר ופיתוח טכנולוגיות חדשות בתחום זיהוי דיבור בפס קול. טכנולוגיית זיהוי דיבור משתמשת בגישות ובתחומים רבים ]8[ כמו עיבוד אותות דיבור לצורך מיצוי מאפיינים מתוך אות הדיבור, מידול סטטיסטי של פונמות, תהליכי אימון אוטומטיים של המודלים הסטטיסטיים מתוך בסיס נתונים בדיבור בגישה מונחית מידע, מידול לשוני המתאר את ההקשרים הסמוכים והרחוקים יותר בין מילים בשפה ואלגוריתמים של חיפוש לצורך ביצוע חיפוש יעיל ואופטימאלי של סדרת המילים בעלת ההסתברות הגבוהה ביותר, בהינתן אות דיבור והמידול האקוסטי והלשוני. במהלך השנים חלה התקדמות משמעותית בטכנולוגיית זיהוי דיבור ופותחו מספר מנועי חיפוש קבצי וידיאו המבוססים על הטכנולוגיה ]1,40,44[. יכולת של הטכנולוגיה לספק זיהוי דיבור באיכות מאוד גבוהה מוסיפה עוד מידע משמעותי למערכות אחזור מידע בעת אינדוקס קבצי וידוא וקול. אינדקס מהופך) Index )Inverted הוא מבנה נתונים המתאר את מונחי החיפוש ומסמכים. תפקידו של אינדקס מהופך הוא להפוך את מילות החיפוש למסמכים ומיקומים של מילות החיפוש בתוך המסמכים. ספר ]44[ של C. Manning, P. Raghavan, S. Hinrich ומאמר ]4[ של.J Zobel,.A Moffat מתארים מבני נתונים, אלגוריתמים וטכניקות מרכזיות בתחום אינדוקס קבצי הטקסט. המקורות מהווים בסיס לגישות ואלגוריתמים בפרויקט זה לדוגמה מבני נתונים של אינדקס מהופך, אלגוריתמי חיפוש וכו'. 5

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

7 1.1 דרישות פונקציונאליות קלט המערכת קבצי מדיה - קבצי וידאו ואודיו שאילתות חיפוש פלט המערכת תוצאות החיפוש - שמות קבצי מדיה וחותמות זמן של מילים שנמצאו סטטיסטיקות תהליכי ההמרה ואינדוקס קלט\פלט של תתי המערכות קלט מערכת זיהוי דיבור קבצי קול פלט מערכת זיהוי דיבור קבצי טקסט המכילים מילים וחותמות זמן )נקודת זמן שבה נאמרה המילה( סטטיסטיקות תהליך ההמרה של קבצי קול לקבצי טקסט קלט מנוע החיפוש קבצי טקסט המכילים מילים וחותמות זמן )נקודת זמן שבה נאמרה המילה( שאילתות חיפוש פלט מנוע החיפוש תוצאות החיפוש - שמות קבצי מדיה וחותמות זמן של מילים שנמצאו סטטיסטיקות תהליך האינדוקס דרישות תפעוליות ומידע חיפוש מילים בתוך קבצי מדיה יכולת העלאה פורמטים שונים של קבצי מדיה mp4( )mp3, המרה קבצי קול לקובץ טקסט כאשר לכל מילה תיצמד חותמת זמן טיפול במילות עצירה וסיומות של מילות החיפוש ונתונים גישה לקבצי הטקסט באמצעות אינדקס מהופך יכולת עדכון אינדקס מהופך יכולת אכסון אינדקס מהופך על הדיסק יכולת טעינה אינדקס מהופך מהדיסק אכסון קבצי מדיה מקוריים וקבצי טקסט ( תוצאות המרה של קובצי מדיה ) יכולת העלאת קבצי וידאו ואודיו למערכת 7

8 יכולת עיצוב והתאמה מילונים שונים של מנוע זיהוי דיבור ( מילונים של מודל שפה ומודל אקוסטי( ומנוע חיפוש )מילים עצירה( ממשק חיפוש גרפי יאפשר למשתמש לבצע חיפושים במאגר קבצים המאונדקסים במערכת ממשק משתמש גרפי להצגת סטטיסטיקות תהליכי המרה ואינדוקס ממשק משתמש גרפי להעלאת קבצי מדיה חדשים 2.3 דרישות לא פונקציונאליות דרישות חומרה מינימאליות להתקנה מערכת מעבד - 1 ליבות 4GB - )RAM( זיכרון דיסק קשיח - 500GB )תלוי במספר וגודל של הרצאות שיועלו למערכת( אילוצי מימוש המנוע תומך בעיבוד מדיה כאשר התכנים בשפת אנגלית בלבד מערכת הפעלה WINDOWS זמן המרת פס קול לטקסט תלוי בביצועים של ספרייה החיצונית Sphinx4 וגודל המילון. איכות החיפוש תלויה באיכות פס קול בקבצי מדיה, מבטא, עוצמת קול. 2.2 מגבלות והנחות המערכת קבצי קלט של מערכת הם קבצי מדיה בפורמטים mp4, mp3 זיהוי דיבור מתבצע רק בשפה אנגלית המערכת לא מטפלת באיכות הקול, מבטא, טונציה. הרצאות שנבדקו היו מדויקות בלבד אין תיקון שגיות כתיב 2

9 4 עיצוב מערכת תוכנה תכנון ועיצוב המערכת בוצע בגישת OO והשתמש במספר דיאגראמות UML כדוגמת דיאגראמות מחלקות, תרשימי רצף. 1.4 ארכיטקטורה Media Converter Media Extractor audio files (wav) Speech Recognizer Media Files Recognized Text video/audio files query results Web Server media files query/results Data Index Search Engine Data Data Base איור 4. ארכיטקטורה של מערכת מנוע חיפוש המערכת מורכבת משלושה יישומים עיקריים )איור 4(: - Media Extractor תפקידו של היישום הוא לקבל קבצי מדיה כקלט ולהמיר אותם לקבצי טקסט כפלט כאשר קבצי פלט מכילים מילים שנאמרו בקבצי מדיה. - Search Engine תפקידו של היישום הוא לקבל קבצי טקסט כקלט ולאנדקס אותם לתוך אינדקס מהופך. בנוסף מנוע חיפוש מספק ממשק חיפוש באינדקס מהופך. - Web Server תפקידו של היישום הוא לספק ממשק גרפי למשתמש קבצי מדיה מקוריים יישמרו על דיסק קשיח וינוהלו באמצעות מערכת קבצים של מערכת הפעלה. 1

10 1.1.1 תיאור רכיבים עיקריים - Media(Video/Audio) Converter הרכיב אחראי לזהות פורמט של קובץ הקלט ולהמיר אותו לפורמט WAV )איור 4(. הרכיב מומש בשפת JAVA ומשתמש בספרייה ]1[ FFMPEG - Speech Recognizer הרכיב אחראי לקבל קובץ קול )בפורמט )WAV כקלט ולהחזיר קובץ טקסטואלי כפלט )איור 4(. קובץ פלט מכיל טקסט שנאמר בפס קול. הרכיב מומש בשפת JAVA ומשתמש במנוע זיהוי דיבור ]6,5[. Sphinx4 - Data Base תפקידו של בסיס נתונים הוא לאחסון מילים וחותמות זמן שזוהו בקבצי מדיה )תוצרים של )Speech Recognizer Data תפקידו של המודול הוא לאנדקס קבצי טקסט לתוך אינדקס נתונים) - Search Engine )Index ולספק ממשק חיפוש קבצי טקסט באינדקס נתונים)איור 4(. מבני נתונים, אלגוריתמים ויכולות הבאים מומשו במודול אינדקס הנתונים : אינדקס מהופך - מימוש מבנה נתונים המבוסס על אחד האלגוריתמים ממקורות ]4,44[. בפרק ניתן לראות את פרטי מימוש של אינדקס מהופך ניהול מילון של מילים עצירה. ניקוי מילים עצירה בזמן אינדוקס וחיפוש הנתונים. בפרקים ו ניתן לראות את מימוש ושימוש במילות עצירה. יצירת הקבוצות מילים עם צורה מורפולוגית אחת על ידי הסרת סיומות. הסרת סיומות נבצע בעזרת אלגוריתם ]43[ algorithm"."the Porter stemming בפרק ניתן לראות מבנה נתונים של הקבוצות ובפרק ניתן לראות את האלגוריתם יצירת הקבוצות. מיון תוצאות החיפוש לפי ממדים שונים. מימוש אלגוריתם למיון תוצאות החיפוש לפי ממדים שונים כגון : מספר המילות החיפוש שנמצאו בתוך קובץ הטקסט, שכיחות מילות החיפוש בתוך הקובץ. בפרק ניתן לראות את אלגוריתם מיון )חלק מאלגוריתם חיפוש( - Web Server תפקידו של השרת הוא להציג חלון חיפוש, לבצע שאילתות במודול אינדקס הנתונים, להציג תוצאות חיפוש, להציג דוחות של תהליכי המרה ואינדוקס )איור 4(. השרת ממומש בעזרת שרת אפליקציה ]7[. Tomcat ממשק משתמש גרפי יושם באמצעות טכנולוגית (JavaServer Pages) JSP 11

11 1.1.4 תיאור תהליכים עיקריים קיימים שני תהליכים עיקריים במערכת )איור 3(: העלאת קבצי מדיה למערכת חיפוש קבצי מדיה במערכת Search Engine Upload Media Files Administrator Search Media Files User איור 3: תרחישים עיקרים 11

12 העלאת קבצי מדיה באיור 1 מודגם תרשים זרימה של תהליך העלאת קבצי מדיה. Media Extractor Media Converter Speech Recognizer Search Index Data Store Administrator Upload Media Convert Media to WAV Audio WAV Audio File Recognize Speech (WAV Audio file) Recognized Speech ( Text file ) Index File ( csv text file ) Index File Store Indexed Data Update main index איור 1. תרשים העלאת קובץ מדיה למערכת הסבר תרשים זרימה העלאת מדיה למערכת - תהליך העלאת קבצי וידאו וקול לשרת מתבצע דרך דפדפן או באמצעות פקודות.)command line interface( CLI לאחר העלאת קובץ קלט לשרת מתבצע תהליך זיהוי פורמט של הקובץ ולאחר מכן המרה לפורמט WAV שמייצג פס קול ללא דחיסה של קובץ הקלט. לאחר תהליך המרת הפורמט, קובץ הקול מועבר למודול האחראי לזיהוי דיבור בפס קול על מנת להמיר אותו לקובץ טקסט שמכיל מילים שנאמרו במדיה וחותמת זמן עבור כל מילה )מתי המילה נאמרה(. לאחר תהליך זיהוי הדיבור, קבצי הטקסט ומועברים למודול אינדוקס נתונים. תהליך אינדוקס הנתונים אחראי לאנדקס את קבצי הטקסט שנוצרים על ידי תהליך זיהוי הדיבור בפס קול. 12

13 חיפוש קבצי מדיה באיור 6 מודגם תרשים זרימה של תהליך חיפוש Browser Web Server Search Engine Data Index Data Store User Search words Send search parameters Create query Send query Search media ids by words Search Return media ids Sort by relevance Request word positions Return set of word positions Return results Build result HTML page Return result HTML page Display result HTML page איור 6. תרשים חיפוש קבצי מדיה במערכת הסבר תרשים זרימה של תהליך חיפוש - משתמש שולח מילות חיפוש באמצעות ממשק משתמש גרפי )נטען בעזרת דפדפן אינטרנט( לשרת web אשר יבנה שאילתא המתאימה ויבצע חיפוש במודול אינדקס הנתונים. תוצאות החיפוש יכילו שמות קבצי המדיה מקוריים )שבהם נאמרו מלות חיפוש( ורשומות מילים עם חותמות זמן שנמצאו בתוך קובץ טקסט המייצג את קובץ המדיה. לאחר קבלת התוצאות שרת web יבנה דף אינטרנט אשר יציג את התוצאות עם ציר הזמן )ציר הזמן יוצג ליד כל התוצאה( ועליו יסומנו זמנים שבהם נאמרו מילות החיפוש. 12

14 1.3 כלי פיתוח הפרויקט מומש בעזרת טכנולוגיות וכלים שונים שיפורטו בהמשך סעיף זה. קוד נכתב בשפת JAVA בסביבת פיתוח.Eclipse - Tomcat שרת יישומים ]7[. השרת הוא תוכנה קוד פתוח המפותח על ידי קרן התוכנה אפאצ'י. שרת יישומים Tomcat מממש את המפרטים Java Servlet ו- Pages,Java Server ומספק סביבה על טהרת Java של שרת HTTP שעליו יכול לרוץ קוד.Java.Java - ספרייה קוד פתוח לבדיקות יחידה בשפת התכנות ]40[ Junit ]41[ Ant - כלי תוכנה לאוטומציה של תהליכי בניית תוכנה. - Batch Scripts שפת סקריפטים להרצת פקודות של מערכת ההפעלה WINDOWS לשם הפעלתן של תוכניות שונות. ספרייה ]1[- FFMPEG ספרייה קוד פתוח המיועדת לעיבודים שונים של קבצי מולטימדיה. ]6[ Sphinx4 - פרויקט Sphinx4 הוא מנוע זיהוי קול הממומש בשפת JAVA וזמין תחת רישיון.BSD 12

15 1.2 המרת קבצי מדיה Extractor( )Media יישום המרת קבצי מדיה - תפקידו של היישום הוא לקבל קבצי מדיה כקלט ולהמיר אותם לקבצי טקסט כפלט כאשר קבצי פלט מכילים מילים שנאמרו בקבצי מדיה. היישום מכיל ארבע רכיבים עיקריים : מודול המרת קבצי מדיה לפורמט,WAV מודול המרת קבצי קול לקבצי טקסט, מודול תצורה, מודול ניהול תהליכי המרה. באיור 5 מודגם ארכיטקטורה של יישום המרת קבצי מדיה. Media Extractor Media Converter Speech Recognizer Media Extractor Manager Configuration Manager Media Files Original Media Files Text CSV Files איור : 5 יישום המרת קבצי מדיה - ארכיטקטורה ארכיטקטורה של יישום המרת קבצי מדיה תוכנן כך שניתן בקלות להחליף את מימושים של מודולים הבאים : מודול המרת קבצי קול לטקסט, מודול המרת קבצי מדיה לפורמט.WAV גמישות זו מאפשרת לשפר או להרחיב את המערכת במחקרים עתידיים. 15

16 1.1.1 המרת קבצי מדיה לפורמט WAV תפקידו של מודול המרת קבצי מדיה לפורמט WAV הוא להמיר קבצי מדיה )קבצי וידאו ואודיו( לפורמט אחיד.WAV נשים לב כי קלט של מודול זיהוי דיבור )Sphinx4( הוא קבצי אודיו בפורמט WAV בלבד. מודול המרת קבצים מומש באמצעות ספרייה FFMPEG ה. ספרייה היא קוד פתוח המיועדת לעיבודים שונים של קבצי מולטימדיה. קלט : קבצי מדיה בפורמטים : mp3 mp4, פלט : קבצי אודיו בפורמט WAV RIFF (little-endian) data WAVE audio Microsoft PCM 16 bit mono Hz תצורה קבצי הפלט : המרה קבצי קול לטקסט המרה קבצי קול לטקסט מתבצע על ידי ספריית קוד פתוח.Sphinx4 פרויקט Sphinx4 הוא מנוע זיהוי קול הממומש בשפת JAVA וזמין תחת רישיון.BSD תצורת הספרייה : מודל שפה - Model US English HUB4 Language מודל אקוסטי - Model US English HUB4 Acoustic קלט : קבצי קול בעלי תצורה הבא : RIFF (little-endian) data, WAVE audio, Microsoft PCM 16 bit, mono Hz פלט : קבצי טקסט בפורמט.CSV קבצי פלט מכילים מילים שנאמרו בקובץ קלט וחותמות זמן שלהן. 11

17 דיאגראמת מחלקות באיור 7 מודגמת דיאגראמת מחלקות ליישום המרת קבצי מדיה 1 MediaExtractorManager MediaExtractorConfig * * RecognitionStatistics «uses» TextExtractorTask +run() «uses» «interface» ISpeechRecognitionEngine +speechtotext(string file, IWordWriter writer)() «uses» «uses» SphinxEngine +speechtotext(string file, IWordWriter writer)() * «interface» IWordWriter +write(word word)() «interface» IMediaToWavConvertor +convert(convertconfig config)() * «uses» CSVWordWriter FFmpegConvertor ConvertConfig +write(word word)() +convert(convertconfig config)() איור : 7 דיאגראמת מחלקות ליישום המרת קבצי מדיה - MediaExtractorManager מחלקה ראשית. המחלקה אחראית על אתחול וניהול תהליכים ראשיים של היישום. המחלקה מקבלת קבצי קלט )מדיה( ויוצרת עבור כל אחד משימה.TextExtractorTask - MediaExtractorConfig המחלקה אחרית על אתחול וניהול תצורה של היישום. בנוסף המחלקה מנהלת יצור מופעים של מחלקות אשר מממשים ממשקים הבאים.ISpeechRecognitionEngin,IWordWriter,IMediaToWavConvertor המחלקה מממשת תבנית "שיטת המפעל". "שיטת המפעל" היא תבנית עיצוב שתכליתה יצירת אובייקטים מבלי להכיר את המחלקות שלהם. התבנית מתבססת על הגדרת שיטה עצמאית ליצירת עצמים. - TextExtractorTask המחלקה מממשת שלבים עיקריים של היישום ברמת קובץ קלט אחד. 17

18 - RecognitionStatistics המחלקה אחראית לשמור ולנהל סטטיסטיקות שונות עבור קובץ קלט אחד. הסטטיסטיקות נאספות בכל שלב שעובר דרכו קובץ הקלט ובסופו של התהליך הסטטיסטיקות נשמרות בקובץ על הדיסק. - ISpeechRecognitionEngine ממשק שייקרא בשלב זיהוי דיבור בפס קול, כלומר מחלקה שמממשת את הממשק היא אחראית לממש פתרון לזיהוי דיבור בקובץ קול אשר מיוצג בפורמט.WAV בעזרת ספרייה Sphinx4 ISpeechRecognitionEngine מימוש ממשק - SphinxEngine - IMediaToWavConvertor ממשק שבא להבטיח שייקרא בשלב המרה קובץ קלט)מדיה( לפורמט WAV )שלב לפני תהליך זיהוי דיבור(. FFmpeg בעזרת ספרייה IMediaToWavConvertor מימוש ממשק - FFmpegConvertor WAV מחלקה מנהלת תצורה של ממיר קבצי מדיה לפורמט - ConvertConfig - IWordWriter ממשק שייקרא בשלב זיהוי מילה כלומר כאשר מודול זיהוי דיבור זיהה מילה בפס קול ומתכוון לכתוב את המילה לקובץ פלט. - CSVWordWriter מימוש ממשק.IWordWriter המחלקה כותבת מילים וחותמות זמן לקובץ בפורמט.CVS 12

19 1.1.1 תרשים הרצף תרשים הרצף של תהליך המרה קובץ מדיה לקובץ טקסט בפורמט CSV ניתן לראות באיור 8. MediaExtractorMngr TextExtractorTask MediaToWavConvertor SpeechRecognitionEngine WordWriter Statistics Media File Start Task (file) Init Statistics Convert To WAV (file) Wait for next media Return WAV File Update Statistics ( stat ) Recognize Speech (WAV file) Recognize Speech Write Recognized Words Return Text File (file) Update Statistics ( stat ) Write on Disk Send Text File To Search Engine איור : 8 תרשים הרצף ליישום המרת קבצי מדיה 11

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

21 1.1.1 אינדקס מהופך אינדקס מהופך של קבצי טקסט הוא מבנה נתונים המאפשר חיפוש מילים בתוך קבצי טקסט. אינדקס מהופך ממפה אוצר מילים למופעים שלהם בקבצי טקסט המאונדקסים בו. תפקידו של אינדקס מהופך הוא לספק פתרון יעיל ומהיר לבעיית חיפוש מילים בתוך קבצי טקסט. כיום קיימים מספר רב של גישות ואלגוריתמים בתחום אינדוקס נתונים. למטרת הפרויקט בחרתי לממש אינדקס מהופך המבוסס על עקרונות הבאים : בניה אוצר המילים מקבצי הטקסט המאונדקסים, כלומר אוצר המילים הוא דינאמי ומשתנה בהתאם לעדכונים של אינדקס. חלוקה אינדקס מהופך לשני חלקים כאשר חלק אחד נמצא ב- RAM וחלק שני מנוהל על הדיסק קשיח ונטען לתוך ה- RAM במידת הצורך )שימוש במטמון(. הגישה מאפשרת חיפוש ללא גישה לדיסק ורק עבור התוצאות שכבר מצאנו נגש לדיסק על מנת לשלוף פרטים נוספים. הגישה מצמצמת באופן משמעותי מספר גישות לדיסק. Porter " ניתוח מורפולוגי של מילים מאונדקסות ומילות חיפוש בעזרת אלגוריתם."Stemming Algorithm טכניקה זו מאפשרת למצוא מילים שונות בעלות משמעות דומה. לדוגמה : כאשר נחפש מילה sort אזי גם נמצא מילים כמו.sorts, sorting דחית מילות עצירה בעת בנית אינדקס מהופך )שימוש במילון מילים עצירה(. טכניקה זו מאפשרת לצמצם באופן משמעותי גודל של אינדקס מהופך. עדכון אינדקס אינקרמנטלי. כידוע בניה ושמירה של אינדקס מהופך מחדש פעולה מאוד יקרה לכן לפי גישה זו נשמור רק שינוים של אינדקס מהופך בזמן אינדוקס קובץ טקסט חדש. הגישה מונעת ממערכת לשמור אינדקס מהופך מחדש בכל פעם שמאנדקסים קובץ טקסט חדש. הארגון מחדש של אינדקס מהופך יתבצע בזמן הפעלה מחדש של מנוע חיפוש. 21

22 RAM Disk + RAM Stems Dictionary Words Dictionary Postings Lists Word Positions Lists איור : 1 ארכיטקטורה של אינדקס מהופך אינדקס מהופך מורכב ממבני נתונים העיקריים הבאים )איור 1( : - Stems Dictionary מילון מילים בסיסיות.)stems( מילים בסיסיות נושאות גרעין המשמעות, כלומר מילים השייכות לאותו בסיס זהות משמעותית, אך נבדלות בסיומות אשר מהוות מין, גוף או זמן )במילים מסוג פועל(. מילון מילים בסיסיות נבנה בשלב בנית האינדקס מהופך. בסוף תהליך האינדוקס המילון יכיל את כל המילים הבסיסיות של כל המילים שנמצאות בקבצי הקלט, כלומר כל מילת הקלט תעבור תהליך כינון למילה בסיסית ומילת הבסיס תתווסף למילון )אם היא עדיין לא קיימת במילון(. -Words Dictionary מילון המילים - מילון של כל המילים שנמצאות בקבצי הקלט. תפקידו המילון הוא לכווץ אותן מילים מכל קבצי הקלט לכניסה אחת במילון. הכניסה מכילה את המילה ורשימה מספרי זיהוי של קבצי טקסט שהמילה מופיעה בהם. - Postings List רשימת ההצבה, תפקידה של הרשימה הוא לתאר באיזה מסמכים מופיעה מילה מסוימת ומספר המופעים שלה בכל קובץ קלט, כלומר בשלב בנית האינדקס עבור כל מילה נבנה רשימה מספרי זיהוי של קבצי טקסט שבתוכם היא מופיעה ומספר מופעים שלה. 22

23 -Word Position List רשימת החותמות זמן של מילה מסוימת, תפקידה של הרשימה הוא לתאר את כל החותמות זמן של אותה מילה בכל קבצי הקלט, כלומר ברשימה יופיעו קבוצות חותמות זמן )של אותה מילה( לפי קובץ שבתוכו מופיעה המילה. קבוצות של חותמות זמן ימופו לפי מספר זיהוי של קובץ. הרשומות יאוכסנו על הדיסק קשיח. בזמן חיפוש רשומות הנשלפות יישארו ב- RAM על בסיס מקום פנוי, כך שאם נצטרך לשלוף אותן שוב אזי נחסוך בקריאות מהדיסק. כל מבני הנתונים של אינדקס מהופך נשמרים על דיסק, כך שלא נצטרך לאנדקס את כל קבצי הטקסט בכל פעם כאשר מפעילים מחדש את מנוע חיפוש. כאשר מנוע חיפוש עולה, אז חלק ממבני נתונים של אינדקס מהופך נטענים ל- RAM וחלק נשארים על הדיסק. מבני נתונים הבאים נטענים ל- RAM במלואם: מילון מילים בסיסיות, מילון המילים, רשימות ההצבה. רשימות של חותמות זמן נשארות על הדיסק קשיח ללא טעינה ראשונית. 22

24 1.1.4 תהליכי אינדוקס נתונים קיימים שני תהליכי אינדוקס עיקריים במנוע חיפוש : עדכון אינדקס אינקרמנטלי. מטרת התהליך לעדכן את אינדקס מהופך בנתונים מקובץ טקסט חדש. בנוסף התהליך חייב להיות מהיר ולא להעמיס על מנוע חיפוש כי תוך כדי תהליך אינדוקס מתבצעות שאילתות חיפוש. מיזוג שינוי אינדקס מהופך לאינדקס מהופך חדש. מטרת התהליך למזג קבצים המייצגים שינויים באינדקס ראשי לקובץ אחד שמייצג את אינדקס מהופך ראשי. עדכון אינדקס מהופך עדכון אינדקס מתבצע באופן אינקרמנטלי. לפי הגישה נשמור על הדיסק רק שינוים של אינדקס מהופך בתום התהליך אינדוקס קובץ טקסט חדש. הגישה מונעת ממערכת לשמור את אינדקס מהופך במלוא על הדיסק בכל פעם שמגיע קובץ טקסט חדש. אלגוריתם עדכון אינדקס אינקרמנטלי הסבר אלגוריתם עדכון אינדקס אינקרמנטלי קלט : קובץ טקסט K. קובץ K מכיל מילים וחותמות זמן בהתאם. חותמת זמן - מציינת זמן שבו נאמרה המילה במדיה. פלט : אינדקס מהופך מעודכן בזיכרון ושינוי אינדקס שמור בקובץ על הדיסק. אם אינדקס מהופך אינו קיים, אזי ניצור ונאתחל מבני נתונים הבאים : מילון המילים Dictionary(,)Words נסמנו D, מילון מילים בסיסיות ( Stems )Dictionary נסמנו S, מילון מילים "עצירה",SW מסד נתונים I )תפקידו לאחסן רשימות של חותמות זמן פר מילה Lists( ))Word Position. ניצור אינדקס מהופך לוקאלי, נסמנו H. תפקידו של אינדקס לוקאלי H הוא להחזיק אינדקס מהופך של קובץ K. מטרה העיקרית של בניה אינדקס לוקאלי H היא למנוע גישות עדכון לאינדקס מהפך הראשי. נבנה אינדקס מהופך לוקאלי H באופן הבא נסרוק כל המילים בקובץ K ועבור כל מילה )נסמנה w( נבצע : אם המילה היא מילת "עצירה" אזי נעבור למילה הבאה - מחיקת מילות "עצירה". הבדיקה תתבצע מול מילון מילים "עצירה".SW נחשב מילת הבסיס של המילה w בעזרת אלגוריתם Porter ונסמנה b 22

25 D. נמצאת במילון המילים w נבדוק האם מילה o אם w לא נמצאת ב- D, אזי נוסיף אותה למילון D וניצור כניסה חדשה >מספר זיהוי של הקובץ, מונה > ברשימת ההצבה של המילה w כאשר מונה מייצג מספר מופעים של אותה מילה בקובץ ומספר זיהוי של הקובץ הוא מזהה של קובץ K. K. נעדכן את המונה של המילה עבור קובץ אזי נמצאת ב- D, w אם o נוסיף חותמת זמן של המילה w לרשומה חותמות זמן של קבוצה המייצגת את קובץ K ומילה w במסדי נתונים I )מילה w ומזהה של K מהווים מפתח ב- I (. נשים לב כי עדכון I מתבצע ב- RAM ותהליך כתיבה לדיסק יתבצע פעם אחד בסוף התהליך אינדוקס. נבדוק האם מילה b נמצאת במילון מילים בסיסיות S, אם לא נמצאת, אזי נוסיף את b ל- S. נוסיף במידת הצורך מצביע מ- b במילון מילים בסיסיות למילה w במילון המילים D )אם חסר(. נשמור על הדיסק את כל העדכונים שביצענו במסד הנתונים I. נשים לב כי בשלב זה נשמור חותמות זמן בלבד. נכתוב את אינדקס מהופך לוקאלי H לדיסק בקובץ נפרד. נמזג ב- RAM את אינדקס מהופך לוקאלי H עם אינדקס ראשי

26 מיזוג שינויי אינדקס מהופך תהליך מיזוג שינוי אינדקס מהופך לאינדקס מהופך חדש. מטרת התהליך למזג קבצים שמייצגים את השינויים באינדקס ראשי לקובץ אחד שמייצג את האינדקס מהופך ראשי. התהליך מתבצע בעת עליה של מנוע חיפוש. כלומר תוך כדי מתן שירות מנוע חיפוש שומר שינויי עדכון אינדקס על דיסק ובעת הפעלה מחדש מנוע חיפוש ממזג את השינויים לקובץ אחד המייצג את האינדקס המעודכן. אלגוריתם מיזוג שינויי אינדקס באיור 40 מודגם שלבים של אלגוריתם מיזוג שינויי האינדקס מערכת קבצים RAM מערכת קבצים M אינדקס ראשי לפני עדכון 3 אינדקס ראשי H 1 M אינדקס ראשי מעודכן 1 שינויי אינדקס F1...Fn 3 אינדקס לוקאלי I1...In איור : 40 מיזוג שינויי האינדקס הסבר לאלגוריתם מיזוג שינויי האינדקס : קלט: אינדקס ראשי לפני שינויים המאוחסן בקובץ, נסמנו M. אוסף אינדקסים לוקאליים המייצגים קבצי טקסט חדשים )שינויי אינדקס(, האינדקסים מאוחסנים בקבצים, נסמנם.F1...Fn פלט : אינדקס ראשי מעודכן המאוחסן בקובץ. 21

27 נטען ל- RAM את אינדקס מהפך ראשי מקובץ M, נסמנו H. נשים לב כי יוצרים ב- RAM רק מבני נתונים הבאים : מילון מילים בסיסיות, מילון המילים, רשימות ההצבה. שלב 4 באיור 40 עבור כל קובץ מהקבוצה,F1...Fn נבנה אינדקס מהופך לוקאלי בהתאם.I1...In שלב 4 באיור 40 עבור כל אינדקס לוקאלי Ii מהקבוצה,I1...In נמזג את האינדקס לוקאלי Ii עם אינדקס ראשי H, כלומר נמזג מבני נתונים של אינדקס לוקאלי עם מבני נתונים של אינדקס ראשי H בהתאם. מבני הנתונים המתמזגים הם : מילון מילים בסיסיות, מילון המילים, רשימות ההצבה. נשים לב כי תהליך מיזוג מתבצע ב- RAM. שלב 3 באיור 40 נמחק קבצים הבאים מהדיסק : M,.F1...Fn נכתוב את האינדקס ראשי המעודכן H לקובץ. שלב 1 באיור Pseudo Code H <- load main index from file M F[] <- build list of files that represent single indexes(new indexes to add) I[]; //local indexes For i = 1 to sizeof(f) do I[i] = loadindexfromfile(f[i]); //load local index from file merge(h, I[i]); // merge single index I[i] into H end For i = 1 to sizeof(f) do delete F[i] from disk; end delete file M save H on disk as file M; 27

28 1.1.1 תהליך חיפוש מטרת התהליך חיפוש היא לאתר קבצי טקסט שמכילים מילות חיפוש. בהינתן קבוצה W המכילה מילות חיפוש.W1,W2,..,Wn היחס בין המילים של קבוצה W הוא,OR כלומר מנוע חיפוש ימצא את קבצי טקסט המכילים תת קבוצה מילים כלשהי מקבוצת המילים W. קבצי טקסט - קבצים טקסטואליים המכילים מילים וחותמות זמן שזוהו בקבצי מדיה. קובץ טקסט מיוצג באינדקס מהופך באמצעות מספר זיהוי ייחודי. מספר זיהוי מכולל בשלב אינדוקס הקובץ. אלגוריתם חיפוש קלט : מילות חיפוש W1,W2,..,Wn כאשר סדר המילים חשוב. נסמן את הרשימת מילות החיפוש ב- W. פלט : רשימת תוצאות החיפוש, נסמנה L. הגדרות: תוצאת החיפוש - קובץ טקסט בו מופיעה לפחות מילה אחת מקבוצת המילים W. רשימה L היא רשימה ממוינת של תוצאות החיפוש לפי רלוונטיות שלהם, כלומר ככל שקובץ טקסט מכיל תת קבוצה של W יותר גדולה,כך הקובץ רלוונטי יותר. כאשר שני קבצים מכילים אותה תת קבוצה של מילים מ- W או תת קבוצה מילים אחרת אך באותו גודל, אזי קובץ טקסט נחשב יותר רלוונטי שמכיל בתוכו יתר מופעים של מילות החיפוש )שכיחות מילות חיפוש יותר גדולה בקובץ יותר רלוונטי(. מילון המילים,)Words Dictionary( D מילון מילים בסיסיות,)Stems Dictionary( S מילון מילים "עצירה",SW מסד נתונים I מאחסן את הרשימות של חותמות זמן לכל מילה ( Word. )Position Lists נעבור על רשימת המילות החיפוש W ובעזרת מילון SW נמחק מ- W את כל המילים "עצירה". עבור כל מילת חיפוש Wi כאשר 1, i n נאתר קבוצת המילים עם אותו בסיס.4.4 ונסמן את הקבוצה ב- Gi, כלומר מילים שנושאות אותה משמעות, אך נכתבות שונה. קיימות k קבוצות כך ש- n k )כי לא בהכרח כל מילת חיפוש נמצאת(. חיפוש של קבוצה Gi נבצע באמצעות מילון המילים הבסיסיות S. נשים לב כי לכל מילה מתוך 22

29 קבוצה Gi קיימת רשימת ההצבה שמכילה את מספרי זיהוי של קבצים )שבתוכם היא מופיעה( ומספר המופעים של המילה בתוך הקובץ בהתאם. S G1 Postings Lists sorts F1, 2 F2, 2 מילת חיפוש sorts sort sort F3, 2 sorting F1, 2 F4, 2 איור : 44 דוגמא אינדקס מהופך למילה.sort רשימות הצבה מכילות זוגות >מספר זיהוי של קובץ, מספר מופעים של המילה בקובץ< עבור כל קבוצה Gi כאשר 1 i k נחשב רשימה Mi כך שכל איבר של Mi הוא שלישיה מהצורה W'i< > id, freq, כאשר id הוא מספר זיהוי של קובץ טקסט, - W'i רשימת מילים מקבוצה Gi ומופיעות באותו קובץ. - freq שכיחות מצטברת של מילים מתוך קבוצה Gi שמופיעות באותו קובץ. לאחר בנית הרשימה Mi נמיין אותה בסדר יורד לפי שכיחות מילים מצטברת. נסמן את הקבוצה של הרשימות שחישבנו ב- M. לדוגמא באיור 44 מודגם אינדקס מהופך למילה.sort רשימות הצבה מכילות זוגות >מספר זיהוי של קובץ, מספר מופעים של המילה בקובץ<.3 21

30 G1 sorts M1 מילת חיפוש sorts sort F1, 5, [sorts, sorting] F2, 4, [sorts] F3, 3, [sort] F4, 2, [sorting] sorting איור : 44 רשימה M1 ממוינת לפי שכיחות המצטברת של מילים מ- G1 בתוך הקובץ נמזג לפי מספר זיהוי של קובץ) id ( את כל הרשימות M1... Mk לרשימה אחד, נסמנה P. כלומר בשלב מיזוג נעבור על כל הרשימות M1... Mk ועבור כל קובץ )לפי )id נאחד את כל הקבוצות מילים )שמצאנו בסעיף 3, W'i כך ש- 1) i k של הקובץ לקבוצה אחת ונסמן את הקבוצה ב-< WR<id, הקבוצה מכילה את כל המילים שמופיעות בקובץ ורלוונטיות לקבוצה W )מילים החיפוש(. בנוסף נחשב עבור כל קובץ מספר קבוצות מתוך G המשתתפות בקבוצה WR<id> ונסמן את המונה ב- k. במילים אחרות מונה k הוא מספר מילים מ- W שמצאנו בקובץ. נמיין בסדר יורד את רשימה P לפי מונה k ואם k זהה עבור קבצים שונים אזי נמיין לפי.freq מטרת המיון היא לסדר את הקבצים לפי רלוונטיות שלהם. ראה איור 44 נבנה רשימת התוצאות של החיפוש ונסמנה L. כל איבר של P מייצג קובץ ומילים הרלוונטיות שמצאנו בתוכו. נעתיק את כל האיברים מרשימה P לרשימה L כאשר סדר של איברים חשוב ונוסיף רשימות של חותמות זמן עבור מילים שמצאנו ברמת הקובץ. מטרת הבניה של רשימה L היא השלמת מידע על מילים שמצאנו, משמעו נשלוף מבסיס הנתונים את רשומות חותמות זמן עבור מילים שמצאנו ונוסיף אותן לתוצאות ברשימה L. לדוגמא באיור 43 מודגמת רשימת התוצאות עבור מילת חיפוש.sort

31 רשימה L F1, 5 F2, 4 F3, 3 F4, 2 sorts 14, 80, 92, 200 sorting 44, 98 sorts 10, 22 sorting 24, 25, 105 sort 3, 60, 150 איור 43: רשימת התוצאות L 21

32 1.1.1 דיאגראמת מחלוקות יישום מנוע חיפוש מורכב משני מודולים עיקריים : מודול אינדוקס הנתונים ומודול חיפוש הנתונים. מודול אינדוקס הנתונים אחראי על כל התהליכים של אינדוקס נתונים ומודול חיפוש הנתונים אחראי על כל תהליכי חיפוש נתונים בתוך אינדקס מהופך. מודול אינדוקס הנתונים באיור 41 מודגמת דיאגראמת מחלקות של מודול אינדוקס הנתונים Index SearchManager 1 1 «uses» PersistenceManager +loadmainindex() -stemsdictionary : Map<String, List<WordInfo>> -postingslist : Map<String, WordInfo> -indexedfiles : Map<Long, DocumentMetadata> +addindex(documentindex index)() +writeexternal() +readexternal() +searchexactword() +searchstemword() «uses» CSVFileReader Stemmer Search +stem(word)() +main() «uses» «uses» 1 TextReader -docmetadata : DocumentMetadata 1 DocumentIndex 1 * * -docmetadata : DocumentMetadata +addword(word)() 1 1 DocumentStatistics «uses» * * StopWordsDictionary +load() +isstopword(in word) : bool 1 StatisticsManager +storestatistics() TextReaderFactory +createparser() 1 «interface» IWordPositionsStorage +addword() +getwordmetadatalist() +save() «uses» JDBM3PositionsStorage IndexTask DocumentMetadata +index() 1 * LoadTextIndexTask +init() +run() איור 41: דיאגראמת מחלוקות של מודול אינדוקס הנתונים 22

33 - Search מחלקה ראשית. המחלקה אחראית על אתחול והרצה תהליכים ראשיים במנוע חיפוש. בשלב אתחול המלקה טוענת תצורת מנוע חיפוש )SearchConfig( ולאחר מכן המחלקה מאתחלת מופעים של מחלקות הבאות :,StatisticsManager,SearchManager.StopWordsDictionary לאחר שלב אתחול המחלקה מריצה את המחלקה LoadTextIndexTask בתהליכון נפרד. - SearchManager תפקידה של המחלקה הוא לספק ממשק חיפוש בתוך אינדקס מהופך. המחלקה מחזיקה אינדקס מהופך ומסדי נתונים של חותמות זמן. - IndexTask מחלקה מופשטת המגדירה שלבים עיקריים של תהליך אינדוקס של קובץ אחד. - LoadTextIndexTask המחלקה יורשת ממחלקה מופשטת IndexTask ומממשת אלגוריתם זיהוי קבצים חדשים והעברתם לתהליך אינדוקס שממומש במחלקה.IndexTask - IWordPositionsStorage ממשק שבא להבטיח שייקרא בזמן השמירה של חותמות זמן עבור מילה בקובץ. מספק ממשק למימושים שונים של מסד נתונים לאחסון חותמות זמן. - JDBM3PositionsStorage מימוש ממשק IWordPositionsStorage בעזרת ספריית קוד פתוח.JDBM3 הספרייה מממשת HashMap מגובה על דיסק קשיח. - StopWordsDictionary המחלקה מממשת מילון מילים עצירה. המחלקה טוענת מילים עצירה מקובץ טקסטואלי ומספקת ממשק לזיהוי מילים עצירה, כלומר בהינתן מילה כלשהי, הממשק יקבע האם המילה הנתונה היא מילת עצירה או לא. - StatisticsManager המחלקה אוספת סטטיסטיקות שונות של תהליך אינדוקס הנתונים ושומרת את הסטטיסטיקות בקובץ. - DocumentStatistics המחלקה אוספת סטטיסטיקות של תהליך אינדוקס עבור קובץ טקסט אחד. - TextReaderFactory המחלקה מממשת תבנית עיצוב "שיטת המפעל" במטרה להסתיר את תהליך יצירת האובייקט מסוג.TextReader בעתיד משתמש יוכל בקלות להוסיף סוגים חדשים של.TextReader 22

34 - TextReader ממשק שבא להבטיח שיופעלו את השיטות שלו כאשר תהליך האינדוקס יצטרך לקרוא תוכן של קובץ קלט חדש. - CSVFileReader המחלקה מממשת ממשק TextReader ומאפשרת לקרוא קבצים בפורמט.CSV - Stemmer המחלקה מממשת אלגוריתם algorithm" "The Porter stemming ומספקת ממשק שבעזרתו ניתן לקבל צורה בסיסית של מילה הנתונה. - PersistenceManager תפקידה של המחלקה הוא שמירה וטעינה של אינדקס מהופך בעת עדכון אינדקס ואתחול מנוע חיפוש. - Index המחלקה מממשת אינדקס מהופך ראשי. - DocumentIndex המחלקה מממשת אינדקס מהופך עבור קובץ טקסט אחד. 22

35 מודול חיפוש הנתונים באיור 46 מודגמת דיאגראמת מחלקות של מודול חיפוש נתונים StopWordsDictionary Result * 1 Query * Results +load() +isstopword(in word) : bool «uses» 1 SearchManager 1 Index -stemsdictionary : Map<String, List<WordInfo>> -postingslist : Map<String, WordInfo> -indexedfiles : Map<Long, DocumentMetadata> +addindex(documentindex index)() +writeexternal() +readexternal() +searchexactword() +searchstemword() +Results search(query )() 1 «uses» «uses» «interface» Sort «uses» * «interface» «uses» ISearchStrategy +Results search(query, Index) () «uses» «uses» * FrequenceSort RelevantSort BasedSearchStrategy +Results search(query, Index)() StemmingSearchStrategy +Results search(query, Index)() «uses» «uses» SearchConfig +ISearchStrategy getsearchstrategy(searchtype)() +Sort getsorter(sorttype)() 1 1 «interface» IWordPositionsStorage +addword() +getwordmetadatalist() +save() «uses» Stemmer +stem(word)() JDBM3PositionsStorage איור : 46 דיאגראמת מחלוקות של מודול חיפוש הנתונים 25

36 - SearchManager תפקידה של המחלקה הוא לספק ממשק חיפוש בתוך אינדקס מהופך. המחלקה מחזיקה את אינדקס מהופך ומסדי נתונים של חותמות זמן. הממשק חיפוש מקבל אובייקט מסוג Query המתאר את השאילתא של משתמש ומחזיר אובייקט מסוג Results המחזיק תוצאות החיפוש. שיטה query) Results search(query - Query המחלקה אחראית לתאר שאילתא של משתמש. המחלקה מחזיקה מילות חיפוש, סוג חיפוש, סוג מיון, מספר התוצאות בדף ומספר סידורי של דף. - Results המחלקה מחזיקה תוצאות החיפוש. המחלקה מחזיקה רשימה של אובייקטים מסוג Result וסה"כ מספר התוצאות. הרשומה ממוינות לפי רלבנטיות של התוצאות. - Result תפקידה של המחלקה הוא לתאר את כל המילים שנמצאו בקובץ טקסט )המייצג קובץ מדיה( אחד. המחלקה מורכבת משתי רשימות של מילים )אובייקט מסוג,)Word רשימה ראשונה מכילה מילים עם התאמה מדויקת למילות חיפוש ורשימה שנייה מכילה מילים עם התאמה מורחבת למילות חיפוש. - Word המחלקה מייצגת מילה ומידע על הופעתה בקובץ מדיה, כלומר רשימת חותמת זמן שבהן נאמרה המילה. - ISearchStrategy ממשק שבא להבטיח שייקרא כאשר נבצע חיפוש כאשר קלט הוא אובייקט מסוג,Query ופלט אובייקט מסוג.Results תפקידו של הממשק הוא להגדיר אסטרטגיה של החיפוש. - BasedSearchStrategy המחלקה מממשת ממשק.ISearchStrategy המחלקה מממשת אלגוריתם חיפוש בסיסי כלומר חיפוש מילים באינדקס לפי התאמה מדויקת. - StemmingSearchStrategy המחלקה מממשת ממשק.ISearchStrategy המחלקה מממשת אלגוריתם חיפוש מורחב, כלומר חיפוש מילים באינדקס לפי התאמה מורחבת. האלגוריתם מאפשר למצוא מילים שונות אשר נושאות אותו גרעין משמעות, כלומר מילים השייכות לאותו בסיס. -Sort ממשק שבא להבטיח שייקרא כאשר נבצע מיון של תוצאות החיפוש - אובייקט מסוג.Results תפקידו של הממשק הוא להגדיר אסטרטגיה של מיון תוצאות החיפוש. - RelevantSort המחלקה מממשת ממשק.Sort אלגוריתם - מיון תוצאות החיפוש לפי מספר המילות החיפוש שנמצאו בתוך קובץ הטקסט. 21

37 - FrequenceSort המחלקה מממשת ממשק.Sort אלגוריתם - מיון תוצאות החיפוש לפי מספר המופעים של מילות החיפוש בקובץ טקסט, בסדר יורד. כלומר קבצים שיש בהם מספר מופעים של מילות חיפוש גדול יותר אזי הקבצים יותר רלבנטיים. - Index המחלקה מממשת אינדקס מהופך ראשי. - Stemmer המחלקה מממשת אלגוריתם algorithm" "The Porter stemming ומספקת ממשק שבעזרתו ניתן לקבל צורה בסיסית של מילה נתונה. - IWordPositionsStorage ממשק המבטיח שייקרא בעת שנשמור חותמות זמן עבור מילה בקובץ. מספק ממשק למימושים שונים של מסד נתונים לאחסון חותמות זמן. - JDBM3PositionsStorage מימוש ממשק IWordPositionsStorage בעזרת ספרייה קוד פתוח.JDBM3 הספרייה מממשת HashMap מגובה על דיסק קשיח. - StopWordsDictionary המחלקה מממשת מילון מילות עצירה. המחלקה טוענת מילות עצירה מקובץ טקסטואלי ומספקת ממשק שתפקידו לזהות מילים עצירה, כלומר בהינתן מילה כלשהי, הממשק יקבע האם המילה הנתונה היא מילת עצירה או לא. - Search מחלקה ראשית. המחלקה אחראית על אתחול והרצה תהליכים ראשיים במנוע חיפוש. בשלב אתחול של המלקה נטענת תצורת מנוע חיפוש )SearchConfig( ולאחר מכן המחלקה מאתחלת מופעים של מחלקות הבאות :,StatisticsManager,SearchManager.StopWordsDictionary 27

38 5 ממשק משתמש ממשק משתמש מורכב משני מסכים מרכזיים : מסך חיפוש 4. מסך תוצאות 4. - Web Server תפקידו של השרת הוא להציג חלון חיפוש, לבצע שאילתות במודול אינדקס הנתונים, להציג תוצאות חיפוש. השרת ממומש בעזרת שרת אפליקציה ]7[. Tomcat ממשק משתמש גרפי ממומש באמצעות דפי HTML המכוללים על ידי Servlet 5 results.html Tomcat Server 4 SearchServlet.java Client Browser 6 1 index.html search.css 2 Search Engine 3 Media Files default.js איור : 45 ארכיטקטורה של שרת יישומים שלבי חיפוש )ראה איור 45(.4.4 משתמש ממלא את מילות החיפוש וסוג החיפוש במסך חיפוש )index.html( ושולח את בקשת החיפוש באמצעות כפתור "Search" לשרת יישומים. שרת מקבל בקשת החיפוש באמצעות פרוטוקול HTTP ומפעיל תהליך חיפוש על ידי קריאה לסרוולט. SearchServlet SearchServlet מבצע חיפוש במנוע חיפוש לפי פרמטרים שהתקבלו בבקשת החיפוש. Java Script, CSS, בונה את דף התוצאות. שימוש ב- HTML SearchServlet שרת מחזיר את דף התוצאות לדפדפן והתוצאות מוצגות למשתמש קבצי מדיה מועלים לדפדפן לפי בחירה של משתמש 22

39 1.4 מסך חיפוש מסך חיפוש - מאפשר חיפוש מספר מילים עם אופרטור בוליאני OR ביניהן, כאשר חיפוש נעשה בכל קבצי מדיה אשר אונדקסו במנוע חיפוש. סוגי החיפוש - סוג ראשון הוא חיפוש מילים עם התאמה מדויקת. מומלץ להשתמש בסוג החיפוש זה כאשר מעוניינים לקבל תוצאות שמכילות רק מילים מהשאילתה )ללא מילים נוספות(. סוג שני הוא חיפוש מילים עם התאמה מורחבת. מומלץ להשתמש בסוג החיפוש זה כאשר מעוניינים לקבל תוצאות שמכילות מילים מהשאילתה או מילים נוספות שהן הרחבה של מילות החיפוש. קבצי קלט של מערכת הם קבצי מדיה בפורמטים mp4, mp3 איור : 47 מסך חיפוש 21

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

41 1.2 מסכים סטטיסטיקות סטטיסטיקות מבוצעות אודות תהליך המרה קבצי מדיה לטקסט וכך אודות תהליך אינדוקס קבצי טקסט לתוך מנוע חיפוש איור : 41 מסך סטטיסטיקות של תהליך המרת קבצי מדיה לטקסט מסך סטטיסטיקות )איור 41( של תהליך המרת קבצי מדיה לטקסט מציג סטטיסטיקות הבאות : שם קובץ מדיה גודל קובץ מדיה אינדקס ייחודי בתוך המערכת משך זמן המדיה מספר מילים שזוהו בתוך קובץ המדיה WAV משך זמן המרה לפורמט משך זמן המרה מקובץ מדיה לקובץ טקסט סה"כ זמן הנלקח עבור כל התהליך המרה גודל קובץ מדיה בפורמט WAV גודל קובץ טקסט )קובץ פלט( ניתן להסיק מסטטיסטיקות דברים הבאים : קצב הדיבור 21

42 יחס בין זמן עיבוד לגודל המדיה איכות הזיהוי )אורך המדיה ביחס למספר מילים שזוהו( איור : 40 מסך סטטיסטיקות של תהליך אינדוקס קבצי טקסט של תהליך אינדוקס קבצי טקסט לתוך מנוע חיפוש מציג את מסך סטטיסטיקות )איור 40( הסטטיסטיקות הבאות : שם קובץ טקסט סה"כ מילים בתוך הקובץ מספר מילים ללא חזרות מספר מילים בסיסיות מספר מילים "עצירה" ניתן להסיק מסטטיסטיקות דברים הבאים : כמות המילים חשובות להעריך גודל אינדקס מהופך איכות הזיהוי איכות ההרצאה - יחס בין מילות חשובות לבין מילות חסרת משמעות )מילות עצירה( 22

43 6 בדיקות המערכת בדיקות יחידה - הן בדיקות ברמת יחידת המערכת הקטנה ביותר )מודול( שמאמתות את פעילותה התקינה של היחידה. בדיקות אינטגרציה - הן בדיקות המבוצעת במטרה לבדוק את ההשפעה שיש לחלק מוגדר במערכת עם חלקים אחרים במערכת ועם מערכות מקבילות ומשיקות. בדיקות האינטגרציה מבוצעות על ידי חיבור של כמה מודולים בודדים ומחברים אותם למערכת או לתת מערכת, או למערכת חיצוניות. 6.1 בדיקות יחידה במערכת קיימים ארבע מודולים עצמאיים : מודול המרת קבצי מדיה, מודול אינדוקס נתונים, מנוע חיפוש, ממשק משתמש. בדיקות יחידה למודול המרת קבצי מדיה בדיקות יחידה למחלקה.MediaExtractorManager המחלקה מייצגת את המודול המרת קבצי מדיה. 4. המרת קובץ ווידאו לקובץ טקסטואלי קלט : קובץ ווידאו בפורמט MP4 פלט : קובץ טקסטואלי בפורמט CSV שלבי הבדיקה 4. נריץ את המחלקה )MediaExtractorManager( בעזרת פונקציה ראשית 4. נעביר קובץ ווידאו test.mp4 בפורמט MP4 לתיקיה VIDEO_SEARCH_HOME\input\video 3. נפתח קובץ מעקב VIDEO_SEARCH_HOME\logs\recognition.log הסתיים. הדפסה הבאה תופיע בקובץ מעקב לאחר סיום תהליך המרה: ונוודא כי תהליך המרה End extract task for file : VIDEO_SEARCH_HOME\data\recognition\process\test_<id>.mp4 1. נוודא כי נוצר קובץ טקסטואלי test_<id>.mp4.csv בתיקיה VIDEO_SEARCH_HOME\data\text 6. נפתח את הקובץ test_<id>.mp4.csv וחותמות זמן בהתאם לקובץ ווידאו. דוגמא עבור קובץ טקסטואלי : ונבדוק כי הקובץ בפורמט CSV ומכיל מילים word,starttime all,0.69 i,0.79 raised,2.17 more,3.01 than,

44 they,6.45 landed,8.44 in,9.0 the,10.56 midst,10.95 of,11.38 my, המרת קובץ אודיו לקובץ טקסטואלי קלט : קובץ אודיו בפורמט MP3 פלט : קובץ טקסטואלי בפורמט CSV שלבי הבדיקה 4. נריץ את המחלקה )MediaExtractorManager( בעזרת פונקציה ראשית 4. נעביר קובץ אודיו test.mp3 בפורמט MP3 לתיקיה VIDEO_SEARCH_HOME\input\video 3. נפתח קובץ מעקב VIDEO_SEARCH_HOME\logs\recognition.log הסתיים. הדפסה הבאה תופיע בקובץ מעקב לאחר סיום תהליך המרה: ונוודא כי תהליך המרה End extract task for file : VIDEO_SEARCH_HOME\data\recognition\process\test_<id>.mp3 1. נוודא כי נוצר קובץ טקסטואלי test_<id>.mp3.csv בתיקיה VIDEO_SEARCH_HOME\data\text 6. נפתח את הקובץ test_<id>.mp3.csv וחותמות זמן בהתאם לקובץ ווידאו. ונבדוק כי הקובץ בפורמט CSV ומכיל מילים בדיקת יחידה למחלקה.TextExtractorTask קלט : קובץ מדיה.test.mp4 הקובץ ימוקם בתיקיה process פלט : קובץ מדיה מקורי עם מספר ייחודי בשם הקובץ. סטטיסטיקות תהליך המרה של קובץ מדיה )קלט( קובץ טקסטואלי שמכיל מילים שנאמרו בקובץ מדיה)קלט( VIDEO_SEARCH_HOME\data\recognition\process\ לתיקיה test.mp4 שלבי הבדיקה 4. נעתיק קובץ מדיה נריץ בדיקה testtextextractortask בעזרת תוכנה JUnit 4. לאחר הרצת הבדיקה נוודא כי : 3. נוצר קובץ VIDEO_SEARCH_HOME\data\media\video\test_<id>.mp4 כאשר שם של קובץ מכיל מספר ייחודי) id ( קובץ VIDEO_SEARCH_HOME\data\media\statistics\recognizeStats.csv התעדכן בסטטיסטיקות של תהליך המרה עבור קובץ מדיה test.mp4 22

45 נוצר קובץ.VIDEO_SEARCH_HOME\data\text\test_<id>.mp4.csv הקובץ מכיל מילים שנאמרו בקובץ מדיה )קלט( 25

46 בדיקת יחידה למחלקה.RecognitionStatistics נבצע את הבדיקה בעזרת תוכנה.JUnit בדיקת יחידה testrecognitionstatistics( ) : ניצור מופעה של מחלקה RecognitionStatistics ונאתחל את המופע בנתונים. נשווה את מחרוזת הנוצרת על ידי המחלקה )ייצוג טקסטואלי של הנתונים( עם מחרוזת הצפויה. נבצע את הבדיקה עבור ייצוג בפורמט CSV ו- READBLE בדיקת יחידה למחלקה.CSVWordWriter נבדוק שהמחלקה יוצרת קבצים בפורמט.CSV נבצע את הבדיקה בעזרת תוכנה.JUnit בדיקה - testwrite ניצור מופעה של Word כאשר היא מכילה מילה sort וחתימת זמן 40 ונכתוב אותה לקובץ test.csv בעזרת מחלקה.CSVWordWriter נקרא את הקובץ test.csv מהדיסק ונשווה עם תוצאה הצופייה : word,starttime sort, 10.0 בדיקת יחידה למחלקה.SphinxEngine נבדוק שהמחלקה מזהה מילים בקובץ קול. קלט : קובץ קול בפורמט )test.wav(wav פלט : קובץ טקסטואלי בפורמט.)testspeach.csv( CSV הקובץ יכיל מילים שנאמרו בקובץ קול )קלט(. נבצע את הבדיקה בעזרת תוכנה.JUnit הבדיקה testspeechtotext יוצרת מופע של מחלקה SphinxEngine עם פרמטרים הבאים : "temp/test.wav",csvwordwriter("temp/testspeach.csv") לאחר מכן הבדיקה מריצה את התהליך זיהוי דיבור של קובץ.test.wav בסיום התהליך זיהוי דיבור נוודא כי מילים שנאמרו בקובץ test.wav מופיעות בקובץ טקסטואלי.testspeach.csv בדיקות יחידה למחלקה.FFmpegConvertor נבצע את הבדיקות בעזרת תוכנה.JUnit 4. בדיקה נכונות של המרת קובץ קול בפורמט MP3 לקובץ קול בפורמט.WAV שם בדיקה ב- JUnit הוא.testFFmpegConvertorMP3 קלט : קובץ קול test.mp3 פלט : קובץ קול test_<id>.mp3.wav FFmpegConvertor ניצור מופע של מחלקה נבצע שיטה convert של מחלקה FFmpegConvertor כאשר קובץ קול )test.mp3( הוא קלט 21

47 נבדוק בתיקיה VIDEO_SEARCH_HOME\temp שנוצר קובץ קול WAV והפורמט של הקובץ הוא test_<id>.mp3.wav בדיקה נכונות של המרת קובץ ווידאו בפורמט MP4 לקובץ קול בפורמט.WAV שם בדיקה ב- JUnit הוא.testFFmpegConvertorMP4.4 קלט : קובץ ווידאו test.mp4 פלט : קובץ קול test_<id>.mp4.wav ניצור מופע של מחלקה FFmpegConvertor נבצע שיטה convert של מחלקה FFmpegConvertor כאשר קובץ ווידאו )test.mp4( הוא קלט נבדוק בתיקיה VIDEO_SEARCH_HOME\temp שנוצר קובץ קול WAV והפורמט של הקובץ הוא test_<id>.mp4.wav בדיקות יחידה למודול אינדוקס נתונים ומנוע חיפוש בדיקות יחידה למחלקה.PersistenceManager נבדוק את יכולת העלאה של אינדקס מהופך מקובץ ואחסון של אינדקס מהופך לקובץ. קלט : קובץ שמייצג אינדקס מהופך תוצאה צפויה : נתונים מאונדקסים לא נעלמים כתוצאה מאתחול מחדש של מנוע חיפוש בדיקה : ניצור קובץ test_1.csv )פורמט )CSV נוסיף לקובץ נתונים הבאים : נריץ את מנוע חיפוש )מודול אינדוקס הנתונים הוא מודול של מנוע חיפוש( word,starttime sort,10.00 VIDEO_SEARCH_HOME\tomcat\bin\startup.bat נעתיק את הקובץ test_1.csv לתיקיה VIDEO_SEARCH_HOME\data\text נוודא כי קובץ test_1.csv מאונדקס באינדקס מהופך משתמש גרפי נבצע אתחול מחדש של מנוע חיפוש באמצעות הרצה פקודות הבאות: VIDEO_SEARCH_HOME\tomcat\bin\shutdown.bat VIDEO_SEARCH_HOME\tomcat\bin\startup.bat o o - נחפש מילה sort בעזרת ממשק נבצע חיפוש של מילה sort בעזרת ממשק משתמש גרפי. תוצאה הצפויה : המילה sort בקובץ test_1 מצאנו את 27

48 בדיקות יחידה למחלקה Index בדיקות יחידה למחלקה.DocumentIndex נבדוק : יצירת האינדקס החדש עבור id נתון, הוספת מילים לתוך האינדקס, מציאת מילים )שהוספנו( באינדקס נבצע את הבדיקות בעזרת תוכנה JUnit שם הבדיקה documentindextest קוד הבדיקה : DocumentMetadata docmd = new DocumentMetadata(1, "test"); DocumentIndex docindex = new DocumentIndex(docMD); docindex.addword(new WordToken("sort")); WordInfo info = docindex.searchexactword("sort"); asserttrue(info.getdocuments().get(0).documentid == 1); בדיקות יחידה למחלקה IndexTask נבדוק : יצירת האינדקס החדש, מיזוג אינדקס לתוך אינדקס ראשי, מציאת מסמכים לפי מילה, מציאת מסמכים לפי מילות בסיס נבצע את הבדיקות בעזרת תוכנה JUnit שם הבדיקה indextest DocumentMetadata docmd = new DocumentMetadata(1, "test"); DocumentIndex docindex = new DocumentIndex(docMD); docindex.addword(new WordToken("sort")); Index index = new Index(); index.addindex(docindex); WordInfo info = index.searchexactword("sort"); asserttrue(info.getdocuments().get(0).documentid == 1); List<WordInfo> infostems = index.searchstemword("sort"); asserttrue(infostems.get(0).getdocuments().get(0).documentid == 1); קוד הבדיקה : בדיקות יחידה למחלקה.LoadTextIndexTask נבדוק : קובץ קלט נלקח מתיקיה text ולאחר תהליך אינדוקס מועבר לתיקיה.done text done קלט : קובץ test_1.csv בתיקיה פלט : קובץ test_1.csv בתיקיה נבצע את הבדיקות בעזרת תוכנה JUnit שם הבדיקה testloadtextindextask קוד הבדיקה : String input = CommonUtils.BASE_DIR+"data"+File.separator+"text"+File.separator; StatisticsManager.initStatisticsFile(CommonUtils.DOCUMENT_STATISTICS_FILE); LoadTextIndexTask task = new LoadTextIndexTask(input); task.active = false; 22

49 task.run(); String output = CommonUtils.BASE_DIR+File.separator+"data"+File.separator+"text"+ File.separator+"done"+File.separator+"test_1.csv"; asserttrue(new File(output).exists()); בדיקות יחידה למחלקה. JDBM3PositionsStorage נבדוק : הוספה חתימת זמן של מילה וקובץ )לפי id של הקובץ( נתונים. שליפה רשימות של חותמות זמן לפי מילה נתונה. נבצע את הבדיקות בעזרת תוכנה JUnit שם הבדיקה testjdbm3positionsstorage קוד הבדיקה : JDBM3PositionsStorage db = JDBM3PositionsStorage.getInstance(); WordToken wordtoken = new WordToken("sort"); wordtoken.starttime = 10f; db.addword(wordtoken, new DocumentMetadata(1, "test_1.csv")); Map<Long, List<WordMetadata>> list = db.getwordmetadatalist("sort"); if(list!= null){ asserttrue(list.containskey((long)1)); }else{ fail("document is not found"); } בדיקות יחידה למחלקה.StopWordsDictionary נבדוק : העלאת קובץ מילים עצירה, בדיקה מילים עצירה. נבצע את הבדיקות בעזרת תוכנה JUnit שם הבדיקה teststopwordsdictionary קוד הבדיקה : StopWordsDictionary dictionary = StopWordsDictionary.getInstance(); dictionary.load("temp/test.stop"); asserttrue(dictionary.isstopword("and")); בדיקות יחידה למחלקה.DocumentStatistics נבצע את הבדיקה בעזרת תוכנה.JUnit בדיקת יחידה: ניצור מופעה של מחלקה DocumentStatistics ונאתחל את המופע בנתונים. נשווה את מחרוזת הנוצרת על ידי המחלקה )ייצוג טקסטואלי של הנתונים( עם מחרוזת הצפויה. נבצע את הבדיקה עבור הייצוג בפורמט ו- READBLE CSV testcsvfilereader בדיקות יחידה למחלקה.CSVFileReader נבדוק : קריאה קובץ בפורמט.CSV נבצע את הבדיקות בעזרת תוכנה JUnit שם הבדיקה 21

50 קוד הבדיקה : CSVFileReader reader = new CSVFileReader(new File("temp/test.csv")); Iterator<WordToken> iter = reader.iterator(); WordToken word = iter.next(); asserttrue(word.getword().equals("word")); בדיקות יחידה למחלקה.Stemmer נבדוק : נכונות גזירת מילת בסיס ממילה נתונה קלט : מילה פלט : מילת בסיס של מילת קלט נבצע את הבדיקות בעזרת תוכנה JUnit שם הבדיקה teststemmer קוד הבדיקה : String baseword = "sort"; asserttrue(baseword.equals(stemmer.getinstance().stem("sort"))); asserttrue(baseword.equals(stemmer.getinstance().stem("sorts"))); asserttrue(baseword.equals(stemmer.getinstance().stem("sorting"))); asserttrue(baseword.equals(stemmer.getinstance().stem("sorted"))); בדיקות יחידה למחלקות SearchManager וSearch המחלקות אחראיות על אתחול תהליכי אינדוקס וחיפוש. נבדוק : מודולים אינדוקס וחיפוש מאותחלים לאחר אתחול של מחלקה.Search ניתן לחפש נתונים באמצעות ממשק.SearchManager בדיקה : נבצע את הבדיקות בעזרת פקודות CLI 4. נריץ את מנוע חיפוש בעזרת שיטה ראשית) main ( של Search 4. נבדוק בקובץ מעקב )\logs\search.log( קיימות הדפסות הבאות : ****************** START SEARCH ENGINE ********************** Start Search Instance Init search configuration Start loading stop words dictionary Stop words dictionary was loaded successfully. Number of stop words : 119 Start Load Index Done snapshot of main index. Snapshot time : 4ms End Load Index. Load time : 85ms נבצע חיפוש על ידי הקלדה מילה sort בשורת הקלט של מנוע חיפוש )CLI( Enter search phrase : sort 1. Document Id : 1. Total num of found words : 5 Document Name : test_1.csv Exact match words. Num of words : 5 < sort : 5 > [ 10.0 ] Refined words. Num of words : 0.3 נקבל : 51

51 Number Results in Page : 1 Total number of results : 1 Search time : 74ms word,starttime sort,10.0 sorting,15 sorts,20 sorted,30 נעתיק קובץ test_2.csv לתיקיה data\text )תיקיית אינדוקס נתונים( תוכן הקובץ :.1 בדיקה יחידה למחלקה.StemmingSearchStrategy נבדוק כי מנוע חיפוש מחזיר תוצאות Enter search phrase : sort שמכילות מילים בעלות אותו בסיס כמו של מילת החיפוש נבצע חיפוש על ידי הקלדה מילה sort בשורת הקלט של מנוע חיפוש )CLI( 4. Document Id : 2. Total num of found words : 4 Document Name : test_2.csv Exact match words. Num of words : 1 < sort : 1 > [ 10.0 ] Refined words. Num of words : 3 < sorting : 1 > [ 15.0 ] < sorts : 1 > [ 20.0 ] < sorted : 1 > [ 30.0 ] נקבל : Number Results in Page : 4 Total number of results : 4 Search time : 1ms חיפוש, חיפוש מורחב, מיון התוצאות לפי רלוונטיות test_1.csv נאנדקס שלוש קבצים הבאים : word,starttime sort,10.0 test_2.csv word,starttime sort,10.0 sorting,15 sorts,20 sorted,30 test_3.csv word,starttime quick,10.0 sort,15 חיפוש. נבצע את החיפוש על ידי הקלדה מילה sort עם אופציה e- בשורת הקלט של מנוע חיפוש.)CLI( אופציה e : חיפוש ללא הרחבות, כלומר לא ימצאו מילים בעלות אותו בסיס. 51

52 Enter search phrase : -e sort 1. Document Id : 1. Total num of found words : 1 Document Name : test_1.csv Exact match words. Num of words : 1 < sort : 1 > [ 10.0 ] Refined words. Num of words : 0 2. Document Id : 2. Total num of found words : 1 Document Name : test_2.csv Exact match words. Num of words : 1 < sort : 1 > [ 10.0 ] Refined words. Num of words : 0 3. Document Id : 3. Total num of found words : 1 Document Name : test_3.csv Exact match words. Num of words : 1 < sort : 1 > [ 15.0 ] Refined words. Num of words : 0 Number Results in Page : 3 Total number of results : 3 Search time : 2ms חיפוש מורחב. נבצע את החיפוש על ידי הקלדה מילה sort בשורת הקלט של מנוע חיפוש.)CLI( Enter search phrase : sort 1. Document Id : 2. Total num of found words : 4 Document Name : test_2.csv Exact match words. Num of words : 1 < sort : 1 > [ 10.0 ] Refined words. Num of words : 3 < sorting : 1 > [ 15.0 ] < sorts : 1 > [ 20.0 ] < sorted : 1 > [ 30.0 ] 2. Document Id : 1. Total num of found words : 1 Document Name : test_1.csv Exact match words. Num of words : 1 < sort : 1 > [ 10.0 ] Refined words. Num of words : 0 3. Document Id : 3. Total num of found words : 1 Document Name : test_3.csv Exact match words. Num of words : 1 < sort : 1 > [ 15.0 ] Refined words. Num of words : 0 Number Results in Page : 3 Total number of results : 3 Search time : 1ms מיון תוצאות החיפוש לפי רלוונטיות. נבצע את החיפוש על ידי הקלדה מילים quick sort בשורת הקלט של מנוע חיפוש.)CLI( 52

53 Enter search phrase : quick sort 1. Document Id : 3. Total num of found words : 2 Document Name : test_3.csv Exact match words. Num of words : 2 < quick : 1 > [ 10.0 ] < sort : 1 > [ 15.0 ] Refined words. Num of words : 0 2. Document Id : 2. Total num of found words : 4 Document Name : test_2.csv Exact match words. Num of words : 1 < sort : 1 > [ 10.0 ] Refined words. Num of words : 3 < sorting : 1 > [ 15.0 ] < sorts : 1 > [ 20.0 ] < sorted : 1 > [ 30.0 ] 3. Document Id : 1. Total num of found words : 1 Document Name : test_1.csv Exact match words. Num of words : 1 < sort : 1 > [ 10.0 ] Refined words. Num of words : 0 Number Results in Page : 3 Total number of results : 3 Search time : 1ms 6.4 בדיקות אינטגרציה העלאה קובץ וידאו למערכת קלט : קובץ וידאו.test_video.mp4 הקובץ מכיל הרצאת וידאו תוצאות צפויות לאחר העלאה: ניתן למצוא את הקובץ לפי מילים שנאמרו בתוכו הקובץ מופיע בסטטיסטיקות תהליכי המרה ואינדוקס שלבי הבדיקה : VIDEO_SEARCH_HOME/tomcat/bin/startup.bat VIDEO_SEARCH_HOME/bin/startRE.bat 4. להפעיל מנוע חיפוש. להריץ פקודה : 4. להפעיל יישום המרת קבצי מדיה. להריץ פקודה : 3. לפתוח דפדפן ולהקליד כתובת הבאה :. ייפתח מסך חיפוש 1. לעלות קובץ וידאו.test.mp4 בחירה קובץ על ידי כפתור בחירת הקובץ והעלאת הקובץ על ידי לחיצה על כפתור העלאת הקובץ. 6. להמתין עד שקובץ קלט test_video.mp4 יאונדקס למערכת. ניתן לעקוב אחרי תהליכים המרה ואינדוקס בקבצים מעקב הבאים :,recognition.log search.log 52

54 לוודא שסטטיסטיקות של קובץ קלט test_video.mp4 נמצאות דף בסטטיסטיקות של תהליך המרה קבצי מדיה לטקסט לוודא שסטטיסטיקות של קובץ קלט test_video.mp4 נמצאות דף בסטטיסטיקות של תהליך אינדוקס קבצי טקסט לבצע חיפוש מילים שנאמרו בקובץ קלט על ידי ממשק משתמש גרפי VIDEO_SEARCH_HOME/tomcat/bin/startup.bat VIDEO_SEARCH_HOME/bin/startRE.bat העלאה קובץ קול למערכת קלט : קובץ קול.test_audio.mp3 הקובץ מכיל נאום תוצאות צפויות לאחר העלאה: ניתן למצוא את הקובץ לפי מילים שנאמרו בתוכו הקובץ מופיע בסטטיסטיקות תהליכי המרה ואינדוקס שלבי הבדיקה : 4. להפעיל מנוע חיפוש. להריץ פקודה : 4. להפעיל יישום המרת קבצי מדיה. להריץ פקודה : 3. לפתוח דפדפן ולהקליד כתובת הבאה :. ייפתח מסך חיפוש 1. לעלות קובץ וידאו.test_audio.mp3 בחירה קובץ על ידי כפתור בחירת הקובץ והעלאת הקובץ על ידי לחיצה על כפתור העלאת הקובץ. 6. להמתין עד שקובץ קלט test_audio.mp3 יאונדקס למערכת. ניתן לעקוב אחרי תהליכים המרה ואינדוקס בקבצים מעקב הבאים :,recognition.log search.log 5. לוודא שסטטיסטיקות של קובץ קלט test_audio.mp3 נמצאות דף בסטטיסטיקות של תהליך המרה קבצי מדיה לטקסט 7. לוודא שסטטיסטיקות של קובץ קלט test_audio.mp3 נמצאות דף בסטטיסטיקות של תהליך אינדוקס קבצי טקסט 8. לבצע חיפוש מילים שנאמרו בקובץ קלט על ידי ממשק משתמש גרפי. 52

55 7 מקרה בוחן כמקרה בוחן נאנדקס מאגר הרצאות וידאו מתחומים שונים כגון מדעי המחשב וביולוגיה. מאגר הרצאות מכיל קרוב ל- 440 הרצאות שונות ממרצים שונים. משך ההרצאות נע בין 6 דקות לשעה וחצי. הרצאות נלקחו ממאגר ]47[. לאחר העלאה ואינדוקס של מאגר הרצאות קיבלנו סטטיסטיקות של תהליכי המרה ואינדוקס אשר במלואן ניתן לראות בנספח א. דוגמה לסטטיסטיקות של תהליך המרה קבצי מדיה לטקסט Media File Media File Size Duration Recognized Words Total Time Algorithms1.mp h 26m 17s 515ms h 31m 17s 416ms Algorithms2.mp h 34m 06s 884ms h 36m 22s 375ms Algorithms3.mp h 23m 07s 762ms h 23m 49s 331ms Lecture_15_Machine_Learning _(Stanford).mp h 17m 17s 512ms h 42m 39s 009ms Big DNA viruses (17-27).mp m 27s 274ms m 01s 877ms DNA basics (23-57).mp m 57s 525ms m 40s 270ms הטבלא מציגה מספר הרצאות מתחומים שונים : Algorithms1.mp4,Algorithms2.mp4 - Lecture_15_Machine_Learning_(Stanford).mp4 Big DNA viruses (17-27).mp4,DNA basics (23-57).mp4 תחום אלגוריתמים תחום כריעת מידע - תחום ביולוגיה - ניתן לראות בשורה ראשונה של הטבלה כי תהליך המרה הצליח לזהות מילים מתוך הרצאת ווידאו Algorithms1.mp4 כאשר אורך ההרצאה הוא שעה וחצי ומשך תהליך המרה הוא שעה וחצי. 55

56 דוגמה לסטטיסטיקות של תהליך אינדוקס טקסט לתוך אינדקס מהופך Media Name Total Number Of Words Number Of Different Words Number Of Stemmings Number Of Stop Words Algorithms1_1.mp4.csv Algorithms2_2.mp4.csv Algorithms3_3.mp4.csv Lecture_15_Machine_Learning_(Stanford)_13.mp4.csv Big DNA viruses (17-27)_106.mp4.csv DNA basics (23-57)_107.mp4.csv הטבלא מציגה מספר הרצאות מתחומים שונים : תחום אלגוריתמים תחום כריעת מידע - תחום ביולוגיה - Algorithms1.mp4,Algorithms2.mp4 - Lecture_15_Machine_Learning_(Stanford).mp4 Big DNA viruses (17-27).mp4,DNA basics (23-57).mp4 ניתן לראות בשורה ראשונה של הטבלה כי הרצאת ווידאו Algorithms1.mp4 מכילה מילים כאשר 4157 מילים שונות )ללא חזרות(, 6813 מילים "עצירה" etc.(,i(, do, in, 4547 מילות בסיס. ניתן ללמוד כי חצי מהמילים שקיבלנו הן חסרות משמעות )מילים "עצירה"(, יתר מזה מילים מיוחדות לתחומים מדעי המחשב ולביולוגיה לא מופיעות במילונים לכן לא מזוהות ולא מאונדקסות למנוע חיפוש. המילים הללו מאוד חשובות. למשל בהרצאה DNA basics (23-57)_107.mp4.csv מסבירים יסודות DNA ומילה DNA לא מופיעה במילונים, לכן לא ניתן למצוא את הרצאה לפי מילת חיפוש.DNA בעיה נוספת היא משך זמן של תהליך המרה קבצי מדיה לקבצי הטקסט מאוד ארוך. משך זמן עיבוד בערך שווה למשך הרצאה, כלומר אם משך הרצאה הוא שעה אזי משך המרה הוא בערך שעה. מסקנות במקרה בוחן אינדקסנו מעל 440 הרצאות מתחומים שונים כגון אלגוריתמים, כריעת מידה, ביולוגיה. סה"כ גודל כל הקבצי מדיה שהועלו למערכת : 1.077G סה"כ משך כל הרצאות : 50 שעות סה"כ משך תהליך המרה קבצי מדיה לקבצי טקסט : 50 שעות 51

57 סה"כ מספר מילים שזוהו : מילים סה"כ מספר מילות עצירה : מילים סה"כ מספר מילים בעלות משמעות : מילים מזה נובע כי בערך 60 אחוז מסה"כ מילים שזוהו הן חסרות משמעות סה"כ גודל כל הקבצי טקסט שהועלו למנוע חיפוש : 3.348M דוגמאות החיפוש חיפוש בהרצאה Algorithms2.mp4 מסבירים על אלגוריתמים מיון. כעת נחפש מילה "sort" ונקבל את הרצאה Algorithms2.mp4 בתוצאות החיפוש, כך שמילה "sort" נאמרה 60 פעמים ועוד 40 מופעים של מילות דומות)כגון )sorting, sorted למילה."sort" חיפוש צמד מילים בהרצאה Algorithms2.mp4 מסבירים אלגוריתם sort"."bubble כעת נחפש צמד מילים sort" "bubble ונקבל את הרצאה Algorithms2.mp4 בתוצאות החיפוש. נשים לב כי מנוע חיפוש מצא צמד sort","bubble ניתן לראות את הצמד לפי קרבה של חותמות הזמן של המילים: (15:45) sort.bubble (15:37)... 57

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

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

קרא עוד

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

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

קרא עוד

ex1-bash

ex1-bash ביה"ס למדעי המחשב סמסטר חורף תשע"ח 13.12.2017 יסודות מערכות פתוחות פתרון תרגיל מס' 7 המכללה האקדמית נתניה שימו לב: כל ההערות שבתחילת תרגילים 1-6 תקפות גם לתרגיל זה. הערה 1: החל מתרגיל זה והלאה, בכל פעם

קרא עוד

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

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

קרא עוד

(Microsoft Word - SQL\353\351\345\345\365 \341\361\351\361 \360\372\345\360\351\355 \ doc)

(Microsoft Word - SQL\353\351\345\345\365 \341\361\351\361 \360\372\345\360\351\355 \ doc) 01/07/08 כיווץ בסיס נתונים ב MS SQL 2005 מסמך זה סוקר תהליך כיווץ בסיס נתונים ב-.Microsoft SQL Server 2005 תהליך הכיווץ (Shrink), מכווץ את חלקו הלא פעיל (קובץ ה- Log ) של בסיס הנתונים ואינו נוגע בחלקו

קרא עוד

ייבוא וייצוא של קבצי אקסל וטקסט

ייבוא וייצוא של קבצי אקסל וטקסט ייבוא וייצוא של קבצי אקסל וטקסט (Importing & Exporting MS Excel Files and Text) ייבוא (Import) הפיכת קובץ טקסט, Excel מבסיס נתונים אחר. או סוגים אחרים, לטבלת,Access או העתקת טבלת Access בתחילת התהליך יש

קרא עוד

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

תוכן העניינים הוצאת חושבים קדימה הילה קדמן חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527 kadman11@gmail.com

קרא עוד

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

תוכן העניינים הוצאת חושבים קדימה הילה קדמן # חלק ב יעוץ מקצועי: חיים אברבוך מותאם לתכנית הלימודים החדשה בבתי הספר התיכוניים מהדורה חמישית הוצאת חושבים קדימה ת.ד. 1293 רעות 71908 www.kadman.net הילה קדמן 0522 525527

קרא עוד

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

מבוא לתכנות ב- JAVA  תרגול 7 מבוא לתכנות ב- JAVA תרגול 8 תזכורת - מבנה של פונקציה רקורסיבית.2 פונקציה רקורסיבית מורכבת משני חלקים עיקריים 1. תנאי עצירה: מקרה/מקרים פשוטים בהם התוצאה לא מצריכה קריאה רקורסיבית לחישוב צעד רקורסיבי: קריאה

קרא עוד

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

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג מנ' אב תשע"ז 15.08.17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' ב' שנה תשע"ז 3 שעות

קרא עוד

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007 WinZIP תוכנה לדחיסת קבצים ספטמבר 2007 תשס"ח 2007. כל הזכויות שמורות לאוניברסיטה הפתוחה. בית ההוצאה לאור של האוניברסיטה הפתוחה, רח' רבוצקי 108 ת, "ד 808, רעננה 43107. The Open University of Israel, 108

קרא עוד

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

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

קרא עוד

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

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ אוניברסיטת בן גוריון בנגב תאריך המבחן: 12.02.17 שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: 202.1.9031 מס' הקורס : הנדסת תעשיה וניהול מיועד לתלמידי : א' מועד א' סמ' שנה תשע"ד 3 שעות משך

קרא עוד

פייתון

פייתון שיעור 12: מילונים ברק גונן 1 או מילון, :hash table או,dictionary זוגות של מפתחות keys וערכים values מילון מוגדר על ידי סוגריים מסולסלים { } לדוגמה: מילון שמכיל ציונים, המפתח הוא מספר ת.ז ערך מפתח הגדרה

קרא עוד

ISI

ISI ISI - Web of Knowledge דצמבר 2007 המאגר ה - Knowledge ISI Web of הוא כלי מחקר רב תכליתי המאפשר גישה איכותית למידע אקדמי. הגישה למאגר פתוחה למנויים בלבד ומכל מחשב המחובר לרשת האוניברסיטה. כניסה למאגר ה

קרא עוד

PowerPoint Presentation

PowerPoint Presentation הקלטה עצמית באמצעות Tablet PC תמצית פעילות 2009-2014 הטמעת אוטומציה מלאה ב- 2015 מדור טכנולוגיות למידה וייעוץ מערך המחשוב אב"ג הקלטה עצמית באמצעות Tablet PC הסבר על השיטה יתרונות וחסרונות תמצית פעילות

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java אלכסיי זגלסקי ויעל אמסטרדמר 1 בירוקרטיה אלכסיי זגלסקי שעת קבלה: שני 13:00-14:00, בתיאום מראש משרד: בניין הנדסת תוכנה, חדר 209 יעל אמסטרדמר שעת קבלה: חמישי 15:00-16:00,

קרא עוד

Microsoft Word - Ass1Bgu2019b_java docx

Microsoft Word - Ass1Bgu2019b_java docx ת ר ג י ל 1 ב ק ו ר ס מ ב ו א לתכנות 202.1.9031 JAVA סמסטר ב, ת נ א י ם ו ל ו ל א ו ת תאריך אחרון להגשה בציון מלא : 02.04.19 עד שעה : 23:55, כ ל יום איחור ל א מ א ו ש ר א ו ח ל ק ממנו מודריד 10 נקודות

קרא עוד

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office 365 ProPlus בחינם. ניתן להוריד ולהתקין את הגרסאות הבאות:

קרא עוד

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

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

קרא עוד

סדנת תכנות ב C/C++

סדנת תכנות ב   C/C++ פקולטה: מדעי הטבע מחלקה: מדעי המחשב שם הקורס: מבוא למחשבים ושפת C קוד הקורס: 2-7028510 תאריך בחינה: 15.2.2017 משך הבחינה: שעתיים שם המרצה: ד"ר אופיר פלא חומר עזר: פתוח שימוש במחשבון: לא הוראות כלליות:

קרא עוד

מדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אי

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

קרא עוד

איטרטורים: 1 תוכנה 1 סתיו תשע"ג תרגיל מספר 9 הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה moodl

איטרטורים: 1 תוכנה 1 סתיו תשעג תרגיל מספר 9 הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה moodl איטרטורים: 1 תוכנה 1 סתיו תשע"ג תרגיל מספר 9 הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תעשה במערכת ה moodle בלבד.(http://moodle.tau.ac.il/) יש להגיש קובץ zip

קרא עוד

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

הכרת משאבי הספרייה קורס מקוון חיפוש במאגרי המידע ו- PubMed Biosis Previews, Zoological Record )לתלמידי החוג למדעי החיים( (Biosis Previews: חיפוש במאגרי המידע ו- PubMed Biosis Previews, Zoological Record )לתלמידי החוג למדעי החיים( (Biosis Previews: http://www.isiknowledge.com/biosis) (Zoological Record: http://www.isiknowledge.com/zoorec)

קרא עוד

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפורים נוספים... 11 1 Moodle חדש במערכת ה- מערכת מודל

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

29 מאי 2019 לכבוד המשתתפים שלום רב, הנדון: מכרז פומבי מס' 3213/2019 לתכנון, הספקת והתקנת ציוד לאולפן צילום TAU ONLINE בבניין נזריאן בקמפוס אוניברסיטת

29 מאי 2019 לכבוד המשתתפים שלום רב, הנדון: מכרז פומבי מס' 3213/2019 לתכנון, הספקת והתקנת ציוד לאולפן צילום TAU ONLINE בבניין נזריאן בקמפוס אוניברסיטת 29 מאי 2019 לכבוד המשתתפים שלום רב, הנדון: מכרז פומבי מס' 3213/2019 לתכנון, הספקת והתקנת ציוד לאולפן צילום TAU ONLINE בבניין נזריאן בקמפוס אוניברסיטת תל אביב הבהרה מס' 2 1. להלן התייחסות לשאלות הבהרה שנשאלו

קרא עוד

מערכות הפעלה קורס מס'

מערכות הפעלה קורס מס' מערכות קבצים מבוזרות מבוא מבנה כללי דוגמה: Network file system דוגמה: Google file system 1 חגית עטיה מערכות קבצים מבוזרות מאפשרות לתהליכים אשר רצים במכונות שונות, גישה ושיתוף קבצים שקיפות לאפליקציה: אפליקציה

קרא עוד

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

תוכנה 1 1 אביב תשעג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגש תוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תיעשה במערכת ה- mdle בלבד.(http://mdle.tau.ac.il/)

קרא עוד

Microsoft Word B

Microsoft Word B מרצה: שולי וינטנר. מתרגל: שלמה יונה מבוא למדעי המחשב מועד ב', סמסטר א' תשס"ג, 17/2/03 משך המבחן: שעתיים וחצי. חומר עזר: מותר כל חומר עזר, מלבד מחשב. הנחיות: 1. ודאו כי בטופס שבידיכם 8 עמודים. יש לכתוב

קרא עוד

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

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדיקות אחרונות לפני מסירה )עמודים 8-11( מבנה השאלון 5

קרא עוד

HTML - Hipper Text Makeup Language

HTML - Hipper Text Makeup Language תכנות בסביבת האינטרנט 1 תיבת טקסט טופס הטופס הוא הדרך של בעלי האתר לקבל משוב מהגולשים, מאפשר לגולש להתחבר לאתר כחבר, מאפשר לבצע רכישות באתרי קניות וכד'. כשהגולש ממלא את הטופס, מועבר תוכן הטופס לדף מיוחד

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תכנות מתקדם בשפת Java אוניברסיטת תל אביב 1 תוכנה 1 תרגול 3: עבודה עם מחרוזות )Strings( מתודות )Methods( 1 תכנות מתקדם בשפת Java אוניברסיטת תל אביב 2 מחרוזות )STRINGS( 3 מחרוזות String s = Hello ; מחרוזות

קרא עוד

PowerPoint Presentation

PowerPoint Presentation תוכנה 1 תרגול 1: סביבת העבודה ומבוא ל- Java 1 מנהלות אתר הקורס: http://courses.cs.tau.ac.il/software1/1516b/ מתרגלים: ברית יונגמן )שעת קבלה: שלישי ב- 8:00 בתיאום מראש( לנה דנקין )שעת קבלה: שלישי ב- 17:00,

קרא עוד

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

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ח תשרי תשע"ז 30.10.16 שמות המורים: ציון סיקסיק א' תכנות ב- C מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד סמ' קיץ שנה תשע"ו 3 שעות משך

קרא עוד

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

שאלהIgal : מערכים דו מימדיים רקורסיה: אוניברסיטת בן גוריון בנגב מספר נבחן : תאריך המבחן: כ"ג חשון תשע"ח 12/11/17 שמות המורים: ציון סיקסיק א' ב- C תכנות מבחן ב: 202-1-9011 מס' הקורס : הנדסה מיועד לתלמידי : ב' מועד קיץ סמ' שנה תשע"ז 3 שעות משך

קרא עוד

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

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

קרא עוד

שיעור 1

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

קרא עוד

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

מבוא למדעי המחשב מבוא למדעי המחשב מחרוזות, חתימה של פונקציה ומעטפות תוכן עניינים טיפוסים מורכבים טיפוסים מורכבים ערך שם טיפוס 12 m int undef. x boolean true y boolean arr int[] כאלה שעשויים להכיל יותר מערך פרימיטיבי אחד

קרא עוד

מיכפל

מיכפל מיכפל 0222 הוראות התקנה למהדורה 9.78 במהדורה 78.9 בוצעו מספר שינויים טכנולוגיים: שדרוג התוכנה ליצירת דוחות בפורמט PDF שינויים בטכנולוגיית השידור של טופס 102 לביטוח הלאומי במהלך עדכון גרסה זו תתקבלנה מספר

קרא עוד

מדריך למרצים ומתרגלים 1

מדריך למרצים ומתרגלים 1 מדריך למרצים ומתרגלים 1 תוכן עניינים מדריך למרצים ומתרגלים...1 קבלת סיסמה לתחנת מידע למרצה...3 הוספת חומרי למידה...6 הוספת מורשה גישה לאתר הוספת מטלה קורס...9 לאתר הקורס...11 בחירת בודקים למטלה...17 מערכת

קרא עוד

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מספיק עמדות לכולם ולכן מומלץ לעבוד ביחידים). במהלך המעבדה יהיה עליכם לבצע משימות. אם תצטרכו עזרה בשלב

קרא עוד

Slide 1

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

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

1 בחירת מנועי חיפוש באינטרנט תוצאות החיפושים באינטרנט, תלויות בבחירת מנוע חיפוש מתאים. אמנם גוגל הוא המנוע המוכר ביותר, ובכ"ז, לעתים השימוש במנוע אחר,

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

קרא עוד

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

מבוא למדעי המחשב מבוא כללי לתכנות ולמדעי המחשב 1843-0310 מרצה: אמיר רובינשטיין מתרגל: דין שמואל אוניברסיטת תל אביב סמסטר חורף 2017-8 חלק ב - מבוא לקריפטוגרפיה שיעור 5 (offset מונחים בסיסיים צופן קיסר (היסט,.1.2 1 Today

קרא עוד

People. Partnership. Trust מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסי

People. Partnership. Trust מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנבס ולסי מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסיסמא אחודה דף בית לתלמיד המאפשר גישה פשוטה להורדת הטבת האופיס מסלול Basic הפלטפורמה

קרא עוד

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

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

קרא עוד

מקביליות

מקביליות תכונות בטיחות Safety Properties גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 תזכורת: תכונות זמן ליניארי Linear Time Properties תכונות זמן-ליניארי מתארות קבוצת עקבות שהמערכת צריכה לייצר מכוונים ללוגיקה

קרא עוד

Microsoft PowerPoint - Lecture1

Microsoft PowerPoint - Lecture1 Computer Organization and Programming ארגון ותכנו ת המחשב - את"מ הרצאה מבוא 2 שפה עילית מול שפ ת מ כונה שפה עילית language) (High level שפת מכונה Language) (Machine תכנית בשפ ה עיל ית (C, Pascal, ) תכנית

קרא עוד

מקביליות

מקביליות תכונות שמורה Invariant Properties גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון 2 בדיקות מודל Checking( )Model מערכת דרישות מידול פירמול בדיקות מודל )Model Checking( מודל של המערכת תכונות פורמליות סימולציה

קרא עוד

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

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

קרא עוד

שעור 6

שעור 6 שעור 6 Open addressing אין רשימות מקושרות. (נניח שהאלמנטים מאוחסנים בטבלה עצמה, לחילופין קיים מצביע בהכנסה המתאימה לאלמנט אם אין שרשור). ב- addressing open הטבלה עלולה להימלא ב- factor α load תמיד. במקום

קרא עוד

המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return +

המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return + המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return + Line Feed( \r\n - יכולות להתעורר בעיות... זרמים, קוראים

קרא עוד

תרגול 1

תרגול 1 מבוא למדעי המחשב 2019 תרגול 5 מחרוזות, חתימות ורקורסיה מחרוזות רצף של תווים רקורסיה קריאה של מתודה לעצמה באופן ישיר או עקיף ראינו בהרצאה מחרוזות: תווים, חתימות: העמסה- String,הצהרה, overloading אתחול רקורסיה:

קרא עוד

People. Partnership. Trust שלבי הפרויקט והמסלולים השונים - פלטפורמת "קהילה לומדת" מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התח

People. Partnership. Trust שלבי הפרויקט והמסלולים השונים - פלטפורמת קהילה לומדת מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התח שלבי הפרויקט והמסלולים השונים - פלטפורמת "קהילה לומדת" מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסיסמא אחודה דף בית לתלמיד המאפשר גישה פשוטה להורדת הטבת

קרא עוד

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

תשעדד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..( תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(http://mdle.tau.ac.il/) בלבד הגשת התרגיל תעשה במערכת ה- mdle aviv

קרא עוד

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

מבוא למדעי המחשב מבוא למדעי המחשב תכנות מונחה אובייקטים תוכן עניינים טיפוסי נתונים מורכבים המחלקה String תזכורת לשימוש שעשינו במחלקה String str = new String( Hello ); s.o.p(str.tostring()); s.o.p(str.charat(4)); s.o.p(str.equals(

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים עליו כרגע )A מצביע עליו(. יש שני סוגי פקודות, פקודת

קרא עוד

PowerPoint Presentation

PowerPoint Presentation פרוטאוס הדרכה לפיתוח פרויקט מבוסס ארדואינו 1 הוראות הפעלה תוכנת פרוטאוס מכילה כמות גדולה מאוד של כלי עזר להבנת דרך ההפעלה של התוכנה. שני מקורות מידע עיקריים עומדים לרשות המשתמש מחוץ לתוכנה: o באתר האינטרנט

קרא עוד

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

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

קרא עוד

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

תוכנה חופשית מאחורי הקלעים? על סדר היום: קצת על עצמי מה זאת תוכנה חופשית? ההיסטוריה של תוכנה חופשית כיצד תוכנה חופשית משתלבת בשוק התוכנה היתרונות של ת תוכנה חופשית מאחורי הקלעים? על סדר היום: קצת על עצמי מה זאת תוכנה חופשית? ההיסטוריה של תוכנה חופשית כיצד תוכנה חופשית משתלבת בשוק התוכנה היתרונות של תוכנה חופשית. דוגמאות מהשטח 1 ליאור קפלן 30/11/05 קצת

קרא עוד

תכנות מונחה עצמים א' – תש"ע

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

קרא עוד

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

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

קרא עוד

מצגת של PowerPoint

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

קרא עוד

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

תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (6..(CLR ראשית נראה דוגמא: דוגמא: תהינה ארבע מטריצות:. A, A, A, A נסמן את גודל המטריצות בסדרה ע"י סדרת גדלים כאשר, p 5 5 p היא בגודל A {,,,5,}, P כלומר

קרא עוד

מהוא לתכנות ב- JAVA מעבדה 3

מהוא לתכנות ב- JAVA מעבדה 3 מבוא לתכנות ב- JAVA מעבדה 3 נושאי התרגול לולאות ניפוי שגיאות לולאות - הקדמה כיצד הייתם כותבים תוכנית שתדפיס את המספרים השלמים בין 1 ל- 100 בעזרת הכלים שלמדתם עד עתה? חייבת להיות דרך אחרת מאשר לכתוב 100

קרא עוד

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס מבוא למחשב שפת C. בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה לקורס. האשף קובע את סביבת הפיתוח כך שתתאים לצורכי הקורס.

קרא עוד

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמטרים של מערכים היא by reference וכן דוגמאות שמראות שמשתנים

קרא עוד

Microsoft PowerPoint - lec10.ppt

Microsoft PowerPoint - lec10.ppt תכנו ת מ ונחה ע צמ י ם בשפת ++C אוהד ברזילי אוניברסיטת תל אביב ירו ש ה מרו בה המצגת מכילה קטעים מתוך מצגת של פרופ' עמירם יהודאי ע"פ הספר: Object-Oriented Software Construction, 2nd edition, by Bertrand

קרא עוד

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

תרגיל בית מספר 1# ב 4 תרגיל בית מספר - 1 להגשה עד 72 באוקטובר בשעה ::725 קיראו בעיון את הנחיות העבודה וההגשה המופיעות באתר הקורס, תחת התיקייה.assignments חריגה מההנחיות תגרור ירידת ציון / פסילת התרגיל. הנחיות והערות ספציפיות

קרא עוד

פרויקט שורשים דמות

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

קרא עוד

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

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

קרא עוד

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc הטכניון מכון טכנולוגי לישראל אלגוריתמים (3447) סמסטר חורף 006/007 הפקולטה למדעי המחשב תכנון דינאמי תרגיל תת מחרוזת משותפת ארוכה ביותר תת-מחרוזת z k שקיימת סדרה עולה ממש,... z = z של מחרוזת נתונה x m,...,,

קרא עוד

<4D F736F F D20FAE5F1F4FA20ECE7E5E5FA20E3F2FA20ECE2E1E920E3E9F1F720FAEEE5F0E5FA20E6E9F8FA20E4F8F6E72E646F63>

<4D F736F F D20FAE5F1F4FA20ECE7E5E5FA20E3F2FA20ECE2E1E920E3E9F1F720FAEEE5F0E5FA20E6E9F8FA20E4F8F6E72E646F63> טי.וי.קליפ אולפן עריכה והקלטה לוידאו וסאונד שירותים מיוחדים לתחום החקירות והמשפט ניתוח וידאו וסאונד חוות דעת מקצועית טלפון : 09-7663465, פקס': 054-4212424, 077-4213465 נייד : רחוב הכיכר 4 (קניון הכיכר)

קרא עוד

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

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

קרא עוד

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

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

קרא עוד

מקביליות

מקביליות PROMELA גרא וייס המחלקה למדעי המחשב אוניברסיטת בן-גוריון עדכון אחרון: 21:40 15/06/2013 2 שפת מ פ ר ט עם ס מ נ ט יק ה מוגדרת באופן מתמטי "שפת תכנות" למודלים המטרה: לאפשר גם לכאלה שאינם חוקרים בתחום לבנות

קרא עוד

T01-1page

T01-1page מבוא לשפת C תירגול 1: מבוא 1 אתר הקורס webcourse.cs.technion.ac.il/234112 חדשות הקורס תרגילי בית הרצאות ותירגולים חומר עזר, מבחנים קודמים, שאלות נפוצות, ועוד... 2 אתר הקורס 3 רשימת תפוצה חובה להירשם! הודעות

קרא עוד

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

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

קרא עוד

תוכנה 1 אביב תשע"ח תרגיל מספר 8 אוספים גנריים ו- framework collection הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת ה

תוכנה 1 אביב תשעח תרגיל מספר 8 אוספים גנריים ו- framework collection הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת ה תוכנה 1 אביב תשע"ח תרגיל מספר 8 אוספים גנריים ו- framework collection הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגשת התרגיל תיעשה במערכת ה- moodle בלבד.(http://moodle.tau.ac.il/)

קרא עוד

אגף כלכלה תקציב ומסחר

אגף כלכלה תקציב ומסחר נספחי תמורה נספח א' מחשבים נייחים תוצרת HP או LENOVO כמות שנתית לצורך השוואת 400 יחידות תוצרת HP HP Compaq Pro Desk 600G3 )או כל דגם עתידי מאותה סידרה \ מאפיינים( i5-7500 CPU @ 320GHz מעבד זיכרון כרטיס

קרא עוד

מסע מדע ו - מסע ברכב שטח ביבשות רחוקות

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

קרא עוד

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

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה 2-7012610-3 תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד ב' שם המרצה: ערן עמרי, ענת פסקין-צ'רניאבסקי חומר עזר:

קרא עוד

סרגל כלים ל-Outlook או לExplorer- מדריך למשתמש

סרגל כלים  ל-Outlook  או לExplorer- מדריך למשתמש סרגל כלים ל- Outlook או ל Explorer- מדריך למשתמש 1 כני ס ה ו י צ יאה מהמערכת לכניסה יש ללחוץ על צלמית "כניסה למע רכת" ליציאה יש ללחוץ פעם נוספת לק בלת הצ למית סרגל כלים לדפד פ ן מסוג Explorer או Firefox

קרא עוד

Microsoft Word - sync_LG.doc

Microsoft Word - sync_LG.doc LG PC Suite הגדרות וביצוע סנכרון ניתן להתקין את התוכנה מדיסק המצורף לערכה ניתן לסנכרן עד 100 אירועים בלוח שנה ועד 500 אנשי קשר 1 לחץ על איקון Suite" "LG PC בשולחן העבודה 2 להגדרות הסינכרון לחץ על Sync"

קרא עוד

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. בדקו שכל העמודים ברשותכם. ב. משך המבחן שלוש שעות (180

קרא עוד

Microsoft Word - tips and tricks - wave 5.doc

Microsoft Word - tips and tricks - wave 5.doc - טיפים וטריקים Samsung S8500 Wave שקע אוזניות רמקול שקע כניסת USB חיישן תאורה מצלמה קדמית מקש נעילה לחצני הגברת / הנמכת השמע מקש המצלמה מקש SEND מקש,END כיבוי / הדלקה מקש התפריט 1 תפעול כללי < הקש את

קרא עוד

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

מבוא למדעי המחשב מבוא למדעי המחשב הממשקים Iterable,Set ו- Iterator תוכן עניינים מבנה נתונים מבנה נתונים מבנה נתונים הוא container של עצמים שמוגדרות עליו מספר פעולות למשל קבוצה של עצמים (אוסף ללא חזרות) עם הפעולות: הוספת

קרא עוד

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

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

קרא עוד

Slide 1

Slide 1 מבוא למדעי המחשב תירגול 1: מבוא 1 אתר הקורס webcourse.cs.technion.ac.il/234114 חדשות הקורס תרגילי בית חומר עזר, מבחנים קודמים, שאלות נפוצות, ועוד... הרצאות ותירגולים 2 אתר הקורס 3 רשימת תפוצה חובה להירשם!

קרא עוד