LUCAS FREITAS: Bună. Bine ati venit toată lumea. Numele meu este Lucas Freitas. Sunt un junior la [inaudibil] studierea informatică, cu un accent în lingvistică computațională. Deci secundar meu este în limba și teoria lingvistică. Sunt foarte încântați să învețe voi un pic despre acest domeniu. Este un domeniu foarte interesant pentru a studia. De asemenea, cu o mulțime de potențial pentru viitor. Deci, eu sunt foarte incantata ca voi au în vedere proiecte în lingvistică computațională. Și voi fi mai mult decât fericit să recomande oricare dintre voi, dacă vă decideți să urmări una dintre cele. Deci, în primul rând, ceea ce sunt de calcul lingvistică? Lingvistica astfel de calcul este intersecția dintre lingvistică și informatică. Deci, ceea ce este lingvistica? Ce este informatica? Ei bine, de la lingvistică, ce luăm sunt limbile. Deci, lingvistică este, de fapt studiul de limbaj natural în general. Limbaj atât de natural - vorbim despre limba pe care le folosim de fapt la comunica între ele. Deci, noi nu suntem chiar vorbesc despre C sau Java. Vorbim mai multe despre limba engleză și Limbile chineză și alte pe care le utilizați pentru a comunica între ele. Provocatoare lucru despre asta este faptul că acum avem aproape 7.000 limbi din lume. Deci, există destul de o varietate mare de limbi pe care le pot studia. Și apoi cred că este, probabil, foarte greu de a face, de exemplu, traducere dintr-o limbă la parte, având în vedere că aveți Aproape 7.000 dintre ei. Deci, dacă te gândești de a face traducere de la o limbă la alta te au aproape mai mult de un milion combinații diferite pe care le puteți avea de la o limbă la alta. Deci, este într-adevăr o provocare pentru a face unele un fel de sistem de exemplu traducere fiecare limbă. Deci, lingvistică tratează cu sintaxa, semantică, pragmatică. Voi nu aveți nevoie de exact să știe ce sunt. Dar foarte interesant lucru este că ca un vorbitor nativ, atunci când vă aflați limbă ca și copil, înveți de fapt toate aceste lucruri - semantica de sintaxă și pragmatică - de unul singur. Și nimeni nu are să te învețe sintaxa pentru să înțelegeți cât de fraze sunt structurat. Deci, e foarte interesant, deoarece este ceva care vine foarte intuitiv. Și ceea ce iei de la stiinta calculator? Ei bine, cel mai important lucru pe care noi au în informatică este în primul rând de toate, inteligenta artificiala și de învățare mașină. Deci, ceea ce încercăm să facem lingvistică computațională se învață computerul cum să facă ceva cu limba. Deci, de exemplu, în mașină traducere. Am încercat să-i învețe cum computerul meu să știe cum să tranziția de la o limbă la alta. Deci, ca practic de predare un calculator două limbi. Dacă am face procesarea limbajului natural, cum este cazul, de exemplu, de Facebook Graph căutare, vă învață computerul cum să înțeleagă interogări bine. Deci, dacă spui "fotografiile mele prieteni. "Facebook nu tratează că ca un șir întreg care are doar o adunatura de cuvinte. Se înțelege, de fapt, relația între "fotografii" și "prietenii" și înțelege că "fotografii" sunt proprietate de "prietenii mei." Deci, asta-i o parte din, de exemplu, procesarea limbajului natural. Este încercarea de a înțelege ceea ce este relația dintre cuvintele într-o propoziție. Și marea întrebare este, poate vă invata un calculator cum să vorbească o limbă în general? Care este o întrebare foarte interesantă pentru cred, ca și în cazul în care poate în viitor, ai de gând să fie în măsură să vorbesc la telefonul mobil. Un fel de ceea ce facem cu Siri, dar ceva mai mult, aveți posibilitatea de fapt, spune ce vrei și telefonul se va înțelege totul. Și poate avea urmări întrebări și să păstreze vorbesc. Asta e ceva foarte interesant, în opinia mea. Deci, ceva despre limbi naturale. Ceva foarte interesant despre limbile naturale este faptul că, și acest lucru este credit pentru a-mi profesor de lingvistică, Maria Polinsky. Ea dă un exemplu și cred că e foarte interesant. Pentru că am învățat limba de când ne-am născut și apoi nativ noastră Limba fel de creste pe noi. Și, practic, să învețe limba de la efort minim, corect? Esti doar obtinerea de intrare de la dvs. părinții de ceea ce sună limba ca și pe care tocmai ați afla. Deci, e interesant, pentru că dacă te uiți la aceste Exemple, de exemplu. Te uiți, "Mary pune pe o haină fiecare timp ea iese din casă. " În acest caz, este posibil să aveți Cuvântul "ea" se referă la Mary, corect? Vă pot spune "Mary pune pe un strat de fiecare dată Maria părăsește casa. ", astfel încât e bine. Dar, apoi, dacă te uiți la sentința "A pune pe o haină de fiecare dată Maria iese din casă. "știi că e imposibil de spus că "ea" este referindu-se la Mary. Nu e nici un fel de a spune că "Maria pune pe un strat de fiecare dată Mary pleacă casa. "Deci e interesant pentru că aceasta este un fel de intuiție că fiecare vorbitor nativ are. Și nimeni nu a fost învățat că acest lucru este modul în care funcționează sintaxa. Și pe care le poate avea doar această "ea" referindu-se la Maria, în acest caz, în primul rând, și de fapt, în acest alt de asemenea, dar nu în aceasta. Dar toată lumea devine un fel de pentru același răspuns. Toată lumea este de acord cu asta. Deci, este foarte interesant cum, deși nu știi toate regulile în limba dumneavoastră vă fel de înțeles modul în care funcționează limba. Deci, cel mai interesant lucru despre naturale Limba este că nu trebuie să știu nici sintaxa să știe dacă o propoziție este gramaticale sau negramatical pentru cele mai multe cazuri. Ceea ce te face să crezi că poate ceea ce se întâmplă este că, prin viața ta, tu chiar a păstra achiziție mai mult și mai mult Exemple de spus pentru tine. Și apoi vă păstrați de memorare toate propozițiile. Și atunci când cineva îți spune ceva, ai auzit această frază și te uiți la vocabularul pedepselor și a vedea dacă această frază este acolo. Și dacă este acolo, spune că e gramatical. În cazul în care nu-i spui că e negramatical. Deci, în acest caz, v-ar spune, oh, astfel încât să aibă o listă uriașă de toate posibile propoziții. Și atunci când auzi o propoziție, știi dacă e gramaticale sau nu se bazează pe faptul că. Chestia e că, dacă te uiți la o propoziție, de exemplu, " cinci capete CS50 TFS fierte orbi caracatiță, folosind o cană DAPA. "Este cu siguranta nu o propoziție că ai auzit înainte. Dar, în același timp, știi că e destul de mult gramatical, corect? Nu există greșeli gramaticale și vă pot spune că este un posibil propoziție. Deci, ne face să credem că, de fapt, astfel încât ne-am învăța limba este nu numai de a avea o bază de date foarte mare de posibile cuvinte sau fraze, dar mai mult de înțelegerea relației dintre cuvinte în aceste propoziții. Asta face sens? Deci, atunci întrebarea este, poate calculatoare învăța limbi străine? Putem învăța limba de calculatoare? Deci, să ne gândim a diferenței între un vorbitor nativ al unei limbi și un computer. Deci, ce se întâmplă cu vorbitorul? Ei bine, vorbitorul nativ învață o Limba de expunerea la ea. De obicei, de ani de copilărie. Deci, practic, ai doar un copil, și păstrați-vă să vorbesc cu ea, și ea doar învață cum să vorbească limba, nu? Deci, tu esti de fapt da intrare la copil. Deci, atunci aveți posibilitatea să susțin că un calculator se poate face acelasi lucru, nu? Vă pot da doar limba ca intrare la computer. Ca de exemplu o grămadă de fișiere care au cărți în limba engleză. Poate că este o modalitate prin care ar putea preda, eventual, o calculator engleză, corect? Și, de fapt, dacă stai să te gândești, este nevoie de tine, poate un cuplu zile pentru a citi o carte. Pentru un calculator este nevoie de un al doilea la uita-te la toate cuvintele dintr-o carte. Astfel încât vă puteți gândi că ar putea fi doar acest argument de intrare de la în jurul valorii de tine, asta nu e de ajuns să spun că asta e ceva care numai oamenii pot face. Puteți să vă gândiți de calculatoare De asemenea, se poate obține de intrare. Al doilea lucru este că vorbitorii nativi de asemenea, au un creier care are capacitatea de învățare a limbilor străine. Dar, dacă te gândești la asta, un creier este un lucru solid. Când te-ai nascut, este deja stabilit - acest lucru este creierul tău. Și, pe măsură ce cresc, tu chiar a lua mai mult de intrare de limbă și poate substante nutritive și alte chestii. Dar destul de mult creierul este un lucru solid. Deci, vă pot spune, ei bine, poate că puteți construi un calculator care are o grămadă de funcții și metode care doar imita capacitatea de învățare a limbilor străine. Deci, în acest sens, ati putea spune, ei bine, eu poate avea un calculator care are toate lucruri am nevoie pentru a învăța limba. Și ultimul lucru este că un nativ vorbitor învață de la încercare și eroare. Deci, practic, un alt lucru important în învățarea limbilor străine este ca un fel de a învăța lucruri prin generalizări de ceea ce auzi. Deci, după cum vă cresc ai invatat asta unele cuvinte sunt mai mult ca substantive, unele altele sunt adjective. Și nu trebuie să aibă nici cunoaștere a lingvisticii să înțeleagă că. Dar pur și simplu știi că există câteva cuvinte sunt poziționate într-o parte a propoziție și altele în alte părți de propoziție. Și că atunci când faci ceva care este ca o frază care nu este corect - poate cauza o generalizare peste de exemplu. Poate că atunci când ai crescut, ai observat că pluralul este de obicei format prin punerea un S la sfârșitul cuvântului. Și apoi încercați să faceți pluralul de "cerb" ca "cerbi" sau "dinte" ar fi "dinților". Deci părinții tăi sau cineva te corectează și spune, nu, pluralul "cerb" este "cerb", iar plural de "dinte" este "dintilor." Și apoi te invata aceste lucruri. Astfel încât să învețe de la încercare și eroare. Dar puteți face, de asemenea, că cu un calculator. Puteți avea ceva numit învățare armare. Care este de fapt ca da o calculator o recompensă ori de câte ori o face ceva corect. Și dându-i opusul unei recompense și, atunci când face ceva greșit. Puteți vedea de fapt, că dacă te duci pentru Google Translate și încercați să traduce o propoziție, ea vă cere pentru feedback-ul. Deci, dacă spui, oh, există o mai bună traducere acestei propoziții. Puteți să-l introduceți în sus și apoi în cazul în care o mulțime de oameni tot spun că este o mai bună traducere, doar învață că ea ar trebui să folosească traducerea în loc de cel care a fost da. Deci, aceasta este o întrebare foarte filozofic pentru a vedea în cazul în care computerele vor fi posibilitatea de a vorbi sau nu în viitor. Dar am mari speranțe că acestea pot doar pe baza acestor argumente. Dar e doar mai mult de o filosofic întrebare. Deci, în timp ce calculatoarele încă nu se poate vorbi, care sunt lucrurile pe care le putem face? Unele lucruri cu adevarat interesante sunt clasificare a datelor. Deci, de exemplu, voi ști că serviciile de e-mail face, pentru exemplu, filtrarea mesajelor spam. Deci, ori de câte ori primiți spam-ul, ea încearcă pentru a filtra în altă casetă. Deci, cum se face asta? Nu e ca la calculator doar știe adrese de e-mail ce se trimite spam. Deci, este mai mult pe baza conținutului de mesajul, sau, poate, titlul, sau poate că unii model care le au. Deci, de fapt, ceea ce se poate face este să obțineți un mulțime de date de e-mailuri care sunt spam-ul, e-mailuri care nu sunt spam-ul, si de a invata ceea ce un fel de modele aveți în cele care sunt spam-ul. Și aceasta este o parte din calcul lingvistică. Se numește clasificare a datelor. Și vom fapt de gând pentru a vedea o exemplu de faptul că în următoarele slide-uri. Al doilea lucru este de limbaj natural prelucrare, care este lucrul pe care Graph Căutare este de a face de a lăsa vă scrie o propoziție. Și ea are încredere în tine să înțeleagă ce este sensul și dă ai un rezultat mai bun. De fapt, dacă te duci la Google sau Bing și veți căuta ceva de genul Lady Înălțime Gaga, tu esti de fapt de gând pentru a obține 5 "1" în loc de informații de la ei, deoarece ea intelege de fapt ce vorbești. Deci, asta e parte din naturale procesarea limbajului. Sau, de asemenea, atunci când utilizați Siri, în primul rând aveți un algoritm care încearcă să traduce ceea ce spui în cuvinte, în text. Și apoi încearcă să traducă care în sens. Deci, asta e tot parte a naturale procesarea limbajului. Apoi, aveți de traducere automată - care este de fapt unul din preferatele mele - care este doar traducerea din o limbă în alta. Astfel încât vă puteți gândi că atunci când faci traducere automată, aveți posibilități infinite de fraze. Deci, nu există nici o modalitate de stocare doar fiecare traducere. Deci, va trebui să vină cu interesant algoritmi pentru a putea traduce fiecare propoziție într-un fel. Voi aveți întrebări până acum? Nu? OK. Deci, ce vom vedea azi? Mai întâi de toate, am de gând să vorbesc despre problema de clasificare. Astfel cea pe care am fost spune despre spam. Ceea ce am de gând să faceți este, versuri date la o melodie, puteți încerca să dau seama cu mare probabilitate care este cantareata? Să spunem că am melodii de la Lady Gaga și Katy Perry, dacă vă dau un cântec nou, poate să îți dai seama dacă e Katy Perry sau Lady Gaga? Al doilea, eu sunt doar de gând să vorbesc despre problema de segmentare. Deci, eu nu știu dacă voi știți, dar Chineză, japoneză, altele din Asia de Est limbi, și alte limbi în general, nu au spații între cuvinte. Și apoi, dacă te gândești la modul în care tipul tau de calculator încearcă să înțelege procesarea limbajului natural, se uită la cuvintele și încearcă să înțeleagă relațiile între ele, nu? Dar, apoi, dacă aveți din China, și tu avea zero spatii, este foarte greu de afla ce este relația dintre cuvinte, pentru că ei nu au nici cuvinte de la primul. Deci, va trebui să faci ceva numit Segmentarea ceea ce înseamnă doar punerea spații între ceea ce am numi cuvinte în aceste limbi. Face sens? Și apoi vom vorbesc despre sintaxa. Deci, doar un pic despre naturale procesarea limbajului. O să fie doar o imagine de ansamblu. Așa că astăzi, de fapt ceea ce vreau să fac se da voi un pic de o în interiorul a ceea ce sunt posibilitățile pe care le puteți face cu de calcul lingvistică. Și apoi puteți vedea ceea ce crezi este rece printre acele lucruri. Și poate că vă puteți gândi la un proiect și veni vorbi cu mine. Și vă pot da sfaturi despre cum să-l pună în aplicare. Deci, sintaxa va fi un pic despre Graph Căutare și mașină traducere. Mă duc să dau un exemplu de cât de ai putea, de exemplu, traduce ceva din portugheză în engleză. Sună bine? Deci, mai întâi, problema de clasificare. Îi voi spune că această parte a seminarului va fi cea mai mare provocare una doar pentru că acolo se întâmplă să fie unele de codificare. Dar aceasta va fi Python. Știu că voi nu știți Python, așa Mă duc să explice pe high nivelul ceea ce fac. Și nu trebuie să aibă grijă într-adevăr prea mult despre sintaxa pentru că asta e ceva voi putea învăța. OK? Sună bine. Deci, care este problema de clasificare? Deci ai dat niște versuri pentru un cântec, și doriți să ghicesc care este o cântă. Și acest lucru poate fi de orice fel de alte probleme. Astfel încât acesta poate fi, de exemplu, aveți o campania prezidențială și aveți un vorbire, și doriți să găsiți daca a fost, de exemplu, Obama sau Mitt Romney. Sau puteți avea o grămadă de email-uri și pe care doriți să dau seama dacă sunt spam sau nu. Deci, e doar clasificare unele date pe baza cuvintelor pe care le au acolo. Deci, pentru a face acest lucru, va trebui să face unele ipoteze. Deci, o mulțime de lucruri despre lingvistică computațională este de a face presupuneri, ipoteze obicei inteligente, astfel încât puteți obține rezultate bune. Încercarea de a crea un model pentru el. Și apoi încercați să-l afară și a vedea dacă acesta funcționează, dacă vă oferă o precizie bună. Și dacă o face, atunci ai încercați să-l îmbunătățească. În cazul în care nu, tu esti ca, OK, poate am ar trebui să facă o presupunere diferit. Astfel presupunerea că vom face este că un artist, de obicei, cântă despre un subiect de mai multe ori, și poate folosește cuvinte de mai multe ori doar deoarece acestea sunt folosite pentru a-l. Vă puteți gândi doar de prietenul tău. Sunt sigur că voi toți au prieteni care spune fraza lor semnătură, literalmente pentru fiecare propoziție - ca un anumit cuvânt sau o anumită fraza care se spune pentru fiecare propoziție. Și ce vă pot spune este că dacă vedeți o frază care are o semnătură frază, puteți ghici că, probabil, Prietenul tău este una se spune, nu? Deci, face ca ipoteză și apoi care este modul în care creați un model. Exemplul pe care am de gând să dea este pe cum Lady Gaga, de exemplu, persoane spune că ea folosește "copil" pentru toate ei numărul unu melodii. Și de fapt, acest lucru este un video care arată ei spunând cuvântul "copil" pentru melodii diferite. [VIDEO PLAYBACK] - (CANTO) Baby. Baby. Baby. Baby. Baby. Babe. Baby. Baby. Baby. Baby. [END VIDEO PLAYBACK- LUCAS FREITAS: Deci, există, cred, 40 de melodii aici, în care ea spune cuvântul "copil". Astfel încât să puteți ghici practic că dacă vedeți un cântec care are cuvântul "copil," există unele mare probabilitatea că este Lady Gaga. Dar haideți să încercăm să dezvolte această în continuare mai mult formal. Deci, acestea sunt versuri de melodii de Lady Gaga și Katy Perry. Deci, te uiti la Lady Gaga, tu le vezi au o mulțime de evenimente de "copil," un mulțime de evenimente de "cale." Și apoi Katy Perry are o multime de evenimente de "," O mulțime de evenimente de "foc". Deci, practic, ceea ce vrem să face este, veți obține un liric. Să spunem că veți obține un liric pentru o melodie care este "copil," doar "copil". Dacă veți obține doar cuvântul "copil," și acest lucru este toate datele pe care le au de la Lady Gaga și Katy Perry, care ar fi ai ghicit este persoana care cântă melodia? Lady Gaga sau Katy Perry? Lady Gaga, corect? Pentru că ea este singura care spune "Copil". Acest lucru suna stupid, nu? OK, acest lucru este foarte usor. Mă uit la cele două cântece și de Desigur, ea e singura care are "Copil". Dar ce se întâmplă dacă aveți o grămadă de cuvinte? Dacă aveți un lyric real, ceva cum ar fi, "iubito, eu doar a mers pentru a vedea un [? CFT?] prelegere, "sau ceva de genul asta, și atunci va trebui de fapt să dau seama - bazat pe toate aceste cuvinte - care este artistul care, probabil, cântat acest cântec? Deci, haideți să încercăm să dezvolte acest lucru un pic mai departe. OK, deci bazat doar pe datele pe care le are, se pare că Gaga este, probabil, cantareata. Dar cum putem scrie acest lucru mai mult formal? Și acolo va fi un pic bit de statistici. Deci, dacă te pierzi, doar încercați pentru a înțelege conceptul. Nu contează dacă ați înțeles ecuațiile foarte bine. Acest lucru este mergi la a fi on-line. Deci, practic, ceea ce am de calcul este probabilitate că acest cântec este de Lady Gaga având în vedere că - astfel încât acest bar înseamnă având în vedere că - Am văzut cuvântul "copil". Asta face sens? Așa că am încercat să calculeze că probabilitatea. Deci, nu există această teoremă numită Bayes teorema care spune că probabilitate de A B dat, este probabilitate de B Având în vedere o, ori O probabilitate de, peste probabilitatea a B. Aceasta este o ecuație lungă. Dar ceea ce trebuie să înțelegeți de la că este că acest lucru este ceea ce vreau să calcula, corect? Astfel probabilitatea ca acest cântec este de Lady Gaga având în vedere că am văzut cuvântul "Copil". Și acum ce Primesc este probabilitate de cuvântul "copil" dat că am Lady Gaga. Și ceea ce este faptul că de fapt? Ce înseamnă asta este, ceea ce este probabilitatea de a vedea cuvântul "copil" în versuri Gaga? Dacă vreau să calculeze că într-o foarte mod simplu, este doar numărul de ori am vedea "copil" din numărul total de cuvinte în versuri Gaga, corect? Care este frecvența pe care o văd acest cuvânt în activitatea Gaga? Face sens? Al doilea termen este probabilitate de Gaga. Ce înseamnă asta? Asta înseamnă, în esență, ceea ce este probabilitate de clasificare unele versuri ca Gaga? Și că este un fel de ciudat, dar să ne gândim de exemplu. Deci, haideți să spunem că probabilitatea de având "copil", într-un cântec este la fel pentru Gaga și Britney Spears. Dar Britney Spears are de două ori mai multe melodii decât Lady Gaga. Deci, dacă cineva vă oferă doar la întâmplare versuri de "copil", primul lucru pe care uita-te la este, ceea ce este probabilitatea de având "copil", într-un cântec Gaga, "baby" într-un cântec Britney? Și e același lucru. Deci, al doilea lucru pe care îl veți vedea este, bine, ceea ce este probabilitatea de acest liric de la sine fiind un lyric Gaga, și ceea ce este probabilitatea fiind un lyric Britney? Deci, din moment Britney are atât de mult mai multe versuri decât Gaga, tu ar fi, probabil, să zicem, ei bine, acest lucru este, probabil, un liric Britney. De aceea avem această numi chiar aici. Probabilitatea de Gaga. Are sens? Nu-i așa? OK. Iar ultima este doar probabilitatea de "copil" care nu într-adevăr contează atât de mult. Dar e probabilitatea de vedea "copil" în limba engleză. Noi, de obicei, nu-mi pasă că mult despre acest termen. Asta face sens? Deci probabilitatea Gaga este numit probabilitatea prealabilă a Gaga de clasă. Pentru că aceasta înseamnă doar că, ceea ce este probabilitatea de a avea acea clasă - care este Gaga - doar, în general, doar fără condiții. Și apoi, când am probabilitate de Gaga a dat "copil", o numim plus plini de lacrimi o probabilitate, deoarece este probabilitatea de a avea Gaga a dat unele dovezi. Deci, eu sunt oferindu-vă dovezile pe care l-am văzut copilul cuvânt și melodia face sens? OK. Deci, dacă am calculat că pentru fiecare de cântece pentru Lady Gaga, ceea ce ar fi - aparent, nu mă pot mișca aceasta. Probabilitatea Gaga va fi ceva de genul, 2 de peste 24, ori de 1/2, peste 2 peste 53. Nu conteaza daca stii ce aceste numere sunt provin din. Dar este doar un număr, care se întâmplă pentru a fi mai mult de 0, corect? Și apoi, când am face Katy Perry, probabilitate de "copil" dat Katy este deja 0, nu? Pentru că nu există nici un "copil" în Katy Perry. Deci, atunci acest lucru devine 0, iar Gaga victorii, ceea ce înseamnă că Gaga este probabil cantareata. Asta face sens? OK. Așa că dacă vreau să fac acest lucru mai oficial, Eu pot face de fapt un model de pentru mai multe cuvinte. Deci, haideți să spunem că am ceva cum ar fi, "iubito, eu sunt pe foc, "sau ceva. Deci are mai multe cuvinte. Și în acest caz, puteți vedea că "copilul" este în Gaga, dar nu este în Katy. Și "foc" este în Katy, dar nu este în Gaga, corect? Deci, din ce in ce mai complicat, nu? Deoarece se pare că aproape au o legătură între cele două. Deci, ceea ce trebuie să faceți este să-și asume independență printre cuvintele. Deci, practic, ceea ce înseamnă că este faptul că Eu doar calcul ceea ce este probabilitate de a vedea "copil," ceea ce este probabilitatea de a vedea "I", și "Sunt", și "în" și "foc" toate separat. Apoi am înmulțirea pe toate. Și văd ceea ce este probabilitatea de a vedea întreaga propoziție. Face sens? Deci, practic, dacă am avea doar un singur cuvânt, ceea ce vreau să găsească este arg max, ceea ce înseamnă că, ceea ce este clasa care este oferindu-mi cea mai mare probabilitate? Deci, ceea ce este clasa care dă mi cea mai mare probabilitate de probabilitate de clasă dat cuvântul. Deci, în acest caz, Gaga a dat "copil". Sau Katy dat "copil". Face sens? Și tocmai de la Bayes, care ecuație că am arătat, vom crea această fracțiune. Singurul lucru este că veți vedea că probabilitatea de a cuvântului dat Schimbări în clase în funcție de pe clasa, corect? Numărul de "Baby" e care le-am în Gaga este diferit de Katy. Probabilitatea de clasă și modificări, pentru că este doar numărul de melodii fiecare dintre ele are. Dar probabilitatea cuvântul în sine va fi aceeași pentru toate artiști, dreapta? Deci probabilitatea de cuvânt este doar, ceea ce este probabilitatea de văzând că cuvânt în Limba engleză? Deci, e la fel pentru toate acestea. Deci, din moment ce aceasta este constantă, putem doar picătură acest lucru și nu pasa de asta. Deci, acest lucru va fi, de fapt, ecuație căutăm. Și dacă am mai multe cuvinte, eu sunt încă de gând să aibă prealabil probabilitate aici. Singurul lucru este că eu sunt înmulțirea probabilitatea toate celelalte cuvinte. Deci, eu sunt înmulțirea pe toate. Face sens? Se pare ciudat, dar înseamnă, în esență, calcularea prealabilă a clasei, și apoi se înmulțește cu probabilitatea de fiecare din cuvintele fiind în acea clasă. Și știți că probabilitatea de a cuvântul dat o clasă va fi de mai multe ori pe care le vedeți cuvântul în această clasă, împărțit la numărul de cuvintele pe care le au în clasă, în general. Face sens? E doar cât de "copil" a fost de peste 2 numărul de cuvinte care Am avut-o în versuri. Deci, doar frecventa. Dar există un lucru. Amintiți-vă cum am fost care arată că probabilitate de "copil" fiind versuri de la Katy Perry a fost de 0 doar pentru că Katy Perry nu a avut "copil", la toate? Dar se pare un pic dur la doar pur și simplu spun că versurile nu pot fi de la un artist pur și simplu pentru că ei nu au acest cuvânt, în special, în orice moment. Deci, ai putea spune doar, ei bine, dacă nu au acest cuvânt, am de gând să vă dau o probabilitate mai mică, dar eu sunt doar de gând să da 0 imediat. Pentru că poate a fost ceva de genul, "Foc, foc, foc, foc", care este total Katy Perry. Și apoi "copil," și se merge doar pentru a 0 imediat, deoarece nu a fost una "Copil". Deci, practic, ceea ce facem este ceva numit Laplace netezire. Și acest lucru înseamnă doar că dau unii probabilitate chiar la cuvintele că nu există. Deci, ceea ce fac este că atunci când sunt calcularea aceasta, întotdeauna am adăuga 1 la numărătorul. Astfel încât, chiar dacă cuvântul nu există, în acest caz, în cazul în care aceasta este zero, eu sunt încă calcul acest lucru ca un peste numărul total de cuvinte. În caz contrar, mă cât de multe cuvinte Am și eu adăuga 1. Așa că eu sunt de numărare pentru ambele cazuri. Face sens? Deci, acum, hai sa facem ceva de codificare. Am de gând să aibă de a face acest lucru destul de repede, dar este doar important să băieți înțeleg conceptele. Deci, ceea ce încercăm să facem este punerea în aplicare exact acest lucru lucru pe care tocmai i-am spus - Vreau să pun versuri de la Lady Gaga și Katy Perry. Iar programul va fi în măsură să spune dacă aceste noi versuri sunt din Gaga sau Katy Perry. Face sens? OK. Așa că am acest program am de gând pentru a apela classify.py. Deci, aceasta este Python. Este un nou limbaj de programare. Este foarte similară în unele moduri de a C si PHP. Este similar pentru că, dacă doriți să învăța Python după știind C, E într-adevăr nu atât de mult de o provocare doar pentru că Python este mult mai ușor decât C, în primul rând. Și o mulțime de lucruri sunt deja implementat pentru tine. Deci, doar cum ca PHP are funcții care sorta o listă, sau adăugați ceva la o matrice, sau bla, bla, bla. Python are toate aceste, de asemenea. Așa că eu sunt doar de gând să explice repede cum am putea face clasificarea problema de aici. Deci, haideți să spunem că, în acest caz, am versuri de la Gaga și Katy Perry. Modul în care am aceste versuri este că primul cuvânt din versuri este numele artistului, și restul este versurile. Deci, haideți să spunem că am această listă în care primul este versuri de Gaga. Deci, aici eu sunt pe drumul cel bun. Și cel următor este Katy, și ea are, de asemenea versuri. Deci, acest lucru este modul în care declara o variabilă în Python. Nu trebuie să dea tipul de date. Trebuie doar scrie "versuri," un fel de ca în PHP. Face sens? Deci, care sunt lucrurile pe care trebuie să calculează pentru a putea calcula probabilități? Eu am pentru a calcula "Preoții" din fiecare dintre diferitele clase pe care le am. Eu am pentru a calcula "posteriors," sau destul de mult probabilitățile fiecare dintre diferitele cuvintele pe care Eu pot avea pentru fiecare artist. Deci în Gaga, de exemplu, am de gând pentru a avea o listă de câte ori văd fiecare dintre cuvintele. Face sens? Și, în sfârșit, eu sunt doar de gând să aibă o Lista numit "cuvinte", care este doar de gând de a avea cât de multe cuvinte I au pentru fiecare artist. Deci, pentru Gaga, de exemplu, atunci când mă uit la versurile, am avut, cred, 24 cuvinte în total. Deci, această listă este doar de gând să aibă Gaga 24, și Katy un alt număr. Face sens? OK. Deci, acum, de fapt, să du-te la codificare. Deci, în Python, poți de fapt returna un buchet de diferite lucrurile dintr-o funcție. Așa că am de gând să creeze această funcție numit "condiționată", care se va să se întoarcă toate aceste lucruri, "antecedente", a "probabilitățile," și "cuvinte". Deci "condiționată" și este va fi de asteptare in "versuri." Deci, acum vreau să de fapt, Trimite această funcție. Astfel modul în care pot scrie acest Funcția este tocmai am definit acest funcționeze cu "def." Așa că am făcut-o "def condiționată, "și se ia "Versuri." Și ce acest lucru se va face este, în primul rând, am antecedente mele pe care vreau să calculeze. Astfel modul în care pot face acest lucru este de a crea un dicționar în Python, care este destul de mult acelasi lucru ca un hash masă, sau e ca un iterativ matrice în PHP. Acest lucru este cum am declara un dicționar. Și, practic, ce înseamnă acest lucru este că antecedente ale Gaga este de 0,5, de exemplu, dacă 50% dintre versurile sunt din Gaga, 50% sunt de Katy. Face sens? Deci, am să dau seama cum pentru a calcula antecedente. În următorii cele pe care le au de a face, de asemenea, sunt probabilitățile și cuvintele. Astfel probabilitățile Gaga este lista toate probabilitățile pe care le au pentru fiecare dintre cuvintele pentru Gaga. Deci, dacă mă duc la probabilități de Gaga "Copil", de exemplu, o să-mi dea ceva de genul 2 peste 24 în acest caz. Face sens? Așa că du-te la "probabilități," Du-te "Gaga" găleată, care are o listă a tuturor cuvintele Gaga, apoi mă duc la "copil" și văd probabilitatea. Și, în sfârșit am această "Cuvinte" dicționar. Deci, aici, "probabilitati". Și apoi "cuvinte". Deci, dacă eu fac "cuvinte", "Gaga" ceea ce se va întâmpla este că e O să-mi dea 24, spunând că am avea 24 de cuvinte în versuri de la Gaga. Are sens? Deci, aici, "cuvinte" este egal cu dah-dah-dah. Bine Deci, ce am de gând să faceți este să am de gând să itera peste fiecare dintre versuri, așa fiecare dintre siruri de caractere care Am în listă. Și am de gând pentru a calcula aceste lucruri pentru fiecare dintre candidați. Are sens? Deci, am să fac o pentru buclă. Deci, în Python ceea ce pot face este "de linie în versuri. "Același lucru ca și o "Pentru fiecare" declarație în PHP. Amintiți-vă cum în cazul în care a fost PHP am putut spune "pentru fiecare versuri ca linie. "face sens? Deci, eu iau fiecare dintre liniile, în acest caz, acest șir și următoarea string astfel pentru fiecare dintre liniile de ceea ce am gând să faceți este în primul rând, am de gând să împărțit această linie într-o listă de cuvinte separate prin spații. Deci, cool thing despre Python este că ai putea la fel ca Google "cum pot împărțit un șir în cuvinte? "Și este O să-ți spun cum se face. Și modul de a face acest lucru, e doar "linie = Line.split () "și este practic gând să vă dau o listă cu fiecare dintre cuvintele de aici. Are sens? Deci, acum că am făcut asta vreau să știu care este cantareata de acest cântec. Și pentru a face asta trebuie doar pentru a obține primul element al tabloului, nu? Deci, eu pot să spun doar că am "cântăreț = Linie (0) "face sens? Și atunci ce trebuie să fac este, în primul rând de toate, am de gând să actualizeze cât de multe cuvinte am sub "Gaga." așa că eu sunt doar va pentru a calcula cât de multe cuvinte I au în această listă, nu? Deoarece acest lucru este cât de multe cuvinte am în versuri și eu voi face la fel adăugați-l la "Gaga" matrice. Asta face sens? Nu te concentra prea mult pe sintaxa. Gândiți-vă mai multe despre conceptele. Asta e partea cea mai importantă. OK. Deci, ce pot face este dacă "Gaga" este deja în această listă, astfel încât "în cazul în care cantareata în cuvinte ", ceea ce înseamnă că am deja au cuvinte de Gaga. Vreau doar să adăugați informațiile suplimentare cuvinte pentru asta. Deci, ceea ce fac este "de cuvinte (cântăreață) + = Len (linie) - 1 ". Și apoi eu pot face doar Lungimea liniei. Deci, cât de multe elemente I au în matrice. Și eu trebuie să fac minus 1 doar pentru că primul element al matricei este doar un cântăreț și cei care nu sunt versuri. Are sens? OK. "Altfel," înseamnă că vreau să efectiv introduceți Gaga în listă. Deci, eu doar fac "cuvinte (cântăreț) = Len (linie) - 1, "îmi pare rău. Deci, singura diferență între cele două linii este faptul că aceasta, ea nu are există încă, așa că eu sunt doar inițializare. Asta am de fapt, adăugarea. OK. Deci, acest lucru a fost adăugarea de cuvinte. Acum vreau să adăugați la antecedente. Deci, cum pot calcula Preoții? Preoții pot fi calculate de câte ori. Deci, cum de multe ori veți vedea că cântăreț printre toate cântăreți care vă avea, nu? Deci, pentru Gaga și Katy Perry, în acest caz, eu văd Gaga odată, Katy Perry dată. Deci, practic antecedente pentru Gaga și pentru Katy Perry ar fi doar unul, nu? Trebuie doar câte ori Văd artistul. Deci, acest lucru este foarte ușor de calculat. Eu pot doar ceva similar ca și cum ar fi "în cazul în care cântăreață în antecedente, "Mă duc pentru a adăuga 1 la cutia lor antecedente. Deci, "cazier (cântă)" + = 1 "și apoi" altceva " Am de gând să fac "antecedente (cântăreață) = 1. "Face sens? Deci, dacă nu există pur și simplu mi-am pus ca 1, altfel am doar adăuga 1. OK, așa că acum tot ce am de facut este, de asemenea, adaugă fiecare dintre cuvintele la probabilități. Așa că trebuie să conta de câte ori Văd fiecare dintre cuvintele. Deci, eu doar trebuie să fac o altă pentru buclă în linia. Deci, primul lucru pe care am de gând să faceți este să verificați dacă cantareata are deja o probabilități matrice. Deci, eu sunt de verificare în cazul în care cantareata nu au o gamă probabilități, eu sunt doar O să inițializa o pentru ei. Nu e chiar o matrice, îmi pare rău, este un dicționar. Astfel încât probabilitatea de cântăreață se întâmplă pentru a fi un dicționar deschis, așa că eu sunt doar initializarea un dicționar pentru ea. OK? Și acum pot face de fapt o pentru buclă pentru a calcula fiecare dintre cuvintele " probabilități. OK. Deci, ce pot face este un pentru buclă. Așa că eu sunt doar de gând să itera peste matrice. Astfel modul în care pot face asta în Python este "for i in gama." De la 1 pentru că vreau să înceapă în a doua Element pentru că primul este Numele cântăreț. Deci, de la unul până la Lungimea liniei. Și când eu nu-l varia merge de fapt, de la ca aici, de la 1 la len a linie minus 1. Așa se face deja chestia aia de a face n minus 1 pentru matrice care este foarte convenabil. Are sens? Deci, pentru fiecare dintre acestea, ceea ce am de gând să faci este, la fel ca și în celălalt, Mă duc pentru a verifica dacă cuvântul în acest poziție în linia este deja în probabilități. Și apoi cum am spus aici, probabilități cuvinte, așa cum mi-am pus în "probabilităților (cântăreață)". Deci, numele cântărețului. Deci, în cazul în care este deja în "Probabilit (cântăreț)", înseamnă că am doriți să adăugați 1 la ea, așa că am de gând să face "probabilităților (cantareata)", precum și Cuvântul este numit "linie (i)". Am de gând să adăugați 1 și "altfel" Sunt doar O să-l inițializa la 1. "Linia (i)". Are sens? Deci, am calculat toate de tablouri. Deci, acum tot ce trebuie să fac pentru aceasta este doar "antecedente reveni, probabilităților și cuvinte. "Să a se vedea dacă există orice, OK. Se pare că totul este de lucru până acum. Astfel, că are sens? Într-un fel? OK. Așa că acum am toate probabilitățile. Deci, acum, singurul lucru pe care l-am lăsat este doar de a avea acel lucru care calculează produsul tuturor probabilitati când mă versurile. Deci, haideți să spunem că vreau să sun acum această funcție "clasifica ()" și lucru care are funcția de este doar un argument. Să spunem "Baby, eu sunt pe foc" și este O să dau seama ce este probabilitatea ca acest lucru este Gaga? Care este probabilitatea că acest lucru este Katie? Sună bine? Așa că eu sunt doar de gând să aibă de a crea o noua functie numita "clasifica ()" și se va lua ceva versuri la fel de bine. Si pe langa versurile eu, de asemenea, trebuie să trimită Preoții, probabilități și cuvintele. Așa că am de gând să trimită versuri, antecedente, probabilitati, cuvinte. Deci, acest lucru este de a lua versuri, antecedente, probabilitati, cuvinte. Deci, ce face? Este practic este de gând să meargă prin toate posibile candidații pe care le au ca o cântăreață. Și în cazul în care sunt candidații? Sunt în antecedente, corect? Deci, am toate aceste acolo. Așa că am de gând să aibă un dicționar din toți candidații posibile. Și apoi pentru fiecare candidat în antecedente, așa că înseamnă că va fi Gaga, Katie dacă am avut mai mult, ar fi mai mult. Am de gând să înceapă calcularea această probabilitate. Probabilitatea ca ne-am văzut în PowerPoint este vremurile anterioare produs de fiecare dintre alte probabilități. Deci, eu pot face același lucru aici. Eu pot face doar probabilitatea este inițial doar prealabil. Deci, antecedente ale candidatului. Corect? Și acum trebuie să itera peste toate cuvinte pe care le am în versuri a fi posibilitatea de a adăuga probabilitatea pentru fiecare dintre ei, OK? Deci, "de cuvânt în versuri" ce am de gând sa faci este, în cazul în care cuvântul este în "probabilităților (candidat)", care înseamnă că este un cuvânt care candidat are în versurile lor - de exemplu, "baby" pentru Gaga - ceea ce am de gând să fac este faptul că probabilitate va fi multiplicat de 1 plus probabilitățile de candidatul pentru acest cuvânt. Și se numește "cuvânt". Aceasta împărțit la numărul de cuvinte pe care o am pentru acel candidat. Numărul total de cuvinte pe care am pentru cantareata care mă uit la. "Else". aceasta înseamnă că este un cuvânt nou așa că ar fi ca și cum, de exemplu, "Foc" pentru Lady Gaga. Deci, vreau doar să fac un peste "Cuvânt (candidat)". Așa că nu vreau să pun acest termen aici. Deci, va fi, practic, copierea și lipirea aceasta. Dar am de gând pentru a șterge această parte. Deci, este doar de gând să fie de 1 peste asta. Sună bine? Și acum, la final, eu sunt doar de gând să imprima numele candidatului și probabilitatea pe care le au de având S pe versurile lor. Are sens? Și eu de fapt, nu chiar au nevoie de acest dicționar. Are sens? Deci, să vedem dacă asta funcționează de fapt. Deci, dacă am alerga aceasta, nu a mers. Așteaptă o secundă. "Cuvinte (candidat)", "cuvinte (candidat)", asta e denumirea de matrice. OK Deci, se spune că e un bug pentru candidat în antecedente. Permiteți-mi să se calmeze un pic. OK. Să încercăm. OK. Așa că dă Katy Perry are această probabilitate de această ori 10 la minus 7, iar Gaga are această ori 10 la minus 6. Deci, vezi că arată că Gaga are o probabilitate mai mare. Deci, "Baby, eu sunt pe foc" este probabil un cântec Gaga. Are sens? Deci, aceasta este ceea ce am făcut. Acest cod va fi postate on-line, asa ca voi verifica. Poate utiliza o parte din ea pentru, dacă doriți să face un proiect sau ceva similar. OK. Acest lucru a fost doar pentru a arăta ce de calcul Codul lingvistica arata ca. Dar acum să mergem la mai multe chestii de nivel înalt. OK. Deci, alte probleme am a fost vorba despre - Problema segmentare este primul dintre ele. Deci, aveți aici japoneză. Și atunci veți vedea că nu există spații. Deci, aceasta este, în principiu înseamnă că este partea de sus a scaunului, corect? Vorbești japoneza? Este partea de sus a scaunului, corect? STUDENT: Nu știu ce kanji acolo este. LUCAS FREITAS: E [Japoneza Vorbind] OK. Deci, aceasta înseamnă în esență scaun de top. Deci, dacă ați avut de a pune un spațiu ar fi aici. Și apoi ai [? Ueda-san. ?] Ceea ce înseamnă, practic, domnul Ueda. Și veți vedea că "Ueda" și aveți un spațiu și apoi "san." Deci, vedeți că aici "Ue" este ca de la sine. Și aici are un caracter lângă el. Deci, nu e ca în aceste limbi caractere însemnând un cuvânt ea, astfel încât să doar a pus o mulțime de spații. Caracterele sunt legate între ele. Și ei pot fi împreună cum ar fi două, trei, unu. Deci, va trebui de fapt să creeze un fel de mod de a pune acele spații. Și acest lucru este că ori de câte ori te Datele din aceste limbi asiatice, totul vine unsegmented. Pentru ca nici unul care scrie japoneză sau chineză scrie cu spatii. Ori de câte ori ai scris chineză, Japoneză scrii doar totul fără spații. Nici măcar nu are sens pentru a pune spații. Deci, atunci când te date de la, unele Limbă din Asia de Est, în cazul în care doriți să face de fapt, ceva cu care va trebui să primul segment. Gândiți-vă de a face exemplul versurile fără spații. Deci, singurele versuri pe care le au va fi propoziții, corect? Separate de perioade. Dar, apoi, având doar sentința va nu ajuta cu adevarat pe oferirea de informații de care aceste versuri sunt de. Corect? Deci, ar trebui să pune spații în primul rând. Deci, cum poti sa faci asta? Deci, apoi vine ideea unei limbi Modelul, care este ceva cu adevărat importante pentru calcul lingvistică. Deci, un model de limbaj este de fapt o tabelul de probabilități care arată în primul rând care este probabilitatea de a avea cuvânt într-o limbă? Deci, care arată cât de des un cuvânt este. Și apoi arată, de asemenea, relația între cuvinte într-o propoziție. Deci, ideea principală este, în cazul în care un străin venit pentru a vă și a spus o propoziție pentru a te, ceea ce este probabilitatea ca, pentru exemplu, "aceasta este sora mea [? GTF"?] a fost fraza care persoana a spus? Deci, în mod evident, unele fraze sunt mai frecvente decât altele. De exemplu, "bună dimineața", sau "bun noapte, "sau" hei acolo, "este mult mai mult frecvente decât cele mai multe propoziții că avem o limba engleză. Deci, de ce sunt aceste fraze mai frecvent? Mai întâi de toate, e pentru că ai cuvinte care sunt mai frecvente. Deci, de exemplu, dacă spui, câinele este mare, iar câinele este gigantic, ce de obicei, probabil auzi cainele este mare mai multe ori din cauza "mare" este mai mult frecvent în limba engleză decât "gigantic". Deci, una din lucruri este frecvența cuvânt. Al doilea lucru care este într-adevăr de important este doar ordinea cuvintelor. Deci, este comună pentru a spune "pisica este în interiorul cutiei. ", dar tu nu faci de obicei a se vedea în "caseta de interior este pisica." așa veți vedea că există o anumită importanță în ordinea cuvintelor. Nu se poate spune doar că cei doi sentințe au aceeași probabilitate doar pentru că au aceleași cuvinte. Trebuie de fapt să aibă grijă despre ordine, de asemenea. Face sens? Deci, ce facem? Deci, ceea ce am putea încerca să te? Încerc să te fac ceea ce am apel modelele n-gram. Deci modelele n-gram asuma practic că pentru fiecare cuvânt pe care aveți într-o propoziție. Este probabilitatea de a avea ca cuvânt nu depinde nu numai de frecvență de acest cuvânt în limba, dar, de asemenea, cu privire la cuvintele pe care îl înconjoară. Deci, de exemplu, de obicei, când vezi ceva de genul sau la esti probabil vom vedea o substantiv după ea, corect? Pentru că atunci când aveți o prepoziție de obicei, este nevoie de un substantiv după ea. Sau, dacă aveți un verb care este tranzitiv de obicei sunt de gând să au o expresie substantiv. Asa ca va avea un substantiv undeva în jurul ei. Deci, practic, ceea ce face este că acesta ia în considerare probabilitatea de a avea Cuvintele lângă altul, când esti calcularea probabilitate de o propoziție. Și asta e ceea ce o limbă Modelul este de fapt. Doar spune ceea ce este probabilitatea de a avea un anumit propoziție într-o limbă? Deci, de ce este util ca, de fapt? Și în primul rând, ceea ce este un model de n-gram, atunci? Deci, un model de n-gram înseamnă că fiecare cuvânt depinde următor N minus 1 cuvinte. Deci, în esență, aceasta înseamnă că, dacă mă uit, de exemplu, la TF CS50 când Am calcularea probabilității de teză, vei fi ca " probabilitatea de a avea cuvântul "" ori probabilitatea de a avea " CS50 "ori probabilitatea de a avea "TF CS50." Deci, practic, contez toate căile posibile de stretching-l. Și apoi, de obicei, atunci când faci acest lucru, ca într-un proiect, ai pus N să fie o valoare scăzută. Deci, de obicei, au bigrams sau trigrame. Astfel încât să conta doar două cuvinte, o grup de două cuvinte, sau trei cuvinte, doar pentru probleme de performanță. Și, de asemenea, că, poate, dacă aveți ceva de genul "CS50 TF." Când te au "TF", este foarte important ca "CS50" este alături de ea, nu? Aceste două lucruri sunt, de obicei, lângă altul. Dacă credeți că de "TF", este, probabil, O să aibă ce Clasa este TF'ing pentru. De asemenea, "" este cu adevărat important pentru CS50 TF. Dar, dacă aveți ceva de genul "CS50 TF a mers la clasa și-a dat lor elevii unele bomboane. "" Candy "și" " nu au nici o legătură cu adevărat, nu? Sunt atât de îndepărtate unul de altul, care nu contează cu adevărat ceea ce cuvintele pe care le au. Deci, de a face un bigram sau o trigram, ea înseamnă doar că sunteți limitarea te la unele cuvinte , care sunt în jur. Face sens? Deci, atunci când vrei să faci de segmentare, de fapt, ceea ce doriți să faceți este să vezi care sunt toate căile posibile care puteți segment sentința. Astfel că veți vedea ce este probabilitate de fiecare dintre aceste propoziții existentă în limba? Deci, ceea ce faci este ca, ei bine, să mă să încerc să pun un spațiu aici. Deci, ai pus un spațiu acolo și veți vedea ce este probabilitate de această frază? Atunci esti ca, OK, poate că nu a fost atât de bun. Așa că am pus un spațiu acolo și un spațiu acolo, și să calculeze probabilitate acum, și veți vedea că este o probabilitate mai mare. Deci, acest lucru este un algoritm numit Tango algoritm de segmentare, care este de fapt, ceva care ar fi cu adevărat rece pentru un proiect, care de fapt ia de text unsegmented care poate fi japoneză sau chineză sau, poate, Engleză fără spații și încearcă să pună spații între cuvinte și o face că prin utilizarea unui model de limbaj și încercarea de a vedea ceea ce este cea mai mare probabilitate puteți obține. OK. Deci, aceasta este de segmentare. Acum sintaxă. Deci, sintaxa este utilizat pentru atât de multe lucruri acum. Deci, pentru Graph Căutare, pentru Siri pentru destul de mult orice fel de naturale procesarea limbajului ai. Deci, ce sunt importante lucruri despre sintaxa? Deci, fraze, în general, au ceea ce numim elementele constitutive. Care sunt un fel de grupuri de cuvinte care au o funcție în propoziție. Și ele nu pot fi într-adevăr una de alta. Așa că, dacă spun, de exemplu, "Lauren iubește Milo. "Știu că" Lauren "este un constitutiv și apoi "iubiri Milo "este, de asemenea, un altul. Pentru că nu se poate spune ca "Lauren Milo iubește "să aibă aceeași semnificație. Ea nu va avea același înțeles. Sau eu nu pot spune ca "Milo Lauren iubește. "Nu tot ceea ce are la fel ceea ce înseamnă a face asta. Deci, cele două lucruri mai importante despre sintaxă sunt tipurile lexicale care este practic funcția pe care au de cuvinte de la sine. Deci, va trebui să știți că "Lauren" și "Milo" sunt substantive. "Love" este un verb. Și al doilea lucru important este că acestea sunt tipurile de idiomatic. Astfel încât să știți că "iubește Milo" este de fapt o expresie verbală. Deci, atunci când spun "Lauren," Eu știu că Lauren este de a face ceva. Ce face ea? E iubitor Milo. Deci, este un lucru întreg. Dar componentele sale sunt un substantiv și un verb. Dar împreună, fac un verb. Deci, ce putem face de fapt cu lingvistică computațională? Deci, dacă am ceva de exemplu, "prieteni de Allison." Eu văd dacă am doar au un arbore sintactic aș ști că "Prieteni" este o fraza substantiv este o substantiv și apoi "de Allison" este un frază prepozițională în care "a" este o propunere și "Allison" este un substantiv. Ce-am putea face este preda computerul meu că, atunci când am o frază substantiv unul și apoi o frază prepozițională. Deci, în acest caz, "prieteni" și apoi "a Milo "Știu că acest lucru înseamnă că NP2, al doilea, detine NP1. Deci, eu pot crea un fel de relație, un fel de funcție pentru ea. Așa că ori de câte ori văd această structură, care se potrivește exact cu "prietenii de Allison, "Știu că Allison detine prietenii. Deci, prietenii sunt ceva că Allison are. Are sens? Deci, aceasta este de fapt ceea ce Grafic de căutare nu. Este doar creează reguli pentru o mulțime de lucruri. Deci, "prietenii de Allison", "prietenii mei care trăiesc în Cambridge "," Prietenii mei care merg la Harvard. "Se creează reguli pentru toate aceste lucruri. Acum, de traducere automată. Deci, de traducere automată este, de asemenea, ceva statistic. Și de fapt, dacă te implici în lingvistică computațională, o mulțime de lucrurile dvs. va fi statistici. Deci, după cum am fost a face exemplul cu o mulțime de probabilități că am fost calcularea, iar apoi vei ajunge la acest număr foarte mic care este finala probabilitate, și asta e ceea ce vă oferă răspunsul. Traducere automată folosește, de asemenea, un model statistic. Și, dacă doriți să se gândească de mașină traducere în cel mai simplu posibil Astfel, ceea ce se poate gândi este doar traduce cuvânt cu cuvânt, nu? Când sunteți de învățare o limbă pentru prima dată, asta e, de obicei, ceea ce ce faci, nu? Dacă doriți să traduceți o propoziție în limba la limba sunteți de învățare, de obicei, în primul rând, vă traduce fiecare dintre cuvintele individual, și apoi încercați pentru a pune cuvintele în loc. Deci, dacă am vrut să traduce aceasta, [VORBIND PORTUGHEZĂ] ceea ce înseamnă "pisica albă a fugit." În cazul în care am vrut să-l traducă din Din portugheză în engleză, ceea ce am ar putea face este, în primul rând, eu doar traduce cuvânt cu cuvânt. Deci, "o" este "," "Gato", "pisică", "Branco", "alb", iar apoi "fugio" este "Fugit." Deci am toate cuvintele aici, dar ele nu sunt în ordine. E ca și cum "alb pisica a fugit" care este negramatical. Deci, atunci eu pot avea o a doua etapă, care se va găsi idealul poziție pentru fiecare dintre cuvintele. Deci, eu știu că am de fapt, doresc să aibă "Pisică alb" în loc de "pisică alb." Așa ce pot face este, metoda cea mai naiv ar fi de a crea toate permutări posibile de cuvinte, de poziții. Și apoi a se vedea care unul are cea mai mare probabilitate în conformitate la modelul meu limbaj. Și apoi, când am găsi unul care are cea mai mare probabilitate aceasta, care este probabil "pisica alb fugit," asta e traducerea mea. Și aceasta este o modalitate simplă de a explica modul în care o mulțime de traducere automată algoritmi de lucru. Asta face sens? Acest lucru este, de asemenea, ceva cu adevarat interesant că voi puteți explora, poate pentru o final al proiectului, da? STUDENT: Ei bine, ai spus că a fost modul naiv, asa ca ce-i modul în care non-naiv? LUCAS FREITAS: Modul non-naiv? OK. Deci, primul lucru care este rău despre această metodă este că tocmai am tradus cuvinte, cuvânt cu cuvânt. Dar, uneori, aveți cuvinte care poate avea mai multe traduceri. Am de gând să încercați să vă gândiți de ceva. De exemplu, "manga", în cutie portugheză fi fie "mangle" sau "manșon." Așa atunci când sunteți încercarea de a traduce cuvânt prin cuvânt, acesta ar putea fi oferindu-vă ceva ce nu are sens. Deci vrei de fapt sa te uiti la toate posibile traducerile cuvinte și a se vedea, în primul rând, ceea ce este ordinea. Vorbeam despre permutating lucrurile? Pentru a vedea toate comenzile posibile și alege pe cel cu cea mai mare probabilitate? Puteți alege, de asemenea, tot posibilul traduceri pentru fiecare cuvânt și apoi a se vedea - combinate cu permutări - care are cea mai mare probabilitate. În plus, poti sa te uiti, de asemenea, la nu doar cuvinte, ci fraze. astfel încât să puteți analiza relațiile dintre cuvintele și apoi a lua o mai bine de traducere. De asemenea, altceva, astfel încât acest semestru Eu de fapt, a face cercetare în Chineză-engleză traducere automată, astfel traducerea din Chineză în engleză. Și ceva ce facem este, în afară de utilizarea un model statistic, care este doar văzând probabilitățile de a vedea unele poziție într-o propoziție, sunt de fapt, adăugând, de asemenea, unele sintaxa pentru a-mi modelul, spunând, oh, dacă am vedea acest gen de construcție, acest lucru este ceea ce vreau să-l schimbe pentru a atunci când am traduce. Astfel încât să puteți adăuga, de asemenea, un fel de element de sintaxă pentru a face traducere mai eficient și mai precis. OK. Deci, cum poți începe, dacă doriți de a face ceva în calcul lingvistică? În primul rând, alegeți un proiect care implică limbi. Deci, există atât de multe acolo. Există atât de multe lucruri pe care le puteți face. Și atunci se poate gândi la un model de pe care le puteți folosi. De obicei, ceea ce înseamnă gândirea de ipoteze, cum ar fi ca, oh, când am fost cum ar fi de gândire de versuri. Am fost ca, ei bine, dacă vreau să dau o care a scris aceasta, probabil vreau să se uite la cuvintele persoana utilizat și vedea cine foloseste acest cuvânt de foarte multe ori. Deci, încercați să facă presupuneri și încercați să vă gândiți de modele. Și atunci puteți căuta, de asemenea on-line pentru un fel de probleme pe care le au, și-l va sugera pentru a vă modele care poate modelat chestia aia bine. Și, de asemenea, puteți trimite un email mereu de mine. me@lfreitas.com. Și eu pot răspunde doar la întrebările dumneavoastră. Putem chiar s-ar putea întâlni, așa că am putea da sugestii privind modalitățile de punerea în aplicare a proiectului. Și vreau să spun dacă te implici cu lingvistică computațională, se va să fie mare. Vei vedea acolo este atât de mult potențial. Și industria vrea să angajeze ești atât de rău din cauza asta. Așa că sper că voi sa bucurat de acest lucru. Dacă voi aveți întrebări, poți să mă întrebi după aceasta. Dar vă mulțumesc.