Tip:
Highlight text to annotate it
X
>> לוקאס פרייטס: היי.
ברוכים הבאים לכולם.
השם שלי הוא לוקאס פרייטס.
אני זוטר ב[ לא ברור] לומד מדעי מחשב עם התמקדות ב
בלשנות חישובית.
אז המשני הוא בשפה ותאוריה בלשנית.
אני ממש נרגש ללמד אותך החבר 'ה קצת על התחום.
זה אזור מאוד מרגש ללמוד.
גם עם הרבה פוטנציאל לעתיד.
אז, אני ממש נרגש שאתם שוקלים פרויקטים
בלשנות חישובית.
ואני אהיה יותר שמח לייעץ כל אחד מכם, אם תחליטו
תרדוף אחד מאלה.
>> אז קודם כל מה הם חישובית בלשנות?
בלשנות חישובית אז הוא צומת שבין בלשנות ו
מדעי מחשב.
אז, מה היא בלשנות?
מה זה מדעי מחשב?
גם מן הבלשנות, מה אנחנו לוקחים אותן השפות.
אז בלשנות היא למעשה המחקר של שפה טבעית באופן כללי.
שפה כל כך טבעית - אנחנו מדברים על שפה שאנחנו באמת להשתמש בו כדי
לתקשר אחד עם השני.
אז אנחנו לא בדיוק מדברים על C או ג'אווה.
אנחנו מדברים יותר על אנגלית ו שפות סיניות ואחרות שאנחנו
להשתמש כדי לתקשר אחד עם השני.
>> הדבר המאתגר על זה הוא כי עכשיו יש לנו כמעט 7,000
שפות בעולם.
אז יש די מגוון גבוה שפות שאנחנו יכולים ללמוד.
ואז אתה חושב שזה כנראה מאוד קשה לעשות, למשל,
תרגום משפה לשפה אחר, בהתחשב בכך שיש לך
כמעט 7,000 מהם.
לכן, אם אתם חושבים לעשות תרגום משפה אחת לאחר שאתה
יש כמעט יותר ממיליון שילובים שונים, כי אתה יכול
יש לי משפה לשפה.
אז זה באמת מאתגר לעשות קצת סוג של מערכת לדוגמא תרגום עבור
כל שפה.
>> אז, פינוקים בלשנות עם תחביר, סמנטיקה, פרגמטיקה.
אתם לא בדיוק צריכים לדעת מה הם נמצאים.
אבל הדבר מעניין מאוד הוא ש כדובר שפה אם, כאשר אתה לומד
שפה כילד, אתה בעצם לומד את כל הדברים האלה - סמנטיקה התחביר
ופרגמטיקה -
בעצמך.
ואף אחד לא צריך ללמד אותך על תחביר לך להבין איך משפטים הם
מובנה.
אז, זה באמת מעניין, כי זה משהו שמגיע מאוד
באופן אינטואיטיבי.
>> ומה אתה לוקח מ מדעי המחשב?
ובכן, הדבר החשוב ביותר שאנחנו יש במדעי מחשב הוא ראשון של
כל האינטליגנציה מלאכותית ולמידה מכונה.
אז, מה שאנחנו מנסים לעשות בלשנות החישובית היא ללמד
המחשב שלך איך לעשות משהו עם שפה.
>> כך, לדוגמא, במכונה תרגום.
אני מנסה ללמד איך המחשב שלי לדעת איך לעבור מאחד
שפה לאחרת.
אז, בעצם כמו ללמד שתי שפות מחשב.
אם אני עושה עיבוד שפה טבעית, שהוא במקרה לדוגמא של
גרף החיפוש של פייסבוק, אתה מלמד המחשב שלך איך להבין
שאילתות היטב.
>> לכן, אם אתה אומר "תמונות שלי חברים. "פייסבוק לא מתייחסים כי
בכללותה מחרוזת שיש סתם חבורה של מילות.
זה באמת מבין את הקשר בין "תמונות" ו "החברים שלי" ו
מבין כי "תמונות" הן רכושם של "החברים שלי".
>> אז, זה חלק מ, למשל, עיבוד שפה טבעית.
הוא מנסה להבין מה הוא היחס בין
המילים במשפט.
והשאלה הגדולה היא, האם אתה יכול ללמד את מחשב איך לדבר
שפה באופן כללי?
איזו היא שאלה מאוד מעניינת חושב, כאילו אולי בעתיד,
אתה הולך להיות מסוגל לדבר עם הטלפון הסלולרי שלך.
כמו סוג של מה שאנחנו עושים עם Siri אבל משהו דומה יותר, אתה בעצם יכול
לומר מה שאתה רוצה והטלפון הוא הולך להבין הכל.
וזה יכול להיות מעקב שאלות ולהמשיך לדבר.
זה משהו באמת מרגש, לדעתי.
>> אז, משהו על שפות טבעיות.
משהו ממש מעניין על שפות טבעיות היא, ואת זה הוא
אשראי לפרופסור לבלשנות שלי, מריה פולינסקי.
היא נותנת דוגמא ואני חושב זה באמת מעניין.
מכיוון שאנו לומדים את שפה מכאשר אנחנו נולדים ולאחר מכן האם שלנו
שפת סוג של גדלה עלינו.
>> ובעצם אתה לומד שפה מקלט מינימאלי, נכון?
אתה פשוט מקבל קלט משלך הורים של מה נשמעת בשפה שלך
אוהב ואתה פשוט ללמוד את זה.
אז, זה מעניין, כי אם אתה מסתכל במשפטים האלה, למשל.
אתה נראה, "מרי לובש מעיל כל פעם שהיא יוצאת מהבית. "
>> במקרה זה, זה אפשרי לי מילה "היא" מתייחסת למריה, נכון?
אתה יכול להגיד "מרי לובש מעיל בכל פעם שמשאיר את מרי
בית. ", כך שזה בסדר.
אבל אז אם אתה מסתכל על המשפט "היא מניחה אותו על מעיל בכל פעם שמרי
עוזב את הבית. "אתה יודע שזה אי אפשר לומר כי "היא" הוא
בהתייחסו למרי.
>> אין שום דרך לומר ש" מרי מעמיד במעייל בכל פעם שמשאיר את מרי
הבית. "אז זה מעניין, כי זה הסוג של אינטואיציה
שכל דובר ילידים יש.
ואף אחד לא לימד אותנו שזה הוא אופן שבו התחביר עובד.
ושאתה יכול להיות רק "היא" זה בהתייחסו למרי במקרה הראשון,
ובעצם בזה אחר יותר מדי, אבל לא בתחום הזה.
אבל כולם סוג של מקבל לאותה התשובה.
כולם מסכים על זה.
אז זה באמת מעניין איך למרות אתה לא יודע את כל הכללים
בשפה שלך שאתה סוג של ההבנה איך השפה עובדת.
>> אז הדבר המעניין על טבעי שפה היא שאין לך
יודע כל תחביר לדעת אם משפט הוא דקדוק או לא דקדוקיים עבור
רוב המקרים.
מה שגורם לך לחשוב שאולי מה שקורה הוא שדרך החיים שלך, אתה
רק לשמור מקבל יותר ויותר משפטים אמרו לך.
ואז אתה שומר את השינון כל המשפטים.
ולאחר מכן, כאשר מישהו אומר לך משהו, אתה שומע את המשפט הזה ו
אתה מסתכל על אוצר המילים שלך של משפטים ולראות אם
המשפט שהוא שם.
ואם זה יש לך אומר שזה דקדוק.
אם זה לא אתה אומר שזה לא דקדוקיים.
>> לכן, במקרה זה, היית אומר, הו, אז יש לך רשימה ענקית של כל
משפטים אפשריים.
ואז כשאתה שומע משפט, אתה יודע אם זה דקדוק או
לא מבוסס על זה.
העניין הוא שאם אתה מסתכל על משפט, למשל, "
TFS CS50 חמישה ראשים מבושלים העיוור תמנון באמצעות ספל DAPA. "זה
בהחלט לא משפט ששמעת לפני כן.
אבל באותו הזמן אתה יודע שזה די הרבה דקדוק, נכון?
אין טעויות דקדוק ואתה יכול להגיד את זה
זה גזר דין שניתן.
>> אז זה גורם לנו לחשוב שבעצם דרך שבה אנו לומדים שפה היא לא רק
על ידי בעל מאגר מידע עצום של אפשרי מילות או משפטים, אלא יותר של
הבנת הקשר בין מילות במשפטים אלה.
האם זה הגיוני?
כן, אז השאלה היא, יכול מחשבים ללמוד שפות?
האם אנחנו יכולים ללמד את השפה למחשבים?
>> אז, בואו נחשוב על ההבדל בין דובר ילידים של שפה
ומחשב.
אז, מה קורה לרמקול?
ובכן, דובר השפה אם לומדת שפה מחשיפה אליו.
בדרך כלל בילדות שנותיה הראשונות.
אז, בעצם, רק יש לך תינוק, ואתה תמשיך לדבר אליו, וזה
פשוט לומד איך לדבר השפה, נכון?
אז, אתה נותן בעצם קלט לתינוק.
כן, אז אתה יכול לטעון שמחשב יכול לעשות את אותו הדבר, נכון?
רק אתה יכול לתת שפה כקלט למחשב.
>> כמו למשל חבורה של קבצים שיש להם ספרים באנגלית.
אולי זו דרך אחת, כי אתה אולי יכול ללמד
אנגלית במחשב, נכון?
ולמעשה, אם חושב על זה, זה לוקח לך אולי כמה
ימים לקרוא את ספר.
למחשב זה לוקח שני להסתכל על כל המילים בספר.
אז אתה יכול לחשוב שיכול להיות רק זה טיעון של קלט מסביבך,
זה לא מספיק לומר שזה משהו שרק בני אדם יכולים לעשות.
אתה יכול לחשוב על מחשבים יכול גם לקבל קלט.
>> הדבר השני הוא שדוברים ילידיים יש גם מוח שיש
יכולת לימוד שפה.
אבל אם אתה חושב על זה, מוח הוא דבר מוצק.
כאשר אתה נולד, זה כבר נקבע -
זה המוח שלך.
וככל שאתה גדל, אתה פשוט מקבל יותר קלט של שפה ואולי חומרים מזינים
וכל מיני דברים אחרים.
אבל פחות או יותר את המוח שלך זה דבר מוצק.
>> אז אתה יכול להגיד, טוב, אולי אתה יכול לבנות מחשב שיש לו חבורה של
פונקציות ושיטות שרק מחקות יכולת לימוד שפה.
אז במובן הזה, אפשר לומר, טוב, אני יכול להיות מחשב שבו כל
דברים שאני צריך ללמוד את השפה.
וזה הדבר האחרון שילידים דובר לומד מניסוי וטעייה.
אז בעצם עוד דבר חשוב ב לימוד שפה הוא שאתה סוג
של ללמוד דברים על ידי הפיכת הכללות של מה שאתה שומע.
>> אז כפי שאתה גדל אתה לומד כי כמה מילות הן יותר כמו שמות עצם,
כמה כאלה אחרים הם תארים.
ואתה לא חייב לי שום ידע של בלשנות
כדי להבין את זה.
אבל אתה פשוט יודע שיש כמה מילות ממוקמים בחלק כלשהו של
משפט ועוד כמה באחר חלקיו של גזר הדין.
>> וכי כאשר אתה עושה משהו שהוא כמו משפט שאינו נכון -
אולי בגלל הכללה על למשל.
אולי כשאתה גדל, אתה שם לב כי בלשון רב היא בדרך כלל
נוצר על ידי הצבת S ב הסוף של המילה.
ואז אתה מנסה לעשות את הריבוי של "צבי" בשם "צביים" או "שן", כפי
"טות'." אז ההורים שלך או מישהו מתקן אותך ואומר, לא,
ריבוי של "צבי" הוא "צבי", ו ריבוי של "שן" הוא "שיניים". ולאחר מכן
אתה לומד את הדברים האלה.
אז אתה לומד מניסוי וטעייה.
>> אבל אתה גם יכול לעשות את זה עם מחשב.
יכול להיות לך משהו שנקרא למידת חיזוק.
שהוא בעצם כמו לתת מחשב הפרס בכל פעם שהיא עושה
משהו בצורה נכונה.
ונותן לו את ההפך מגמול וכאשר הוא עושה משהו לא בסדר.
אתה ממש יכול לראות שאם אתה הולך ל-Google Translate ואתה מנסה
לתרגם משפט, זה שואל אותך על משוב.
אז אם אתה אומר, אה, יש טוב יותר תרגום למשפט הזה.
אתה יכול להקליד אותו ולאחר מכן, אם הרבה אנשים כל הזמן אומרים שהוא טוב יותר
תרגום, זה פשוט לומד כי זה צריך להשתמש בתרגום שבמקום
אחד זה היה נתינה.
>> אז, זה שאלה מאוד פילוסופית כדי לראות אם מחשבים הולכים להיות
מסוגל לדבר או לא בעתיד.
אבל יש לי תקוות גדולות שהם יכולים רק על סמך טיעונים אלה.
אבל זה רק יותר של פילוסופים שאלה.
>> אז בזמן שמחשבים עדיין לא יכולים לדבר, מה הם הדברים שאנחנו יכולים לעשות?
כמה דברים ממש מגניבים הם סיווג הנתונים.
כך, למשל, אתם יודעים שירותי דואר אלקטרוני שעושים, ל
דוגמא, סינון דואר זבל.
אז בכל פעם שאתה מקבל דואר זבל, זה מנסה לסנן לתיבה אחרת.
אז איך הוא עושה את זה?
זה לא כמו המחשב פשוט יודע כתובות הדוא"ל של מה שולחות דואר זבל.
אז זה יותר על בסיס התוכן של ההודעה, או אולי הכותרת, או
אולי איזה דפוס שיש לך.
>> אז, בעצם, מה שאתה יכול לעשות הוא לקבל הרבה נתונים של הודעות דוא"ל, כי הם זבל,
מיילים שאינם ספאם, וללמוד מה סוג של דפוסים שיש לך ב
אלה הם דואר זבל.
וזה חלק מחישובית בלשנות.
זה נקרא סיווג הנתונים.
ואנחנו באמת הולכים לראות דוגמא לכך בשקופיות הבאות.
>> הדבר השני הוא שפה טבעית עיבוד וזה הדבר ש
חיפוש גרף עושה לתת אתה כותב משפט.
וזה סומך עליך להבין מה שלה המשמעות ונותן לי
לך תוצאה טובה יותר.
למעשה, אם אתה הולך לגוגל או בינג ולך לחפש משהו כמו ליידי
הגובה של גאגא, אתם למעשה הולכים כדי לקבל 5 '1 "במקום מידע
ממנה כי זה באמת מבין על מה אתה מדבר.
אז זה חלק מטבעי עיבוד שפה.
>> או גם כשאתה משתמש בסירים, ראשון יש לך אלגוריתם שמנסה
לתרגם את מה שאתה אומר במילים, בטקסט.
ולאחר מכן הוא מנסה לתרגם כי למשמעות.
אז זה כל מה שחלק מטבעי עיבוד שפה.
>> אז יש לך מכונת תרגום -
שהוא למעשה אחד המועדפים שלי -
אשר רק הוא בתרגום מ שפה למשנו.
אז אתה יכול לחשוב שכאשר אתה עושה תרגום מכונה, יש לך
אפשרויות אינסופיות של משפטים.
כך שאין שום דרך של ממש אחסון כל תרגום.
אז אתה צריך לבוא עם מעניין אלגוריתמים כדי להיות מסוגלים
לתרגם כל אחד משפט בדרך כלשהי.
>> יש לכם כל שאלות עד כה?
לא?
על אישור.
>> אז מה אנחנו הולכים לראות היום?
קודם כל, אני הולך לדבר על הבעיה הסיווג.
אז זה שאני היה אומר על דואר זבל.
מה שאני הולך לעשות הוא, מילות נתון לשיר, אתה יכול לנסות להבין
בהסתברות גבוהה מי הוא הזמר?
בואו נגיד שיש לי שירים מליידי גאגא וקייטי פרי, אם אני נותן לך
שיר חדש, אתה יכול להבין אם זה קייטי פרי או ליידי גאגא?
>> השנייה אחת, אני רק הולך לדבר על הבעיה הפילוח.
אז אני לא יודע אם אתם יודעים, אבל סיני, יפני, נוסף במזרח אסיה
שפות, ושפות אחרות באופן כללי, אין לי
רווחים בין מילות.
ואז אם אתה חושב על האופן שבו סוג המחשב של ניסיונות כדי
מבין עיבוד שפה טבעי, זה נראה במילים ו
מנסה להבין את היחסים ביניהם, נכון?
אבל אז אם יש לך סיני, ואתה יש אפס רווחים, זה ממש קשה
לברר מהו היחס בין מילות, כי אין להם כל
מילות בהתחלה.
אז אתה צריך לעשות משהו שנקרא פילוח שרק אומר לשים
רווחים בין מה שהיינו קוראים מילות בשפות אלה.
הגיוני?
>> ואז אנחנו הולכים לדבר על תחביר.
אז רק קצת על טבעי עיבוד שפה.
זה הולך להיות רק סקירה.
אז היום, בעצם מה שאני רוצה לעשות הוא לתת לכם קצת
בתוך מה הן האפשרויות שאתה יכול לעשות עם חישובית
בלשנות.
ואז אתה יכול לראות את מה שאתה חושב הוא מגניב בין הדברים האלה.
ואולי אתה יכול לחשוב על פרויקט ובאתי לדבר איתי.
ואני יכול לתת לך עצה על איך ליישם את זה.
>> אז התחביר הולך להיות קצת על חיפוש גרף ומכונה
תרגום.
אני רק הולך לתת דוגמא לאופן אתה יכול, למשל, לתרגם
משהו מפורטוגזית לאנגלית.
נשמע טוב?
>> אז קודם כל, הבעיה הסיווג.
אני אומר שחלק זה של הסמינר הולך להיות המאתגר ביותר
אחד רק בגלל שיש הולך להיות חלק מקידוד.
אבל זה הולך להיות פייתון.
אני יודע שאתם לא יודעים פייתון, ולכן אני רק הולך להסביר על גבוה
רמה מה שאני עושה.
ואתה לא צריך באמת לדאוג יותר מדי הרבה על התחביר כי זה
משהו שאתם יכולים ללמוד.
בסדר?
נשמע טוב.
>> אז מה הבעיה הסיווג?
אז אתה נתת כמה מילים ל שיר, ואתה רוצה לנחש
מי שר אותו.
וזה יכול להיות לכל סוג של בעיות אחרות.
אז יכול להיות, למשל, יש לה אותך קמפיין לנשיאות ושיש לך
דיבור, ואתה רוצה למצוא אם זה קורה, למשל,
אובמה או מיט רומני.
או שאתה יכול לקבל את חבורה של מיילים ו אתה רוצה להבין אם הם
דואר זבל או לא.
אז זה פשוט סיווג מסוים הנתונים מבוססים על המילים
שיש לך שם.
>> אז כדי לעשות את זה, שיש לך להניח כמה הנחות.
אז הרבה על בלשנות חישובית הוא עושה הנחות,
הנחות בדרך כלל חכמות, כך אתה יכול להגיע לתוצאות טובות.
מנסה ליצור מודל עבורו.
ולאחר מכן לנסות את זה ולראות אם זה עובד, אם זה נותן לך דיוק טוב.
ואם כן, אז אתה מנסה לשפר אותו.
אם זה לא, אתה כמו, אוקיי, אולי אני צריך לעשות הנחה שונה.
>> אז בהנחה שאנחנו הולכים לעשות הוא שאמן בדרך כלל שר
על פי נושא מרובה, ואולי משתמש במילים מספר פעמים רק
כי הם רגילים לזה.
אתה רק יכול לחשוב על החבר שלך.
אני בטוח שיש לך את כל החבר 'ה חברים שאומרים ביטוי החתימה שלהם,
פשוטו כמשמעו, לכל אחד ומשפט -
כמו איזו מילה מסוימת או כמה ספציפי משפט שהם אומרים ל
כל משפט.
>> ומה אתה יכול לומר הוא שאם אתה רואה משפט שיש לו חתימה
ביטוי, שאתם יכולים לנחש שכנראה חבר שלך הוא
אחד אומר את זה, נכון?
אז אתה עושה את הנחה ושלאחר מכן ככה אתה יוצר מודל.
>> הדוגמא שאני הולך לתת לי היא על איך ליידי גאגא, למשל, אנשים
אומר שהיא משתמשת "תינוק" עבור כל מספר אחד השירים שלה.
ולמעשה מדובר בסרטון שמראה שלה אומר את המילה "תינוק" עבור
שירים שונים.
>> [וידאו השמעה]
>> - (שירה) בייבי.
בייבי.
בייבי.
בייבי.
בייבי.
בייב.
בייבי.
בייבי.
בייבי.
בייבי.
>> [השמעה-VIDEO END
>> לוקאס פרייטס: אז יש, אני חושב, 40 שירים כאן שבו היא אומרת
"תינוק". מילה אז אתה בעצם יכול לנחש שאם אתה רואה שיש לו שיר
המילה "תינוק", יש כמה גבוה הסתברות שזה ליידי גאגא.
אבל בואו ננסה לפתח את זה עוד יותר באופן רשמי.
>> אז אלו הם מילות לשירים של ליידי גאגא וקייטי פרי.
אז אתה מסתכל על ליידי גאגא, שאתה רואה שהם "תינוק" יש לי הרבה מופעים של
הרבה מופעים של "דרך". ולאחר מכן יש קייטי פרי הרבה מופעים של
"," הרבה מופעים של "אש".
>> אז בעצם מה שאנחנו רוצים לעשות הוא, אתה מקבל לירי.
בואו נגיד שאתה מקבל לירי עבור שיר הזה הוא "תינוק," רק "תינוק". אם
אתה פשוט מקבל את המילה "תינוק", וזה הוא את כל הנתונים שיש לך מ
ליידי גאגא וקייטי פרי, שהיית אתה מניח שהוא האדם
מי שר את השיר?
ליידי גאגא או קייטי פרי?
ליידי גאגא, נכון?
בגלל שהיא היחידה שאומרת "תינוק". זה נשמע טיפשי, נכון?
אוקיי, זה ממש קל.
אני רק מסתכל על שני שירים ושל כמובן, שהיא היחידה שיש לי
"תינוק".
>> אבל מה אם יש לך חבורה של מילות?
אם יש לך לירי, משהו בפועל כמו, תינוק ", אני רק
הלכתי לראות את [? CFT?]
הרצאה ", או משהו כזה, ו אז אתה באמת צריך להבין -
המבוסס על כל המילים האלה -
מי הוא האמן שכנראה שר את השיר הזה?
אז בואו ננסה לפתח את זה עוד מעט.
>> אוקיי, אז המבוסס רק על הנתונים שאנו קיבלתי, נראה כי גאגא היא כנראה
הזמר.
אבל איך אנחנו יכולים לכתוב זה יותר באופן רשמי?
ויש הולך להיות קצת קצת סטטיסטיקה.
אז אם אתה הולך לאיבוד, פשוט לנסות כדי להבין את הרעיון.
זה לא משנה אם אתה מבין המשוואות היטב.
כל זה הולך להיות באינטרנט.
>> אז בעצם מה שאני חישוב הוא הסתברות שהשיר הזה הוא על ידי
ליידי גאגא נתנה ש--
כך סרגל זה משמעו בהתחשב בכך ש--
ראיתי את המילה "תינוק". האם זה הגיוני?
אז אני מנסה לחשב הסתברות ש.
>> אז יש המשפט הזה שנקרא משפט Bayes שאומר כי
הסתברות של B נתון, היא הסתברות של B ניתנה, פעמים
הסתברות, על ההסתברות ב 'זה משוואה ארוכה.
אבל מה יש לך להבין מ שהוא שזה מה שאני רוצה
לחשב, נכון?
אז ההסתברות שהשיר הזה הוא על ידי ליידי גאגא בהתחשב בעובדה שראתה את המילה
"תינוק".
>> ועכשיו מה שאני מקבל הוא הסתברות של המילה "תינוק" שניתנו
שיש לי ליידי גאגא.
ומה זה בעצם?
מה זה אומר, מה הוא הסתברות לראות את המילה "תינוק"
במילות גאגא?
אם אני רוצה לחשב את זה בצורה מאוד דרך פשוטה, זה רק מספר
פעמים אני רואה את "תינוק" על המספר הכולל של מילות במילות גאגא, נכון?
מהי התדירות שאני רואה מילה הזאת בעבודה של גאגא?
הגיוני?
>> הקדנציה השנייה היא הסתברות של גאגא.
מה זה אומר?
זה בעצם אומר, מה הוא הסתברות של סיווג
כמה מילות כמו גאגא?
וזה קצת מוזר, אבל בואו נחשוב על ירושלים.
אז בואו נגיד שההסתברות של שיש "תינוק" בשיר הוא אותו
לגאגא ובריטני ספירס.
אבל בריטני ספירס יש פעמיים יותר שירים מאשר ליידי גאגא.
אז אם מישהו רק באופן אקראי נותן לך מילות של "תינוק", הדבר הראשון שאתה
להסתכל על זה, מה הוא ההסתברות של שיש "תינוק" בשיר גאגא, "תינוק"
בשיר בריטני?
וזה אותו דבר.
>> אז הדבר השני שאתה רואה הוא, ובכן, מהי ההסתברות של
לירי זה בכוחות עצמו להיות לירי גאגא, ומהי ההסתברות של
להיות לירי בריטני?
אז מאז יש בריטני כל כך הרבה יותר מילות מ גאגא, סביר להניח שהיית עושה
אומר, טוב, זה כנראה לירי בריטני.
אז בגלל זה יש לנו את זה מונח נכון כאן.
הסתברות של גאגא.
הגיוני?
עושה את זה?
על אישור.
>> והאחרון הוא רק ההסתברות של "תינוק" שלא
באמת משנה כל כך הרבה.
אבל זה ההסתברות לראות "תינוק" באנגלית.
בדרך כלל לא אכפת לנו ש הרבה על מונח זה.
האם זה הגיוני?
אז ההסתברות של גאגא היא קרא את ההסתברות לפני
של גאגא הכיתה.
כי זה רק אומר את זה, מה הוא הסתברות שיש בכיתה ש--
שהוא גאגא -
רק באופן כללי, רק ללא תנאים.
>> ולאחר מכן, כאשר יש לי הסתברות של גאגא נתנה "תינוק," אנחנו קוראים לזה בתוספת
דומע הסתברות כי זה ההסתברות שיש
גאגא נתנה עדות מסוימת.
אז אני נותן לך את הראיות שראיתי את מילת התינוק ו
השיר הגיוני?
על אישור.
>> אז אם אני חושב שלכל השירים של הליידי גאגא,
מה שיהיה -
ככל הנראה, אני לא יכול לעבור את זה.
ההסתברות של גאגא תהיה משהו כמו, 2 מעל 24, פעמים 1/2,
מעל 2 מעל 53.
זה לא משנה אם אתה יודע מה המספרים האלה מגיעים.
אבל זה רק מספר שהוא הולך להיות יותר מ 0, נכון?
>> ואז כשאני עושה את קייטי פרי, ההסתברות של "תינוק" נתון קייטי היא
כבר 0, נכון?
כי אין "תינוק" בקייטי פרי.
אז זה הופך להיות 0, וגאגא נצחונות, מה שאומר שגאגא היא
כנראה הזמר.
האם זה הגיוני?
על אישור.
>> אז אם אני רוצה להרוויח יותר רשמי זה, אני בעצם יכול לעשות את מודל
מספר מילות.
אז בואו נגיד שיש לי משהו כמו, "תינוק, אני
על אש ", או משהו כזה.
אז יש לו מספר מילות.
ובמקרה הזה, אתה יכול לראות כי "תינוק" הוא בגאגא,
אבל זה לא בקייטי.
ו "אש" היא בקטי, אבל זה לא בגאגא, נכון?
אז זה מתחיל להיות מסובך, נכון?
כי זה נראה שאתה כמעט יש לקשור בין שתיים.
>> אז מה שאתה צריך לעשות הוא להניח עצמאות בין המילים.
אז בעצם מה זה אומר הוא ש אני רק חישוב מה הוא
הסתברות לראות "תינוק," מה היא ההסתברות לראות את "אני", ו
"אני", וכן "על", ו "אש" כל בנפרד.
אז אני הכפלה כולם.
ואני רואה מה הוא ההסתברות לראות את כל המשפט.
הגיוני?
>> אז בעצם, אם יש לי רק מילה אחת, מה שאני רוצה למצוא הוא מקסימום ARG,
מה שאומר, מה היא הכיתה כי הוא נותן לי את ההסתברות הגבוהה ביותר?
אז מה הוא המעמד, כי הוא נותן שלי את ההסתברות הגבוהה ביותר עבור
הסתברות של מעמד נתון מילה.
אז במקרה הזה, גאגא נתנה "תינוק". או קייטי ניתנו "תינוק". הגיוני?
>> ובדיוק מBayes, כי משוואה שהראיתי,
אנו יוצרים חלק זה.
הדבר היחיד הוא שאתה רואה את זה ההסתברות של מילת נתונה
שינויים ברמה בהתאם בכיתה, נכון?
מספר של "תינוק" שיש לי בגאגא הוא שונה מקייטי.
ההסתברות של המעמד גם שינויים כי זה פשוט המספר
של שירים שכל אחד מהם יש.
>> אבל ההסתברות למילה עצמה הולך להיות זהה עבור כל
אמנים, נכון?
אז ההסתברות של המילה היא פשוט, מהי ההסתברות של
רואה את מילה הזאת ב בשפה אנגלית?
אז זה אותו הדבר לכולם.
אז מאחר שזו היא קבועה, אנחנו יכולים רק שחרר את זה ולא אכפת לו.
אז זה יהיה ממש משוואה שאנחנו מחפשים.
>> ואם יש לי מספר מילות, אני עדיין הולך להיות לפני
הסתברות כאן.
הדבר היחיד הוא שאני הכפלה ההסתברות של
את כל המילים האחרות.
אז אני הכפלה כולם.
הגיוני?
זה נראה מוזר, אבל בעצם אומר, לחשב מראש של הכיתה, ו
לאחר מכן להכפיל בהסתברות של כל אחד של המילים להיות במעמד הזה.
>> ואתה יודע שההסתברות של מילה שניתנה בכיתה הולכת להיות
מספר הפעמים שאתה רואה את מילה הזאת ב מעמד זה, מחולק במספר
יש לך מילים שב כיתה באופן כללי.
הגיוני?
זה רק איך "תינוק" היה 2 מעל את מספר המילים ש
היה לי במילים.
אז רק בתדר.
>> אלא יש דבר אחד.
זוכר איך הייתי מראה כי הסתברות של מילות להיות "תינוק"
מקייטי פרי היו 0 רק בגלל שקייטי פרי לא היה "תינוק" בכלל?
אבל זה נשמע קצת קשה לפשוט פשוט אומר שמילים לא יכולות להיות מ
אמן רק בגלל שאין להם מילה שבפרט בכל עת.
>> אז פשוט אפשר להגיד, טוב, אם אתה אין לי המילה הזאת, אני הולך
לתת לך הסתברות נמוכה יותר, אבל אני פשוט לא הולך
אתן לך 0 באופן מיידי.
כי אולי זה היה משהו כמו, "אש, אש, אש, אש", שהוא
לחלוטין קייטי פרי.
ולאחר מכן "תינוק", וזה רק הולך 0 מייד כי לא היו אחד
"תינוק".
>> אז בעצם מה שאנחנו עושים משהו נקרא החלקת Laplace.
וזה רק אומר שאני נותן הסתברות כלשהי אפילו למילות
שלא קיימים.
אז מה שאני עושה הוא שכאשר אני חישוב זה, אני תמיד מוסיף 1 עד
המונה.
אז גם אם המילה לא קיימת, ב מקרה זה, אם זה הוא 0, אני עדיין
חישוב זה כ1 מעל מספר כולל של מילות.
אחרת, אני מקבל כמה מילות יש לי ואני מוסיף 1.
אז אני סומך על שני המקרים.
הגיוני?
>> אז עכשיו בואו נעשה קצת קידוד.
אני הולך צריך לעשות את זה די מהר, אבל זה רק חשוב שאתה
חבר 'ה להבין את המושגים.
אז מה שאנחנו מנסים לעשות הוא בדיוק ליישם את זה
דבר שאני רק אמרתי -
אני רוצה שתשים את המילים מ ליידי גאגא וקייטי פרי.
והתכנית הולכת להיות מסוגל אומר שאם המילים חדשות הללו הן מגאגא
או קייטי פרי.
הגיוני?
על אישור.
>> אז יש לי תכנית זה אני הולך לקרוא classify.py.
אז זה פייתון.
זה שפת תכנות חדשה.
זה דומה מאוד בחלק דרכים ל-C ו-PHP.
זה דומה, כי אם אתה רוצה ללמוד פייתון לאחר ידיעת C, זה
ממש לא, כי חלק גדול מאתגר רק בגלל שפייתון הוא הרבה יותר קל
מ C, קודם כל.
והרבה דברים כבר יישם לך.
אז איך בדיוק כמו PHP יש פונקציות ש למיין את רשימה, או לצרף משהו
למערך, או בלה, בלה, בלה.
פייתון יש את כל אלה גם כן.
>> אז רק אני הולך להסביר במהירות איך אנחנו יכולים לעשות את הסיווג
בעיה לכאן.
אז בואו נגיד שבמקרה זה, יש לי מילות מגאגא וקייטי פרי.
האופן שבו יש לי מילות אלו הוא ש המילה הראשונה של המילים היא
את שמו של האמן, ו השאר הוא המילים.
אז בואו נגיד שיש לי ברשימה זו אשר הראשון היא מילות של גאגא.
אז הנה אני על המסלול הנכון.
והבא אחריו הוא קייטי, ו יש לו גם את המילים.
>> אז ככה אתה מצהיר משתנה בפייתון.
אתה לא צריך לתת את סוג הנתונים.
אתה פשוט לכתוב "מילות", סוג של אוהב ב-PHP.
הגיוני?
>> אז מה הם הדברים שיש לי כדי לחשב כדי להיות מסוגל לחשב את
הסתברויות?
אני צריך לחשב את "ההרשעות קודמות" של כל אחד משונה
כיתות שיש לי.
אני צריך לחשב את "הישבנים" או פחות או יותר את ההסתברויות של
כל אחת מהמילים השונות ש אני יכול לקבל עבור כל אמן.
אז בתוך גאגא, למשל, אני הולך יש רשימה של כמה פעמים אני רואה
כל אחת מהמילים.
הגיוני?
>> ולבסוף, אני פשוט אצטרך רשימה שנקראת "מילות", כי הוא רק הולך
יש כמה מילות שאני יש לכל אמן.
אז לגאגא, למשל, כשאני מסתכל למילים, הייתי לי, אני חושב, 24
מילות בסך הכל.
אז ברשימה זו היא רק הולכת לי 24 גאגא, קייטי ומספר אחר.
הגיוני?
על אישור.
>> אז עכשיו, בעצם, בואו ללכת לקידוד.
אז בפייתון, אתה באמת יכול תחזור חבורה של שונה
דברים מפונקציה.
אז אני הולך ליצור בפונקציה זו בשם "מותנה", שהוא הולך
כדי להחזיר את כל הדברים האלה, "הרשעות קודמות", "הסתברויות", ו
"מילות". אז "על תנאי", וזה הולך להיות קורא ל" מילות ".
>> אז עכשיו אני רוצה שבעצם לכתוב פונקציה זו.
לכן הדרך שאני יכול לכתוב את זה פונקציה אני רק הגדרתי את זה
לתפקד עם "def". אז עשיתי "def מותנה, "וזה לוקח
"מילות". ומה זה הולך לעשות הוא, קודם כל, יש לי ההרשעות הקודמות שלי
כי אני רוצה לחשב.
>> לכן הדרך שאני יכול לעשות את זה היא ליצור מילון בפייתון, אשר
הוא פחות או יותר אותו הדבר כמו חשיש שולחן, או שזה כמו איטרטיבי
מערך ב-PHP.
כך אני מצהיר מילון.
ובעצם מה שזה אומר זה הרשעות קודמות של גאגא היא 0.5, למשל, אם
50% מהמילים הם מ גאגא, 50% הם מקייטי.
הגיוני?
אז יש לי להבין איך כדי לחשב את ההרשעות הקודמות.
>> למחרת באלה שאני צריך לעשות, גם, הם ההסתברויות ומילות.
אז ההסתברויות של גאגא היא הרשימה של כל ההסתברויות שאני
יש לכל אחת מהמילים לגאגא.
אז אם אני הולך להסתברויות של גאגא "תינוק", למשל, זה ייתן לי
משהו כמו 2 מעל 24 במקרה זה.
הגיוני?
אז אני הולך "הסתברויות," ללכת דלי "גאגא" שיש לו רשימה של כל
מילות גאגא, אז אני הולך "תינוק" ואני רואה את ההסתברות.
>> וסוף סוף יש לי את זה "מילות" במילון.
אז הנה, "הסתברויות". ולאחר מכן "מילות". אז אם אני עושה "מילות", "גאגא"
מה שהולך לקרות הוא שזה הולך לתת לי 24, ואמר שאני
יש לי 24 מילות בתוך מילות מגאגא.
הגיוני?
אז הנה, "מילות" שווה Dah-Dah-dah.
אישור
>> אז מה שאני הולך לעשות הוא אני הולך לחזר על כל אחת מהמילים, ולכן
כל אחת מהמחרוזות ש יש לי ברשימה.
ואני הולך לחשב את הדברים האלה לכל אחד מהמועמדים.
הגיוני?
אז אני צריך לעשות ללולאה.
>> אז בפייתון מה אני יכול לעשות הוא "עבור קו במילים. "אותו דבר כמו
"לכל אחד" הצהרה ב-PHP.
זוכר איך אם זה היה PHP שיכולתי אומר "לכל מילות כמו
שורה. "הגיוני?
אז אני לוקח את כל אחד מהקווים, בזה מקרה, במחרוזת זו והבאה
שרשרת כך עבור כל אחד מהקווים מה אני הולך לעשות הוא ראשון, אני הולך
לפצל את הקו הזה לרשימה מילות מופרדות ברווחים.
>> אז הדבר מגניב על פייתון הוא ש אפשר רק גוגל כמו "איך אתה יכול אני
לפצל מחרוזות למילים? "וזה הולך לספר לכם איך לעשות את זה.
והדרך לעשות את זה, זה רק קו " = Line.split () "וזה בעצם
הולך לתת לך רשימה עם כל אחת מהמילים כאן.
הגיוני?
אז עכשיו שאני עשיתי את זה אני רוצה לדעת מי הוא הזמר של השיר הזה.
וכדי לעשות זאת אני פשוט צריך לקבל את האלמנט הראשון של המערך, נכון?
אז רק אני יכול לומר כי "אני זמרת = קו (0) "זה הגיוני?
>> ואז מה שאני צריך לעשות הוא, קודם הכל, אני הולך לעדכן כמה
יש מילים שתחת "גאגא". אז אני פשוט הולך לחשב כמה מילות אני
יש ברשימה זו, נכון?
בגלל זה הוא בכמה מילות יש לי במילים ואני רק הולך
להוסיף אותו למערך "גאגא".
האם זה הגיוני?
אל תתמקד יותר מדי על התחביר.
לחשוב יותר על המושגים.
זה החלק החשוב ביותר.
על אישור.
>> אז מה אני יכול לעשות את זה הוא אם "גאגא" הוא כבר באותה רשימה, ולכן "אם הזמר ב
מילות "מה שאומר שאני כבר יש מילות ידי גאגא.
אני רק רוצה להוסיף נוסף מילים לכך.
אז מה שאני עושה הוא "מילות (הזמר) + = Len (קו) - 1 ".
ואז אני יכול פשוט לעשות אורכו של הקו.
אז כמה אלמנטים שאני יש במערך.
ואני צריך לעשות מינוס 1 רק בגלל האלמנט הראשון של המערך הוא רק
הזמר ואלה אינם מילות.
הגיוני?
על אישור.
>> "אחר", זה אומר שאני רוצה באמת הכנס גאגא לרשימה.
אז אני פשוט עושה את "מילות (הזמר) = Len (קו) - 1, "מצטער.
אז ההבדל היחיד בין שתיים קווים הוא שזה אחד, זה לא
קיימות עדיין, אז אני פשוט מאתחל אותו.
זה אחד שאני ממש הוספתי.
על אישור.
אז זה היה מוסיף למילים.
>> עכשיו אני רוצה להוסיף להרשעות הקודמות.
אז איך אני יכול לחשב את ההרשעות הקודמות?
ניתן לחשב ההרשעות הקודמות על ידי כמה פעמים.
אז כמה פעמים אתה רואה את הזמר ש בין כל הזמרים שאתה
יש, נכון?
אז לגאגא וקייטי פרי, במקרה הזה, אני רואה את גאגא
פעם אחת, קייטי פרי ועונה אחת.
>> אז בעצם ההרשעות הקודמות לגאגא וקייטי פרי היית
להיות רק אחד, נכון?
אתה רק כמה פעמים אני רואה את האמן.
אז זה קל מאוד לחשב.
אני יכול רק משהו דומה כמו "אם הזמר בהרשעות קודמות, "אני רק הולך
להוסיף 1 לתיבת ההרשעות הקודמת שלהם.
אז, "הרשעות קודמות (לשיר)" + = 1 "ולאחר מכן" אחר " אני הולך לעשות "הרשעות קודמות (זמרת)
= 1. "זה הגיוני?
>> אז אם הוא לא קיים רק שמתי כמו 1, אחרת אני פשוט להוסיף 1.
אוקיי, אז עכשיו כל מה שנשאר לי לעשות הוא גם להוסיף כל אחת מהמילים כדי
הסתברויות.
אז אני צריך לספור כמה פעמים אני רואה כל אחת מהמילים.
אז אני רק צריך לעשות עוד ללולאה בקו.
>> דבר אז ראשון שאני הולך לעשות הוא לבדוק אם הזמר כבר יש
מערך הסתברויות.
אז אני בודק אם הזמר לא יש מערך הסתברויות, אני פשוט
הולך לאתחל אחד עבורם.
זה אפילו לא מערך, מצטער, זה מילון.
אז ההסתברויות של הזמר הולכת להיות מילון פתוח, ולכן אני
רק אתחול מילון בשביל זה.
בסדר?
>> ועכשיו אני יכול באמת לעשות ללולאה כדי לחשב כל אחת מהמילים '
הסתברויות.
על אישור.
אז מה אני יכול לעשות הוא ללולאה.
אז רק אני הולך לחזר על המערך.
לכן הדרך שאני יכול לעשות את זה בפייתון הוא "עבור i בטווח." מ1
כי אני רוצה להתחיל בשני אלמנט בגלל הראשון הוא
שם הזמר.
אז מאחד עד אורכו של הקו.
וכשאני נע זה באמת ללכת מ כמו כאן בין 1 ל len של
מינוס קו 1.
אז זה כבר עושה את הדבר הזה של עשייה n מינוס 1 למערכים שהוא מאוד
נוח.
הגיוני?
>> אז לכל אחד מאלה, מה שאני הולך לעשות הוא, בדיוק כמו בשני,
אני הולך לבדוק אם המילה בזה עמדה בקו כבר ב
הסתברויות.
ואז כמו שאמרתי כאן, הסתברויות מילות, כמו שבמתי
"הסתברויות (זמרת)".
אז את שמו של הזמר.
אז אם זה כבר ב "Probabilit (זמרת)", זה אומר שאני
רוצה להוסיף 1 לזה, אז אני הולך לעשות "הסתברויות (זמרת)", ו
מילה נקראת "קו (ט)".
אני הולך להוסיף 1 ו" אחר "אני פשוט הולך לאתחל אותו 1.
"קו (ט)".
הגיוני?
>> לכן, חישבתי את כל המערכים.
אז, עכשיו כל מה שאני צריך לעשות בשביל זה אחד הוא פשוט "לחזור הרשעות קודמות,
הסתברויות ומילות. "בואו לראות אם יש בכלל, על אישור.
נראה שהכל עובד עד כה.
אז, זה הגיוני?
בדרך כלשהי?
על אישור.
אז עכשיו יש לי את כל ההסתברויות.
אז עכשיו הדבר היחיד שנשאר לי הוא רק צריך את הדבר הזה, כי
מחשב את התוצר של כל הסתברויות כאשר אני מקבל את המילים.
>> אז בואו נגיד שאני רוצה להתקשר עם החברה פונקציה זו "לסווג ()" ו
דבר הפונקציה שלוקחת רק ויכוח.
בואו נגיד "בייבי, אני עולה באש" וזה הולך להבין מה הוא
הסתברות שזה גאגא?
מה ההסתברות שזו קייטי?
נשמע טוב?
אז רק אני הולך צריך ליצור פונקציה חדשה בשם "לסווג ()" ו
זה הולך לקחת קצת מילות גם כן.
וחוץ מזה אני גם המילים צריך לשלוח הרשעות הקודמות,
הסתברויות והמילים.
אז אני הולך לשלוח את מילות, הרשעות קודמות, הסתברויות, מילות.
>> אז זה לוקח מילות, הרשעות קודמות, הסתברויות, מילות.
אז, מה זה עושה?
זה בעצם הולך לעבור את כל המועמדים האפשריים כי אתה
יש לי בתור זמרת.
ושבו הם המועמדים האלה?
הם בהרשעות הקודמות, נכון?
אז יש לי את כל אלה לשם.
אז אני הולך יש מילון מכל המועמדים האפשריים.
ולאחר מכן לכל מועמד ב הרשעות קודמות, אז זה אומר שזה הולך
להיות גאגא, קייטי אם היה לי יותר זה יהיה יותר.
אני הולך להתחיל חישוב הסתברות זו.
ההסתברות כפי שראינו ב PowerPoint הוא הפעמים לפני
תוצר של כל אחד מן הסתברויות אחרות.
>> אז אני יכול לעשות את אותו הדבר כאן.
אני רק יכול לעשות את ההסתברות היא בתחילה רק לפני.
אז הרשעות קודמות של המועמד.
נכון?
ועכשיו אני צריך לחזר על כל מילות שיש לי במילים להיות
תוכל להוסיף את ההסתברות לכל אחד מהם, בסדר?
לכן, "למילה במילים" מה אני הולך לעשות הוא, אם המילה היא ב
"הסתברויות (מועמד)", אשר אומר שזה מילה ש
מועמד יש במילים שלהם -
לדוגמא, "תינוק" לגאגא -
על מה אני הולך לעשות הוא כי הסתברות הולכת להיות מוכפלת
עד ליום 1 בתוספת ההסתברויות המועמד למילה זו.
וזה נקרא "מילה".
זה מחולק במספר המילים שיש לי למועמד ש.
המספר הכולל של מילות שיש לי לזמרת שאני מסתכל.
>> "אחר". זה אומר שזה מילה חדשה כך שזה יהיה כמו לדוגמא
"אש" לליידי גאגא.
אז אני רק רוצה לעשות 1 על "מילה (מועמד)".
אז אני לא רוצה לשים את המונח הזה כאן.
>> אז זה הולך להיות בעצם העתקה והדבקה של זה.
אבל אני הולך למחוק את החלק הזה.
אז זה פשוט הולך להיות 1 על זה.
נשמע טוב?
ועכשיו בסוף, אני רק הולך להדפיס את שמו של המועמד ו
ההסתברות שיש לך של יש S במילים שלהם.
הגיוני?
ואני עושה אפילו לא צריך מילון זה.
הגיוני?
>> אז, בואו נראה אם זה באמת עובד.
אז אם אני מפעיל את זה, זה לא עבד.
חכה שני אחת.
"מילות (מועמד)", "מילות (מועמד)", זה
שמו של המערך.
אישור אז, זה אומר שיש כמה באגים למועמד בהרשעות קודמות.
תן לי רק להירגע קצת.
על אישור.
בואו ננסה.
על אישור.
>> כך שזה נותן לי קייטי פרי זו הסתברות לכך פעמים 10 עד
יש מינוס 7, וזה גאגא פעמים 10 למינוס 6.
אז אתה רואה שזה מראה שגאגא יש הסתברות גבוהה יותר.
אז "בייבי, אני על אש" הוא כנראה שיר גאגא.
הגיוני?
אז זה מה שעשינו.
>> קוד זה הולך להיות שפורסם באינטרנט, כך שאתם יכולים לבדוק את זה.
אולי להשתמש בחלק ממנה לאם אתה רוצה לעשות פרויקט או משהו דומה.
על אישור.
זה היה רק כדי להראות מה חישובית
קוד בלשנות נראה.
אבל עכשיו בואו נלך ליותר חומר ברמה גבוהה.
על אישור.
>> אז הבעיות האחרות אני דיבר על -
הבעיה הפילוח הוא הראשון שלהם.
אז יש לכם כאן יפני.
ואז אתה רואה את זה אין רווחים.
אז זה בעצם אומר שזה החלק העליון של הכיסא, נכון?
אתה מדבר יפני?
זה החלק העליון של הכיסא, נכון?
>> תלמיד: אני לא יודע מה קאנג'י על שיש.
>> לוקאס פרייטס: זה [מדבר יפני]
על אישור.
אז זה בעצם אומר שכיסא של ראש.
אז אם אתה הייתי צריך לשים רווח זה יהיה כאן.
ואז יש לך [? אואדה-סן. ?]
אשר בעצם אומרת מר אואדה.
ואתה רואה את זה "אואדה" ויש לך רווח ולאחר מכן "סן". אז אתה רואה ש
כאן אתה "אואה" הוא כמו מעצמו.
וכאן יש לו אופי לצד זה.
>> אז זה לא כמו בשפות אלה דמויות שמשמעות מילה את זה אז אתה
פשוט לשים הרבה רווחים.
דמויות מתייחסות זו לזו.
והם יכולים להיות ביחד כמו שתיים, שלוש, אחד.
אז אתה בעצם צריך ליצור איזשהו דרך של לשים את החללים הללו.
>> וזה הדבר הזה שבכל פעם שאתה מקבל נתונים משפות אסיאתיות אלה,
הכל בא unsegmented.
כי אף אחד שכותב יפני או סיני כותב עם רווחים.
בכל פעם שאתה כותב סיני, יפני אתה פשוט לכתוב את כל מה
ללא רווחים.
זה אפילו לא הגיוני לשים את הרווחים.
אז כאשר אתה מקבל נתונים מ, חלקם שפת מזרח אסיה, אם ברצונך
באמת לעשות משהו עם זה יש לך לקטע הראשון.
>> חושב לעשות את הדוגמא של המילים ללא רווחים.
אז את המילים היחידה שיש לך יהיו משפטים, נכון?
מופרד על ידי תקופות.
אבל אז יש רק המשפט יהיה לא ממש עוזרים במתן מידע
של מי מילות אלה על ידי.
נכון?
אז אתה צריך מכניס רווחים ראשון.
אז איך אתה יכול לעשות את זה?
>> אז מגיע הרעיון של שפה מודל שבו משהו באמת
חשוב לחישובית בלשנות.
אז מודל שפה הוא בעצם טבלה של הסתברויות שמופעים
קודם כל מהי ההסתברות שיש את המילה בשפה?
אז מראה כיצד תכוף מילה היא.
ואז גם מראה את הקשר בין המילים במשפט.
>> אז הרעיון המרכזי הוא, אם אדם זר בא לך ואמר משפט כדי
לך, מהי ההסתברות ש, עבור למשל, "זו אחותי [? GTF"?]
היה המשפט שהאדם אמר?
אז ברור כמה משפטים הם נפוץ יותר מאחרים.
לדוגמא, "בוקר טוב", או "טוב הלילה ", או" היי, "הוא הרבה יותר
נפוץ יותר מרוב המשפטים שיש לנו באנגלית.
אז למה המשפטים הללו תכוף יותר?
>> קודם כל, זה בגלל שיש לך מילים שהן תכופים יותר.
כך, למשל, אם אתה אומר, הכלב הוא גדול, והכלב הוא ענקי, אתה
בדרך כלל ככל הנראה לשמוע את הכלב גדול לעתים קרובות יותר, כי "גדול" הוא יותר
תכוף באנגלית מאשר "ענק". לכן, אחד
דברים הוא המילה התדר.
>> הדבר השני שהוא באמת חשוב הוא רק
סדר המילים.
אז, זה נפוץ לומר "החתול הוא בתוך הקופסה. "אבל אתה בדרך כלל לא
רואה ב" התיבה בפנים הוא החתול. " כך אתה רואה שיש חשיבות מסוימת
לפי הסדר של המילים.
אתה לא יכול פשוט לומר ששני אלה יש משפטים באותה הסתברות
רק בגלל שיש להם את אותן מילות.
אתה באמת צריך לדאוג על מנת גם כן.
הגיוני?
>> אז מה אנחנו עושים?
אז מה אני יכול לנסות להשיג אותך?
אני מנסה להשיג לך את מה שאנחנו קוראים מודלים n-גרם.
אז דגמי n גרם בעצם מניחים כי לכל מילה ש
יש לך במשפט.
זה ההסתברות של בעל כי מילה יש תלוי לא רק ב
תדירות של מילה שבשפה, אלא גם על המילים ש
הם מקיפים אותו.
>> כך למשל, בדרך כלל כשאתה רואה משהו כמו באו אתה
כנראה הולך לראות שם עצם אחרי זה, נכון?
כי כאשר יש לך מילת יחס בדרך כלל זה לוקח שם עצם אחריו.
או אם יש לך פועל שהוא ארעי אתה בדרך כלל הולך
יש לי צירוף שמני.
אז זה הולך להיות שם עצם אי שם סביבו.
>> אז, בעצם, מה שהיא עושה היא שזה רואה את ההסתברות שיש
מילות אחד ליד שני, כאשר אתה חישוב
הסתברות של משפט.
וזה מה ששפה מודל הוא בעצם.
רק אומר מה ההסתברות שיש ספציפי
משפט בשפה?
אז למה זה שימושי, בעצם?
וקודם כל מה הוא מודל n גרם, ולאחר מכן?
>> אז מודל n גרם פירוש הדבר כי כל מילה תלויה
N הבא מינוס 1 מילות.
אז, בעצם, זה אומר שאם אני מסתכל, לדוגמא, בTF CS50 כש
אני חישוב ההסתברות של המשפט, אתה תהיה כמו "
הסתברות שיש את המילה "את" פעמים ההסתברות שיש "
הפעמים CS50 "ההסתברות שיש "TF CS50." אז, בעצם, אני סופר
כל הדרכים אפשריות למותח אותו.
>> ואז בדרך כלל כשאתה עושה את זה, כמו בפרויקט, אתה שם את N להיות
ערך נמוך.
לכן, בדרך כלל יש bigrams או בשלשות.
כך שרק לך לספור שתי מילות, קבוצה של שתי מילות, או שלוש מילות,
רק לבעיות ביצועים.
וגם כי אולי אם יש לך משהו כמו "TF CS50." כאשר אתה
יש לי "TF," זה חשוב מאוד, כי "CS50" הוא לידו, נכון?
שני הדברים האלה הם בדרך כלל אחד ליד שני.
>> אם אתה חושב על "TF," זה כנראה הולך להיות מה
מעמד זה TF'ing ל.
כמו כן "" באמת חשוב לTF CS50.
אבל אם יש לך משהו כמו "CS50 TF הלך לכיתה ונתן להם
תלמידים קצת ממתקים. "" סוכריות "ו" " אין קשר באמת, נכון?
הם כל כך רחוקים אחד מהשני, כי זה לא ממש משנה מה
מילות שיש לך.
>> אז על ידי עושה bigram או הסריגראמה, זה רק אומר שאתה מגביל
את עצמך לכמה מילות שנמצאים בסביבה.
הגיוני?
לכן, כאשר אתה רוצה לעשות פילוח, בעצם, מה שאתה רוצה לעשות זה לראות
מה הן כל הדרכים אפשריות ש אתה יכול לפלח את גזר הדין.
>> כזה שאתה רואה את מה שהוא הסתברות של כל אחד מהמשפטים הללו
קיים בשפה?
אז מה שאתה עושה זה כמו, ובכן, בוא לי לנסות לשים את השטח כאן.
אז אתה שם את חלל שיש ואתה רואה מה הוא
הסתברות של המשפט הזה?
אז אתה כאילו, אוקיי, אולי זה היה לא כל כך טוב.
אז שמתי את שטח יש וחלל שם, ולך לחשב את
הסתברות עכשיו, ואתה רואה את זה זה הסתברות גבוהה יותר.
>> אז זה אלגוריתם בשם TANGO אלגוריתם פילוח, שהוא
בעצם משהו שיהיה באמת מגניב לפרויקט, אשר
בעצם לוקח טקסט unsegmented בי יכול להיות יפני או סיני או אולי
אנגלית ללא רווחים ומנסה לשים רווחים בין המילים והיא עושה
כי על ידי שימוש במודל שפה ו מנסה לראות מה הוא הגבוה ביותר
הסתברות שאתה יכול לקבל.
על אישור.
אז זה פילוח.
>> עכשיו תחביר.
אז, תחביר נמצא בשימוש עבור כל כך הרבה דברים עכשיו.
אז עבור גרף חיפוש, עבור Siri עבור פחות או יותר כל סוג של טבעי
עיבוד שפה יש לך.
אז מה הם חשובים דברים על תחביר?
אז, יש לי משפטים באופן כללי מה שאנו מכנים בוחרים.
שהם כמו סוג של קבוצות של מילות שיש להם תפקיד במשפט.
והם באמת לא יכולים להיות מלבד אחד את השני.
>> לכן, אם אני אומר, למשל, "לורן אוהב מילוא. "אני יודע ש" לורן" הוא
מכונן ולאחר מכן אהבות " מילוא "הוא גם אחד אחר.
מכיוון שאתה לא יכול להגיד כמו "לורן מילוא אוהב את "יש את אותה משמעות.
זה לא הולך להיות את אותה המשמעות.
או שאני לא יכול להגיד כמו "המילוא לורן אוהב. "לא כל מה שיש באותו
כלומר עושה את זה.
>> אז שני דברים חשובים יותר על תחביר הם הסוגים לקסיקליים המהווה
בעצם הפונקציה שאתה יש למילים בעצמם.
אז אתה צריך לדעת כי "לורן" ו" מילוא "הוא שמות עצם.
"האהבה" היא פועל.
וזה הדבר החשוב השני שהם סוגי phrasal.
אז אתה יודע ש" אוהב מילוא " הוא למעשה ביטוי מילולי.
לכן, כאשר אני אומר "לורן," אני יודע ש לורן עושה משהו.
מה היא עושה?
היא אוהבת מילוא.
אז זה כל עניין.
אבל המרכיבים שלה הם שם עצם וגם פועל.
אבל ביחד, הם עושים את ביטוי פועל.
>> אז, מה אנחנו יכולים בעצם לעשות עם בלשנות חישובית?
לכן, אם יש לי משהו לדוגמא "חברים של אליסון." אני רואה אם אני רק
לא עץ תחבירי הייתי יודע כי "חברים" הוא צירוף שמני זה
שם עצם ולאחר מכן "של אליסון" הוא ביטוי במלות יחס שבו "של" הוא
הצעה ו" אליסון "היא שם עצם.
מה שאני יכול לעשות הוא ללמד את המחשב שלי כי כאשר יש לי צירוף שמני אחד ו
לאחר מכן ביטוי במלות יחס.
אז במקרה הזה, "חברים" ולאחר מכן "של המילוא "אני יודע שזה אומר ש
NP2, השנייה אחת, בבעלות NP1.
>> אז אני יכול ליצור איזשהו קשר, איזה פונקציה עבורו.
אז בכל פעם שאני רואה את המבנה הזה, שבו תואם בדיוק עם "חברים של
אליסון, "אני יודע שאליסון בעלות החברים.
אז החברים הם משהו שיש לו אליסון.
הגיוני?
אז זה בעצם מה חיפוש גרף עושה.
זה פשוט יוצר כללים להרבה דברים.
אז "חברים של אליסון", "החברים שלי המתגורר בקיימברידג' "," החברים שלי
שתלכו להרווארד. "זה יוצר כללים לכל הדברים האלה.
>> עכשיו תרגום מכונה.
לכן, תרגום מכונה גם משהו סטטיסטי.
ובעצם, אם אתה להסתבך ב בלשנות חישובית, הרבה
את הדברים שלך הולכים להיות נתונים סטטיסטיים.
אז כמו שאני עושה למשל עם הרבה הסתברויות שהייתי
חישוב, ואז אתה מקבל את זה מספר קטן מאוד שזה סופי
הסתברות, וזה מה נותן לך את התשובה.
תרגום מכונה גם משתמש מודל סטטיסטי.
ואם אתה רוצה לחשוב על מכונה תרגום בפשוט ביותר האפשרי
אגב, מה שאתה יכול לחשוב הוא פשוט לתרגם מילה במילה, נכון?
>> כאשר אתה לומד שפה עבור בפעם ראשונה, זה בדרך כלל מה
אתה עושה, נכון?
אם אתה רוצה אתה לתרגם משפט בשפה שלך לשפה
אתה לומד, בדרך כלל ראשון, אתה לתרגם כל אחת מהמילים
בנפרד, ולאחר מכן אתה מנסה לשים את המילים למקומו.
>> אז אם אני רוצה לתרגם את זה, [פורטוגזי מדבר]
שפירושו "החתול הלבן ברח." אם אני רוצה לתרגם את זה מ
מפורטוגזית לאנגלית, מה שאני יכול לעשות הוא, קודם כל, אני רק
לתרגם מילה במילה.
אז "o" הוא "," זה "גטו", "החתול", "רנקו", "לבן", ולאחר מכן "fugio" הוא
"ברח".
>> אז יש לי את כל המילים כאן, אבל הם לא לפי סדר.
זה כמו "חתול הלבן ברח" שהוא לא דקדוקיים.
כן, אז אני יכול להיות צעד שני, אשר הולך להיות מציאת האידיאלית
עמדה לכל אחת מהמילים.
אז אני יודע שאני ממש רוצה להיות "חתול לבן" במקום "חתול לבן". כך
מה אני יכול לעשות הוא, השיטה הנאיבית ביותר יהיה ליצור את כל
תמורות אפשריות של מילות, של עמדות.
ואז לראות שיש לו אחד ההסתברות הגבוהה ביותר על פי
למודל השפה שלי.
ואז כשאני מוצא אחד שיש לי ההסתברות הגבוהה ביותר אותו, שהוא
כנראה "החתול הלבן ברח" זה התרגום שלי.
>> וזו היא דרך פשוטה להסביר איך הרבה של תרגום מכונה
אלגוריתמים עובדים.
האם זה הגיוני?
זה גם משהו ממש מרגש כי אתם אולי יכולים לחקור עבור
פרויקט גמר, כן?
>> תלמיד: ובכן, אתה אמר שהוא היה הדרך הנאיבית, אז מה
הדרך שאינה נאיבית?
>> לוקאס פרייטס: הדרך שאינה נאיבית?
על אישור.
אז הדבר הראשון שהוא רע על בשיטה זו היא שאני פשוט תרגמתי
מילות, מילה במילה.
אבל לפעמים יש לך מילות ש יכול להיות תרגומים מרובים.
אני הולך לנסות לחשוב של משהו.
לדוגמא, "מנגה" בפחית פורטוגזית להיות או "להשחית" או "שרוול". כך
כשאתה מנסה לתרגם את המילה על ידי מילה, זה יכול להיות נותן לך
משהו שלא הגיוני.
>> אז אתה באמת רוצה אתה מסתכל על כל התרגומים האפשריים של
מילים ותראו, קודם כל, מהו הסדר.
אנחנו מדברים על permutating הדברים?
כדי לראות את כל פקודות אפשריות ו לבחור את אחד עם הגבוה ביותר
הסתברות?
באפשרותך לבחור גם את כל אפשרית תרגומים לכל
מילה ואז לראות -
בשילוב עם התמורות -
אשר אחד את ההסתברות הגבוהה ביותר.
>> בנוסף, אתה יכול גם להסתכל על לא רק מילות אלא ביטויים.
כך שאתה יכול לנתח את היחסים בין המילים ולאחר מכן לקבל
תרגום טוב יותר.
גם משהו אחר, ולכן בסמסטר הזה בעצם אני עושה מחקר ב
סינית, אנגלית תרגום מכונה, כך תרגום מ
הסיני לאנגלית.
>> ומשהו שאנחנו עושים הוא, מלבד שימוש מודל סטטיסטי, וזה רק
לראות את ההסתברויות של ראייה כמה עמדה במשפט, אני
למעשה גם הוסיף כמה תחביר לי מודל, ואמר, הו, אם אני רואה סוג זה
של הבנייה, זה מה שאני רוצה כדי לשנות את זה כשאני מתרגם.
אז אתה יכול גם להוסיף קצת סוג של אלמנט של תחביר לעשות
תרגום יעיל יותר ומדויק יותר.
על אישור.
>> אז איך אתה יכול להתחיל, אם אתה רוצה לעשות משהו בחישובית
בלשנות?
>> ראשית, אתה בוחר פרויקט המערב שפות.
לכן, יש כל כך הרבה בחוץ.
יש כל כך הרבה דברים שאתה יכול לעשות.
ואז אפשר לחשוב על מודל כי אתה יכול להשתמש.
בדרך כלל זה אומר שחשיבה של הנחות, כמו כמו, אה, כשהייתי
כמו חשיבה של המילים.
אני היה כמו, ובכן, אם אני רוצה להבין יצאתי שכתבו את זה, אני כנראה רוצה
להסתכל על דברי האדם המשמש ו לראות מי משתמש במילה הזאת לעתים קרובות מאוד.
אז תנסה להניח הנחות ו נסה לחשוב על דגמים.
ואז אתה יכול גם לחפש באינטרנט הסוג של בעיה שיש לך,
וזה הולך להציע לך מודלים שאולי
דגם דבר שכן.
>> ואתה יכול גם תמיד שלח לי.
me@lfreitas.com.
ואני רק יכול לענות על השאלות שלך.
אנחנו יכולים אולי אפילו להיפגש כל כך שאני יכול לתת הצעות על דרכים
יישום הפרויקט.
ואני מתכוון, אם אתה להסתבך עם בלשנות חישובית, זה הולך
להיות גדול.
אתה הולך לראות שם כל כך הרבה פוטנציאל.
והתעשייה רוצה לשכור אתה כל כך רע בגלל זה.
אז אני מקווה שחבר 'ה נהנה מזה.
אם יש לך חבר 'ה על כל שאלה, אתה יכול לשאול אותי אחרי זה.
אבל תודה לך.