>> LUCAS FREITAS: Hey.
Welkom almal.
My naam is Lucas Freitas.
Ek is 'n junior by [onhoorbaar] studeer Rekenaarwetenskap met 'n fokus op
rekenaarlinguistiek.
So my sekondêre is in die taal en taalkundige teorie.
Ek is regtig opgewonde julle ouens te leer 'n bietjie oor die veld.
Dit is 'n baie opwindende omgewing te bestudeer.
Ook met 'n baie potensiaal vir die toekoms.
So, ek is baie opgewonde dat jy ouens oorweeg projekte in
rekenaarlinguistiek.
En ek sal meer as gelukkig wees om te adviseer enige van jou as jy besluit om te
streef een van daardie.
>> So in die eerste plek wat computational linguistiek?
So rekenaarlinguistiek is die kruising tussen taal en
Rekenaarwetenskap.
So, wat is die linguistiek?
Wat is die rekenaar wetenskap?
Wel van linguistiek, wat ons is die tale.
So taalkunde is eintlik die studie van natuurlike taal in die algemeen.
So natuurlike taal - ons praat oor taal wat ons eintlik gebruik te
met mekaar kommunikeer.
So Ons is nie presies praat oor C of Java.
Ons praat meer oor Engels en Chinese en ander tale wat ons
gebruik om met mekaar te kommunikeer.
>> Die uitdagende ding oor dit is dat reg nou is ons het byna 7000
tale in die wêreld.
So is daar 'n hoë verskeidenheid van die tale wat ons kan bestudeer.
En dan moet jy dink dat dit waarskynlik baie moeilik om te doen, byvoorbeeld,
vertaling van een taal na die ander van mening is dat jy
byna 7000 van hulle.
So, as jy dink om dit te doen vertaling van een taal na die ander
het byna meer as 'n miljoen verskillende kombinasies wat jy kan
het van taal tot taal.
So dit is regtig 'n uitdaging 'n paar om te doen soort voorbeeld vertaling stelsel vir
elke enkele taal.
>> So, linguistiek behandel met sintaksis, semantiek, pragmatiek.
Julle presies nodig het nie om te weet wat hulle is.
Maar die baie interessante ding is dat as 'n moedertaal spreker, wanneer jy leer
taal as kind, wat jy eintlik leer al hierdie dinge - sintaksis semantiek
en pragmatiek -
deur jouself.
En niemand het jy sintaksis vir leer om te verstaan ​​hoe sinne
gestruktureer.
So, dit is baie interessant, want dit is iets wat baie kom
intuïtief.
>> En wat is jy neem uit die rekenaar wetenskap?
Wel, die belangrikste ding wat ons het in Rekenaarwetenskap is die eerste
al, kunsmatige intelligensie en masjien leer.
Dus, wat ons probeer om te doen rekenaarlinguistiek is leer
jou rekenaar hoe om iets te doen met die taal.
>> So, byvoorbeeld, in die masjien vertaling.
Ek probeer my rekenaar hoe om te leer om te weet hoe om die oorgang van die een
taal na die ander.
So, basies wil onderrig 'n rekenaar twee tale.
As ek dit doen natuurlike taal verwerking, wat die geval is byvoorbeeld van
Facebook se grafiek Search, leer jy jou rekenaar hoe om te verstaan
navrae goed.
>> So, as jy sê "die foto's van my vriende. "Facebook nie behandel wat
as 'n geheel string wat net 'n klomp van die woorde.
Dit verstaan ​​eintlik die verhouding tussen "foto's" en "my vriende" en
verstaan ​​dat "foto's" is eiendom van "my vriende."
>> So, dit is deel van, byvoorbeeld, natuurlike taal verwerking.
Dit is om te probeer verstaan ​​wat is die verhouding tussen
die woorde in 'n sin.
En die groot vraag is, kan jy leer om 'n rekenaar hoe om te praat
'n taal in die algemeen?
Wat is 'n baie interessante vraag te dink, asof miskien in die toekoms,
jy gaan in staat wees om praat met jou selfoon.
Soort van soos wat ons doen met Siri, maar iets meer wil, kan jy eintlik
sê wat jy wil, en die telefoon gaan om alles te verstaan.
En dit kan opvolg vrae en hou praat.
Dit is iets wat baie opwindende, in my opinie.
>> So, iets oor natuurlike tale.
Iets baie interessant oor natuurlike tale is nie, en dit is
krediet aan my linguistiek professor, Maria Polinsky.
Sy gee 'n voorbeeld en ek dink dit is regtig interessant.
Omdat ons leer die taal van wanneer ons gebore is en dan is ons moedertaal
taal soort groei op ons.
>> En basies wat jy leer taal van die minimum insette, reg?
Jy is net om insette van jou ouers van wat jou taal klink
hou en jy net leer om dit.
So, dit is interessant, want as jy kyk by daardie sinne, byvoorbeeld.
Jy sien, "Mary sit op 'n baadjie elke tyd wat sy die huis verlaat. "
>> In hierdie geval, is dit moontlik om die woord "sy" verwys na Maria, reg?
Jy kan sê: "Maria sit op 'n baadjie elke keer Maria laat die
huis. "So is dit goed.
Maar dan as jy kyk na die sin "Sy sit op 'n baadjie elke keer Mary
die huis verlaat. "Jy weet dit is onmoontlik om te sê dat "sy" is
verwys na Maria.
>> Daar is geen manier om te sê dat "Maria sit op 'n baadjie elke keer Mary laat
die huis. "So dit is interessant, want dit is die soort van aanvoeling
dat elke moedertaal het.
En niemand het geleer dat dit die manier waarop die sintaksis werk.
En dat jy net kan hierdie "sy" verwys na Maria in die eerste geval,
en eintlik in hierdie ander ook, maar nie in hierdie een.
Maar almal soort van kry dieselfde antwoord.
Almal is dit eens op dit.
So dit is regtig interessant hoe hoewel jy nie al die reëls ken nie
in jou taal jy soort van verstaan hoe die taal werk.
>> So het die interessante ding oor die natuurlike taal is dat jy nie hoef te
weet enige sintaksis te weet as 'n sin is taalkundige of ongrammatikaal vir
die meeste gevalle.
Wat laat jou dink dat miskien wat gebeur, is dat deur jou lewe, jou
raak net meer en meer sinne aan jou vertel.
En dan moet jy hou memorisering al die sinne.
En dan wanneer iemand jou vertel iets wat jy hoor dat sin en
jy kyk na jou woordeskat sinne en kyk of
daardie sin is daar.
En as dit is daar om jou sê dit is taalkundige.
As dit nie jy sê dit is ongrammatikaal.
>> So, in daardie geval, sou jy sê, o, sodat jy het 'n groot lys van al
moontlike sinne.
En dan wanneer jy hoor 'n sin, jy weet of dit grammatikale of
nie op grond van dat.
Die ding is dat as jy kyk na 'n sin, byvoorbeeld, "Die
vyf-en-leiding CS50 TFS gaar die blinde seekat met behulp van 'daPa beker. "Dit is
beslis nie 'n sin dat jy gehoor het nie.
Maar op dieselfde tyd wat jy weet dit is pretty much taalkundige, reg?
Daar is geen taalkundige foute en jy kan sê dat
dit is 'n moontlike sin.
>> Daarom is dit ons laat dink wat eintlik die manier waarop ons leer taal is nie net
deur met 'n groot databasis van moontlike woorde of sinne nie, maar meer van
begrip van die verhouding tussen woorde in die sinne.
Is wat sin maak?
So, dan is die vraag is, kan rekenaars te leer tale?
Kan ons leer taal tot rekenaars?
>> So, laat ons dink aan die verskil tussen 'n moedertaal spreker van 'n taal
en 'n rekenaar.
So, wat gebeur met die spreker?
Wel, die moedertaal leer 'n taal uit blootstelling daaraan.
Gewoonlik sy vroeë kinderjare.
So, basies, jy moet net 'n baba, en jy hou praat, en dit
net leer hoe om te praat die taal, reg?
So, jy basies gee insette aan die baba.
So, dan kan jy argumenteer dat 'n rekenaar kan dieselfde ding doen, reg?
Jy kan net gee taal as insette tot die rekenaar.
>> As byvoorbeeld 'n klomp van die lêers wat boeke in Engels.
Miskien is dit 'n manier dat jy moontlik leer om 'n
rekenaar Engels, reg?
En in werklikheid, as jy daaroor dink, dit neem jou miskien 'n paar
dae 'n boek te lees.
Vir 'n rekenaar wat dit neem om 'n tweede te kyk na al die woorde in 'n boek.
Sodat jy kan dink dit kan net hierdie argument van die insette van rondom jou,
dit is nie genoeg om te sê dat dit is iets wat net mense kan doen.
Jy kan dink rekenaars kan ook insette.
>> Die tweede ding is dat moedertaal sprekers het ook 'n brein wat
taal te leer vermoë.
Maar as jy daaroor dink, 'n brein is 'n soliede ding.
As jy gebore is, is dit reeds gestel -
dit is jou brein.
En as jy grootword, jy het net meer insette van taal en miskien voedingstowwe
en ander dinge.
Maar pretty much jou brein is 'n soliede ding.
>> Sodat jy kan sê, goed, miskien kan jy bou van 'n rekenaar met 'n klomp van die
funksies en metodes wat net naboots taal te leer vermoë.
So in daardie sin, kan jy sê, goed, ek kan 'n rekenaar wat al die het
dinge wat ek nodig het om die taal te leer.
En die laaste ding is dat 'n boorling spreker leer uit verhoor en fout.
So basies 'n ander belangrike ding in taal te leer, is dat jy soort
van leer dinge deur veralgemening van wat jy hoor.
>> So as jy grootword jy leer dat sommige woorde is meer soos selfstandige naamwoorde,
'n paar ander mense is adjektiewe.
En jy hoef nie enige te hê kennis van die linguistiek
dit te verstaan.
Maar jy weet net daar is 'n paar woorde geposisioneer in 'n deel van die
vonnis en 'n paar ander mense in ander dele van die sin.
>> En dat wanneer jy iets wat te doen soos 'n sin wat nie korrek is nie -
Miskien as gevolg van 'n oor veralgemening byvoorbeeld.
Miskien wanneer jy grootword, jy sien dat die meervoud is gewoonlik
gevorm deur 'n S op die einde van die woord.
En dan moet jy probeer om die meervoud van om te doen "Takbokke" as "herten" of "tand" as
"Tooths." So dan is jou ouers of iemand reggemaak jou en sê, nee, die
meervoud van "takbokke" is "takbokke," en die meervoud van "tand" is "die tande." En dan
jy leer hierdie dinge.
So jy leer uit verhoor en fout.
>> Maar jy kan ook doen met 'n rekenaar.
Jy kan iets genoem het versterking leer.
Wat is basies soos om 'n rekenaar 'n beloning wanneer dit nie
iets korrek.
En gee dit die teenoorgestelde van 'n beloning en as dit nie iets verkeerd.
Jy kan eintlik sien dat as jy gaan Google Translate en jy probeer om te
vertaal 'n sin, is dit vra vir terugvoer.
So as jy sê, o, daar is 'n beter vertaling vir hierdie sin.
Jy kan tik dit op en dan as 'n baie mense hou sê dat 'n beter
vertaling, is dit net leer dat dit moet daardie vertaling gebruik in plaas van
die een wat dit is om te gee.
>> So, dit is 'n baie filosofiese vraag om te sien of rekenaars gaan wees
kan in die toekoms te praat of nie.
Maar ek het 'n hoë hoop dat hulle kan Net op grond van die argumente.
Maar dit is net meer van 'n filosofiese vraag.
>> Dus, terwyl rekenaars nog nie kan praat nie, wat is die dinge wat ons kan doen?
N paar baie cool dinge data klassifikasie.
So, byvoorbeeld, julle weet dat e-pos dienste doen, want
Byvoorbeeld, spam filter.
So wanneer jy spam ontvang, is dit probeer om te filter na 'n ander boks.
So hoe gaan dit doen?
Dit is nie soos die rekenaar net weet wat e-posadresse te stuur spam.
So dit is meer gebaseer op die inhoud van die boodskap, of dalk die titel, of
Miskien 'n patroon wat jy het.
>> So, basies, wat jy kan doen, is om 'n baie data van die e-pos wat spam,
e-pos wat nie spam, en leer wat soort van patrone wat jy in die
diegene wat spam.
En dit is deel van computational linguistiek.
Dit is data klassifikasie genoem.
En ons is eintlik gaan om te sien 'n voorbeeld van wat in die volgende skyfies.
>> Die tweede ding is natuurlike taal verwerking wat is die ding wat die
Grafiek Soek doen van die verhuring jy skryf 'n sin.
En dit vertrou jy verstaan ​​wat is die betekenis en gee
jy 'n beter resultaat.
Eintlik, as jy gaan na Google of Bing en jy soek iets soos Lady
Gaga se hoogte, jy eintlik gaan 5 '1 "in plaas van om inligting te kry
van haar, want dit eintlik verstaan wat jy praat.
So dit is deel van die natuurlike taal verwerking.
>> Of ook wanneer jy met Siri, eerste jy het 'n algoritme wat probeer om te
vertaal wat jy sê in woorde, in die teks.
En dan is dit probeer om te vertaal wat in betekenis.
So dit is alles deel van die natuurlike taal verwerking.
>> Dan moet jy die masjien vertaling -
wat eintlik een van my gunstelinge -
wat net die vertaling van 'n taal na die ander.
So jy kan dink dat wanneer jy doen masjien vertaling, jy het
oneindige moontlikhede van die sinne.
So daar is geen manier om net te stoor elke enkele vertaling.
So jy het met interessante vorendag te kom algoritmes in staat wees om
vertaal elke enkele vonnis in een of ander manier.
>> Julle enige vrae so ver?
Nee?
OK.
>> So wat gaan ons vandag om te sien?
Eerste van alles, ek gaan om te praat oor die klassifikasie probleem.
So het die een wat ek was sê oor spam.
Wat ek gaan doen is, gegee lyrics 'n lied, kan jy probeer om uit te vind
met 'n hoë waarskynlikheid wie is die sanger?
Kom ons sê dat ek het liedjies van Lady Gaga en Katy Perry, as ek vir jou 'n
nuwe lied, kan jy uitvind of dit is Katy Perry of Lady Gaga?
>> Die tweede een, is ek net gaan om te praat oor die verdeling probleem.
So ek weet nie of julle weet nie, maar Chinese, Japanese, ander Oos-Asiatiese
tale, en ander tale in die algemeen, het nie
spasies tussen woorde.
En dan as jy dink oor die manier waarop jou rekenaar soort drieë te
verstaan ​​van natuurlike taal verwerking, dit lyk op die woorde en
probeer om die verhoudings te verstaan tussen hulle, reg?
Maar dan as jy Chinese, en jy nul ruimtes, dit is werklik moeilik om te
uit te vind wat is die verhouding tussen woorde, omdat hulle het nie
woorde op die eerste.
So jy het iets genoem te doen segmentering wat net beteken om
spasies tussen wat ons wil noem woorde in hierdie tale.
Sin maak?
>> En dan gaan ons praat oor sintaksis.
Dus net 'n bietjie oor natuurlike taal verwerking.
Dit gaan net 'n oorsig te wees.
So vandag, basies wat ek wil doen is julle ouens 'n bietjie van 'n
binnekant van wat is die moontlikhede wat jy kan doen met computational
linguistiek.
En dan kan jy sien wat jy dink is koel onder daardie dinge.
En miskien kan jy dink aan 'n projek en kom praat met my.
En ek kan gee jou advies oor hoe om dit te implementeer.
>> So sintaksis gaan 'n bietjie te wees oor Grafiek Soek en masjien
vertaling.
Ek gaan net 'n voorbeeld van hoe om te gee jy kan, byvoorbeeld, te vertaal
iets uit Portugees in Engels.
Klink goed?
>> So die eerste, die klassifikasie probleem.
Ek sal sê dat hierdie deel van die seminaar gaan wees om die mees uitdagende
een net omdat daar gaan sommige kodering te wees.
Maar dit gaan wees Python.
Ek weet julle nie Python weet nie, so Ek gaan net om te verduidelik op die hoë
vlak wat ek doen.
En jy hoef nie te regtig omgee te veel oor die sintaksis, want dit is
iets wat jy ouens kan leer.
OK?
Klink goed.
>> So, wat is die klassifikasie probleem?
So jy gegee sommige lirieke 'n lied, en jy wil om te raai
wat dit sing.
En dit kan wees vir enige soort ander probleme.
So dit kan wees, byvoorbeeld, jy het 'n presidensiële veldtog en jy het 'n
toespraak, en jy wil om uit te vind uit te vind of dit was, byvoorbeeld,
Obama of Mitt Romney.
Of jy kan 'n klomp van die e-pos het en jy wil om uit te vind indien hulle
spam of nie.
So dit is net 'n paar te klassifiseer data wat gebaseer is op die woorde
dat jy daar.
>> So om dit te doen, moet jy maak 'n paar aannames.
So 'n baie oor die rekenaarlinguistiek maak aannames,
gewoonlik smart aannames, sodat wat jy kan kry goeie resultate.
Probeer om 'n model vir dit te skep.
En dan probeer om dit uit en kyk of dit werk, As dit gee jou goeie akkuraatheid.
En as dit die geval is, dan is jy probeer om dit te verbeter.
As dit nie, is jy soos, OK, miskien is ek moet 'n ander aanname maak.
>> So die veronderstelling dat ons gaan maak, is dat 'n kunstenaar gewoonlik sing
oor 'n onderwerp verskeie kere, en miskien gebruik woorde meer as een keer net
want hulle is gewoond daaraan.
Jy kan dink net aan jou vriend.
Ek is seker dat julle almal vriende wat sê hul handtekening frase,
letterlik vir elke enkele sin -
soos 'n spesifieke woord of 'n spesifieke frase wat sê hulle vir
elke enkele sin.
>> En wat jy kan sê, is dat as jy sien 'n sin wat 'n handtekening
frase, kan jy dink wat waarskynlik Jou vriend is die
een sê dit, reg?
So jy maak dat die aanname en dan dit is hoe jy 'n model.
>> Die voorbeeld wat ek gaan gee, is op hoe Lady Gaga, byvoorbeeld, mense
sê dat sy gebruik "baba" vir al haar nommer een liedjies.
En eintlik is dit 'n video wat wys haar sê die woord "baba" vir
verskillende liedjies.
>> [Video speel]
>> - (Sang) Baby.
Baby.
Babe.
Baby.
>> [Einde video speel-
>> LUCAS FREITAS: So is daar, dink ek, 40 liedjies hier in wat sê sy die
woord "baba." So kan jy basies dink dat as jy sien 'n lied wat
die woord "baba" Daar is 'n paar hoë waarskynlikheid dat dit is Lady Gaga.
Maar laat ons probeer om dit te ontwikkel verder meer formeel.
>> So dit is lirieke na liedjies deur Lady Gaga en Katy Perry.
So jy kyk na Lady Gaga, jy sien hulle het 'n baie voorkomste van "baba", 'n
baie gevalle van "manier." En dan Katy Perry het 'n baie voorvalle van
"Die," het 'n baie voorkomste van "brand."
>> So basies wat ons wil doen, is jy 'n liriek.
Kom ons sê dat jy 'n liriek vir 'n liedjie wat "baba", net "baba." As
jy net die woord "baba", en hierdie is al die data wat jy het uit
Lady Gaga en Katy Perry, wat sou jy raai is die persoon
wat die lied sing?
Lady Gaga of Katy Perry?
Lady Gaga, reg?
Want sy is die enigste een wat sê "Baba." Dit klink dom, reg?
OK, dit is baie maklik.
Ek is net op soek na die twee liedjies en Natuurlik, sy is die enigste een wat
"Baba."
>> Maar wat as jy 'n klomp van die woorde?
As jy 'n werklike liriek, iets soos, "baba, het ek net
gegaan om te sien 'n [? CFT?]
lesing ", of iets soos dit, en dan kan jy eintlik om uit te vind -
gebaseer op al die woorde -
wie is die kunstenaar wat waarskynlik hierdie lied gesing?
So laat ons probeer om te ontwikkel dit 'n bietjie verder.
>> OK, so gebaseer net op die data wat ons het, blyk dit dat Gaga is waarskynlik
die sanger.
Maar hoe kan ons skryf dit meer formeel?
En daar gaan 'n bietjie wees bietjie van statistiek.
So as jy verloor, net probeer die konsep te verstaan.
Dit maak nie saak of jy verstaan die vergelykings baie goed.
Dit is al wat gaan om aanlyn te wees.
>> So basies wat ek berekening is die waarskynlikheid dat hierdie lied is deur
Lady Gaga gegee dat -
so dit beteken bar gegee dat -
Ek het die woord "baba." Is wat sin maak?
So ek probeer om te bereken dat waarskynlikheid.
>> So is daar hierdie stelling het die Bayes stelling wat sê dat die
waarskynlikheid van 'n gegewe B, is die waarskynlikheid van B gegee A, keer die
waarskynlikheid van A, oor die waarskynlikheid B. Dit is 'n lang vergelyking.
Maar wat jy het om te verstaan ​​van dit is dat dit is wat ek wil
bereken, reg?
So die waarskynlikheid dat die lied is deur Lady Gaga gegee wat ek gesien het die woord
"Baba."
>> En nou wat ek kry is die waarskynlikheid van die woord "baba" gegee
dat ek Lady Gaga.
En wat is dit basies?
Wat dit beteken is, wat is die waarskynlikheid van die sien van die woord "baba"
in Gaga lirieke?
As ek wil om dit te bereken op 'n baie eenvoudige manier, dit is net die aantal
keer ek sien "baba" oor die totale aantal woorde in Gaga lirieke, reg?
Wat is die frekwensie wat ek sien dat die woord in Gaga se werk?
Sin maak?
>> Die tweede termyn is die waarskynlikheid van Gaga.
Wat beteken dit?
Dit beteken basies, wat is die waarskynlikheid van die klassifikasie van
sommige lirieke Gaga?
En dit is nogal vreemd, maar laat ons dink aan 'n voorbeeld.
So kom ons sê dat die waarskynlikheid van met "baba" in 'n lied is dieselfde
vir Gaga en Britney Spears.
Maar Britney Spears het twee keer meer liedjies as Lady Gaga.
So as iemand wat net lukraak gee jou lirieke van "baba", die eerste ding wat jy
kyk na is, wat is die waarskynlikheid van met "baba" in 'n Gaga liedjie, "baba"
in 'n Britney lied?
En dit is dieselfde ding.
>> So het die tweede ding wat jy sal sien is, Wel, wat is die waarskynlikheid van
hierdie liriek op sigself 'n Gaga liriek, en wat is die waarskynlikheid van
'n Britney liriek?
So sedert Britney het so baie meer lyrics as Gaga, sou jy waarskynlik
sê, goed, is dit waarskynlik 'n Britney liriek.
So dit is waarom ons hierdie termyn reg hier.
Waarskynlikheid van Gaga.
Sin maak?
Is dit?
OK.
>> En die laaste een is net die waarskynlikheid van die "baba" wat nie
regtig saak dat daar nog baie.
Maar dit is die waarskynlikheid van sien "baba" in Engels.
Ons het gewoonlik nie omgee dat veel oor die termyn.
Is wat sin maak?
So die waarskynlikheid van Gaga is genoem die vorige waarskynlikheid
van die klas Gaga.
Want dit beteken net dat, wat die waarskynlikheid om daardie klas -
wat is Gaga -
net in die algemeen nie, net met geen omstandighede.
>> En dan wanneer ek waarskynlikheid van Gaga gegee "baba", ons noem dit plus
tranerig 'n waarskynlikheid, want dit is die waarskynlikheid van '
Gaga gegee 'n paar bewyse.
So ek gee jou die bewyse wat ek gesien het die woord baba en
die lied sin maak?
OK.
>> So as ek bereken dat vir elke van die liedjies vir Lady Gaga,
wat dit sou wees -
glo, kan ek nie beweeg nie.
Die waarskynlikheid van Gaga sal wees iets soos, 2 meer as 24, tye 1/2,
meer as 2 meer as 53.
Dit maak nie saak of jy weet wat hierdie getalle is afkomstig van.
Maar dit is net 'n paar wat gaan meer as 0 wees, reg?
>> En dan wanneer ek doen Katy Perry, die waarskynlikheid van "baba" gegee Katy is
reeds 0, reg?
Want daar is geen "baba" in Katy Perry.
So dan is dit word 0, en Gaga oorwinnings, wat beteken dat Gaga is
waarskynlik die sanger.
Is wat sin maak?
OK.
>> So as ek wil dit meer amptelike te maak, Ek kan eintlik 'n model
vir verskeie woorde.
So kom ons sê dat ek iets soos, "baba, ek is
aan die brand gesteek, "of iets.
So dit het verskeie woorde.
En in hierdie geval, kan jy sien dat "baba" is in Gaga,
maar dit is nie in Katy.
En "brand" is in Katy, maar dit is nie in Gaga, reg?
So dit is om moeiliker, reg?
Omdat dit blyk dat jy amper 'n band tussen die twee.
>> So, wat jy hoef te doen, is om te aanvaar onafhanklikheid onder die woorde.
So basies wat dit beteken, is dat Ek is net die berekening van wat die
waarskynlikheid van sien "baba", wat die waarskynlikheid van sien "Ek," en
"Is", en "op" en "vuur" al afsonderlik.
Toe ek vermenigvuldig almal van hulle.
En ek sien wat is die waarskynlikheid sien die hele sin.
Sin maak?
>> So basies, as ek net een woord, wat ek wil hê om uit te vind is die arg Max,
wat beteken, wat is die klas wat gee my die hoogste waarskynlikheid?
So, wat is die klas wat gee vir my die hoogste waarskynlikheid vir
waarskynlikheid van die klas gegee woord.
So in hierdie geval, Gaga gegee "baba." Of Katy gegee "baba." Sin maak?
>> En net van Bayes, wat vergelyking wat ek het,
skep ons hierdie breuk.
Die enigste ding is dat jy sien dat die waarskynlikheid van 'n woord gegee
klas verander afhangende op die klas nie, reg?
Die aantal "baba" s wat ek het in Gaga verskil van Katy.
Die waarskynlikheid van die klas ook veranderinge, want dit is net die aantal
van liedjies elkeen van hulle het.
>> Maar die waarskynlikheid van die woord self gaan dieselfde wees vir al die
kunstenaars, reg?
So die waarskynlikheid van die woord is net, wat is die waarskynlikheid van
sien dat die woord in die Engelse taal?
So dit is dieselfde vir almal van hulle.
So, aangesien dit konstant is, kan ons net drop hierdie en nie omgee nie.
So dit sal eintlik die vergelyking wat ons soek.
>> En as ek het verskeie woorde, ek is nog steeds gaan die vooraf te hê
waarskynlikheid hier.
Die enigste ding is dat ek te vermenigvuldig die waarskynlikheid van
al die ander woorde.
So ek vermenigvuldig almal van hulle.
Sin maak?
Dit lyk vreemd, maar basies beteken, bereken van die voorafgaande van die klas en
dan vermenigvuldig met die waarskynlikheid van elke van die woorde wat in die klas.
>> En jy weet dat die waarskynlikheid van 'n woord gegee 'n klas gaan wees om die
aantal kere wat jy sien dat die woord in daardie klas, gedeel deur die aantal
woorde wat jy het in daardie klas in die algemeen.
Sin maak?
Dit is net hoe "baba" was 2 oor die aantal woorde wat
Ek het in die lirieke.
Dus net die frekwensie.
>> Maar daar is een ding.
Onthou hoe ek is wat wys dat die waarskynlikheid van "baba" synde lyrics
van Katy Perry was 0, net omdat Katy Perry het nie "baba" by almal?
Maar dit klink 'n bietjie harde net eenvoudig sê dat lirieke nie kan wees van
'n kunstenaar, net omdat hulle nie dat die woord in die besonder op enige tyd.
>> So kan jy net sê, goed, as jy nie hierdie woord het, gaan ek
gee jou 'n laer waarskynlikheid, maar ek is net nie gaan
gee jou 0 dadelik.
Want miskien was dit iets soos, "Vuur, vuur, vuur, vuur," wat
heeltemal Katy Perry.
En dan "baba", en dit gaan net om te 0 dadelik, want daar was 'n
"Baba."
>> So basies wat ons doen, is om iets genoem Laplace glad.
En dit beteken net dat ek gee sommige waarskynlikheid om naamlik die woorde
wat nie bestaan ​​nie.
So, wat ek doen, is dat wanneer ek berekening van hierdie, het ek altyd voeg 1 tot
die teller.
So selfs as die woord nie bestaan ​​nie, in hierdie geval, indien dit is 0, ek is nog steeds
berekening van hierdie as 1 oor die totale aantal woorde.
Anders, kry ek hoeveel woorde Ek het en ek voeg 1.
So ek tel vir beide gevalle.
Sin maak?
>> So nou kom ons doen 'n paar kodering.
Ek gaan om dit te redelik vinnig te doen, maar dit is net belangrik dat jy
ouens verstaan ​​die konsepte.
So wat ons probeer om te doen is presies die uitvoering van hierdie
ding wat ek nou net gesê -
Ek wil jou lyrics te sit uit Lady Gaga en Katy Perry.
En die program gaan in staat wees om te sê as die nuwe lirieke is uit Gaga
of Katy Perry.
Sin maak?
OK.
>> So ek het hierdie program ek gaan classify.py te bel.
So dit is Python.
Dit is 'n nuwe ontwikkeling taal.
Dit is baie soortgelyk in sommige maniere om C en PHP.
Dit is soortgelyk, want as jy wil leer Python nadat weet C, is dit
regtig nie veel van 'n uitdaging net omdat Python is baie makliker
as C, in die eerste plek.
En 'n baie van die dinge wat reeds geïmplementeer vir jou.
So hoe soos PHP het funksies wat sorteer 'n lys, of voeg iets
om 'n skikking, of blah, blah, blah.
Python het almal so goed.
>> So ek gaan net om vinnig te verduidelik hoe ons die klassifikasie kon doen
probleem hier.
So kom ons sê dat in hierdie geval, ek het lyrics from Gaga en Katy Perry.
Die manier waarop ek het die lirieke is dat die eerste woord van die lirieke is
die naam van die kunstenaar, en die res is die lirieke.
So kom ons sê dat ek het hierdie lys in waarvan die eerste een is lirieke deur Gaga.
So hier is ek op die regte spoor.
En die volgende een is Katy, en dit het ook die lirieke.
>> So dit is hoe jy verklaar 'n veranderlike in Python.
Jy hoef nie die data tipe te gee.
Jy moet net skryf "lirieke," soort van soos in PHP.
Sin maak?
>> So, wat is die dinge wat ek het om te bereken in staat wees om te bereken die
waarskynlikhede?
Ek het die "priors" te bereken van elk van die verskillende
klasse wat ek het.
Ek het die "boude" te bereken of pretty much die waarskynlikhede van
elk van die verskillende woorde wat Ek kan vir elke kunstenaar.
So binne Gaga, byvoorbeeld, ek gaan 'n lys van hoeveel keer ek sien te hê
elk van die woorde.
Sin maak?
>> En uiteindelik, is ek net gaan om 'n lys genaamd "woorde" wat net gaan
het hoeveel woorde wat ek vir elke kunstenaar.
So vir Gaga, byvoorbeeld, as ek kyk na die lirieke, ek het, ek dink, 24
woorde in totaal.
So hierdie lys is net gaan hê Gaga 24 en Katy 'n ander getal.
Sin maak?
OK.
>> So nou, eintlik, laat gaan na die kodering.
So in Python, kan jy eintlik terug 'n klomp van die verskillende
dinge van 'n funksie.
So ek gaan hierdie funksie te skep genoem "voorwaardelike", wat gaan
al hierdie dinge om terug te keer, het die "Priors," het die "waarskynlikhede," en die
"Woorde." So "voorwaardelike," en dit is gaan word 'n beroep in die "lirieke."
>> So nou wil ek jou eintlik skryf hierdie funksie.
So die manier wat ek dit kan skryf funksie is ek net gedefinieer
funksioneer met 'n "def." So ek het "def voorwaardelike, "en dit is wat
"Lirieke." En wat dit gaan doen is, in die eerste plek, ek het my priors
wat ek wil om te bereken.
>> So die manier wat ek dit kan doen, is om te skep 'n woordeboek in Python, wat
is pretty much dieselfde ding as 'n gemors tafel, of dit is soos 'n iteratiewe
skikking in PHP.
Dit is hoe ek verklaar 'n woordeboek.
En basies wat dit beteken is dat priors van Gaga is 0.5, byvoorbeeld, indien
50% van die lirieke is uit Gaga, 50% is van Katy.
Sin maak?
So ek het om uit te vind hoe die priors te bereken.
>> Die volgende mense wat ek het om te doen, ook, is die waarskynlikhede en die woorde.
So die waarskynlikheid van Gaga is die lys van al die waarskynlikhede dat ek
vir elk van die woorde vir Gaga.
So as ek gaan na waarskynlikhede van Gaga "Baba", byvoorbeeld, sal dit vir my gee
iets soos 2 meer as 24 in daardie geval.
Sin maak?
So ek gaan na "waarskynlikhede," gaan na die "Gaga" emmer wat 'n lys van al
die Gaga woorde, dan gaan ek na "baba" en ek sien die waarskynlikheid.
>> En uiteindelik het ek het hierdie "Woorde" woordeboek.
So hier is, "waarskynlikhede." En dan "Woorde." So as ek dit doen "woorde", "Gaga,"
wat gaan gebeur, is dat dit gaan gee my 24, sê dat ek
het 24 woorde binne lyrics from Gaga.
Sin maak?
So hier is, "woorde" gelyk dah-dah-dah.
OK
>> So wat ek gaan doen, is ek gaan Itereer oor elk van die lirieke, so
elk van die snare wat Ek het in die lys.
En ek gaan daardie dinge te bereken vir elk van die kandidate.
Sin maak?
So ek het 'n om te doen vir die lus.
>> So in Python wat ek kan doen, is om "vir lyn in die lirieke. "Dieselfde ding as 'n
"Vir elke" stelling in PHP.
Onthou hoe was dit PHP ek kon sê: "vir elke lirieke
line. "Dit maak sin?
So ek neem elk van die lyne, in hierdie geval, hierdie snaar en die volgende
string so vir elk van die lyne wat ek gaan doen, is die eerste, ek gaan
verdeel hierdie lyn in 'n lys van woorde, geskei deur spasies.
>> So die koel ding oor Python is dat jy kan net Google soos "Hoe kan ek
verdeel 'n string in woorde? "En dit is gaan om jou te vertel hoe om dit te doen nie.
En die manier om dit te doen nie, dit is net "lyn = Reel.split () "en dit is basies
gaan gee jou 'n lys met elk van die woorde hier.
Sin maak?
So nou dat ek gedoen het wat ek wil weet wie is die sanger van die liedjie.
En om te doen wat ek moet net die te kry eerste element van die skikking, reg?
So ek kan net sê dat ek "sanger = Line (0) "Dit maak sin?
>> En dan wat ek nodig het om te doen, is die eerste al, ek gaan om te werk hoeveel
woorde het ek onder "Gaga." so ek is net gaan om te bepaal hoeveel woorde wat ek
het in hierdie lys, reg?
Want dit is hoe baie woorde het ek in die lirieke en ek is net gaan om te
voeg dit by die "Gaga" skikking.
Is wat sin maak?
Moet nie te veel fokus op die sintaksis.
Dink meer oor die konsepte.
Dit is die belangrikste deel.
OK.
>> So, wat ek dit kan doen, is om as "Gaga" is reeds in die lys, so "as sanger in
woorde "wat beteken dat ek reeds het woorde deur Gaga.
Ek wil net die bykomende by te voeg woorde wat.
So, wat ek doen, is om "woorde (sanger) + = Len (lyn) - 1 ".
En dan het ek kan net nie die lengte van die lyn.
So hoeveel elemente ek het in die skikking.
En ek het om te doen minus 1 net omdat die eerste element van die skikking is net
'n sanger en dit is nie lirieke.
Sin maak?
OK.
>> "Anders," beteken dit dat ek wil eintlik voeg Gaga in die lys.
So het ek net doen "woorde (sanger) = Len (lyn) - 1, "jammer.
Dus is die enigste verskil tussen die twee lyne is dat hierdie een, is dit nie
bestaan ​​nie, so ek is net initializing dit.
Hierdie een het ek is eintlik te voeg.
OK.
So dit is toe te voeg tot woorde.
>> Nou wil ek by die priors.
So hoe kan ek die priors bereken?
Die priors kan bereken word deur hoeveel keer.
So hoeveel keer jy sien dat die sanger onder al die sangers wat jy
het, reg?
So vir Gaga en Katy Perry, In hierdie geval, ek sien Gaga
een keer, Katy Perry keer.
>> So basies die priors vir Gaga en vir Katy Perry wil
net een wees, reg?
Jy moet net hoeveel keer Ek sien die kunstenaar.
So dit is baie maklik om te bereken.
Ek kan net iets soortgelyks as soos "As sangeres in priors, "Ek gaan net
te voeg 1 tot hul priors boks.
So, "priors (sing)" + = 1 "en dan" anders " Ek gaan "priors (sanger) te doen
= 1. "Dit maak sin?
>> So as dit nie bestaan ​​nie Ek het net sit as 1, anders sou ek voeg net 1.
OK, so nou alles wat ek nog het om te doen is ook 'elk van die woorde aan die
waarskynlikhede.
So ek het om te tel hoeveel keer Ek sien elk van die woorde.
So ek het net 'n ander te doen lus in die lyn.
>> So die eerste ding wat ek gaan doen, is om kyk of die sanger het reeds 'n
waarskynlikhede skikking.
So ek seker te maak dat die sanger nie 'n waarskynlikhede skikking, ek is net
gaan een vir hulle te begin.
Dit is nie eens 'n skikking, jammer, dit is 'n woordeboek.
So die waarskynlikheid van die sanger gaan 'n oop woordeboek te wees, so ek is
net initializing 'n woordeboek vir dit.
OK?
>> En nou kan ek eintlik 'n lus vir elk van die woorde "te bereken
waarskynlikhede.
OK.
So, wat ek kan doen, is om 'n lus vir.
So ek gaan net te Itereer oor die skikking.
So die manier wat ek kan doen wat in Python is "want ek in die reeks." Vanaf 1
want ek wil in die tweede om te begin element omdat die eerste een is die
sanger se naam.
So van een tot die lengte van die lyn.
En toe ek wissel dit eintlik gaan uit soos hier van 1 tot Len van die
lyn minus 1.
So is dit nie al daardie ding te doen n minus 1 vir skikkings wat baie
gerieflik.
Sin maak?
>> So vir elk van hierdie, wat ek gaan doen is, net soos in die ander een,
Ek gaan om te kyk of die woord in hierdie posisie in die lyn is reeds in
waarskynlikhede.
En dan as ek sê hier, waarskynlikhede woorde, soos in ek
"Waarskynlikhede (sanger)".
So het die naam van die sanger.
So as dit is reeds in "Probabilit (sanger)", beteken dit dat ek
wou voeg 1 om dit, so ek gaan doen "waarskynlikhede (sanger)", en die
woord is die sogenaamde "lyn (i)".
Ek gaan om by te voeg 1 en "anders" Ek is net gaan om dit te inisialiseer 1.
"Line (i)".
Sin maak?
>> So, ek bereken al die skikkings.
So, nou al wat ek het om te doen vir hierdie een is net "terugkeer priors,
waarskynlikhede en woorde. "Kom ons sien of daar enige, OK.
Dit lyk asof alles is so ver werk.
So, wat sin maak?
In een of ander manier?
OK.
So nou het ek al die waarskynlikhede.
So nou is die enigste ding wat ek verlaat het is net die ding om te hê wat
bereken die produk van al die waarskynlikhede toe ek die lirieke.
>> So kom ons sê dat ek nou wil noem hierdie funksie "te klassifiseer ()" en die
ding wat funksie neem is net 'n argument.
Kom ons sê "Baby, ek is aan die brand gesteek" en dit is gaan om uit te vind wat is die
waarskynlikheid dat dit Gaga?
Wat is die waarskynlikheid dat dit Katie?
Klink goed?
So is ek net gaan hê om 'n nuwe funksie genoem "klassifiseer ()" en
dit gaan 'n paar te neem lyrics as well.
En naas die lirieke Ek het ook het die priors te stuur, die
waarskynlikhede en die woorde.
So ek gaan lirieke, priors te stuur, waarskynlikhede, woorde.
>> So dit is die neem van lirieke, priors, waarskynlikhede, woorde.
So, wat doen dit?
Dit is basies gaan om te gaan deur al die moontlike kandidate wat jy
het as 'n sanger.
En waar is daardie kandidate?
Hulle is in die priors, reg?
So ek het al daardie daar.
So ek gaan 'n woordeboek te hê van alle moontlike kandidate.
En dan vir elke kandidaat in die priors, so dit beteken dat dit gaan
wees Gaga, Katie as ek meer dit meer sou wees.
Ek gaan om te begin berekening hierdie waarskynlikheid.
Die waarskynlikheid soos ons gesien het in die PowerPoint is die vorige keer die
produk van elk van die ander waarskynlikhede.
>> So kan ek doen dieselfde hier.
Ek kan net nie waarskynlikheid aanvanklik net die vorige.
So priors van die kandidaat.
Reg?
En nou moet ek Itereer oor die hele woorde wat ek het in die lirieke te wees
in staat om die waarskynlikheid te voeg vir elkeen van hulle, OK?
So, "vir woord in die lirieke" wat ek gaan te doen is, as die woord in
"Waarskynlikhede (kandidaat)", wat beteken dat dit 'n woord wat die
kandidaat het in hul lirieke -
Byvoorbeeld, "baba" vir Gaga -
wat ek gaan doen, is dat die waarskynlikheid gaan vermenigvuldig word
deur 1 plus die waarskynlikhede van die kandidaat vir die woord.
En dit is die sogenaamde "woord".
Dit gedeel deur die aantal woorde wat ek vir die kandidaat.
Die totale aantal woorde wat ek het vir die sanger wat ek is op soek na.
>> "Anders." dit beteken dit is 'n nuwe woord sodat dit sou wees soos byvoorbeeld
"Brand" vir Lady Gaga.
So ek wil net meer as dit doen 1 "Woord (kandidaat)".
So ek wil nie hierdie term om hier te sit.
>> So dit gaan basies kopieer en plak dit.
Maar ek gaan hierdie deel te verwyder.
So dit is net gaan om te wees 1 oor daardie.
Klink goed?
En nou aan die einde, is ek net gaan druk die naam van die kandidaat en
die waarskynlikheid dat jy van met die S op hul lirieke.
Sin maak?
En Ek het eintlik nie eens doen moet hierdie woordeboek.
Sin maak?
>> So, laat ons sien of dit werklik werk.
So as ek hardloop nie, het dit nie werk nie.
Wag 'n sekonde.
"Woorde (kandidaat)", "woorde (kandidaat)", dit is
die naam van die skikking.
OK So, dit sê daar is 'n paar fout vir die kandidaat in priors.
Laat my net chill 'n bietjie.
OK.
Kom ons probeer.
OK.
>> So dit gee Katy Perry het hierdie waarskynlikheid van hierdie tye 10 tot die
minus 7, en Gaga het hierdie keer 10 aan die minus 6.
So jy sien dit blyk dat Gaga het 'n hoër waarskynlikheid.
So "Baby, ek is op Fire" is waarskynlik 'n Gaga lied.
Sin maak?
So dit is wat ons gedoen het.
>> Hierdie kode is gaan gepos word aan online, sodat julle kan check dit uit.
Miskien gebruik 'n paar van dit as jy wil Doen 'n projek of iets soortgelyks.
OK.
Dit was net om te wys wat computational
linguistiek kode lyk.
Maar laat ons nou gaan meer hoë vlak dinge.
OK.
>> So het die ander probleme Ek praat -
die verdeling probleem is die eerste van hulle.
So jy het hier die Japannese.
En dan sien jy dat daar is geen spasies.
So dit is basies beteken dat dit die top van die stoel, reg?
Jy praat Japanese?
Dit is die top van die stoel, reg?
>> STUDENT: Ek weet nie wat die kanji daar is.
>> LUCAS FREITAS: Dit is [Praat Japannese]
OK.
So dit beteken basies voorsitter van top.
So as jy 'n ruimte te sit sou dit hier te wees.
En dan moet jy [? Ueda-San. ?]
Wat basies beteken mnr Ueda.
En jy sien dat "Ueda" en jy het 'n spasie en dan "San." So jy sien dat
Hier kan jy "Ue" is soos deur die self.
En hier is dit het 'n karakter langs dit.
>> So dit is nie soos in daardie tale karakters wat beteken 'n woord is dit, sodat jy
net 'n baie ruimte.
Karakters met mekaar verband hou.
En hulle kan saam wees soos twee, drie, een.
So wat jy eintlik 'n soort te skep van manier om die spasies in.
>> En hierdie saak is dat wanneer jy data van die Asiatiese tale,
alles kom ongesegmenteer.
Want niemand wat Japanese skryf of Chinese skryf met spasies.
Wanneer jy skryf Chinese, Japanese jy alles skryf
met geen spasies.
Dit het nie eens sin maak ruimtes te sit.
So dan wanneer jy die data van sommige Oos-Asiatiese taal, as jy wil
eintlik iets te doen met wat jy het om te segment eerste.
>> Dink aan wat die voorbeeld van die lirieke sonder spasies.
Dus is die enigste lirieke wat jy sal wees sinne, reg?
Geskei deur tyd.
Maar dan hoef net die vonnis sal nie regtig help op die gee van inligting
van wie die lirieke is deur.
Reg?
Dus moet jy sit ruimtes eerste.
So, hoe kan jy dit doen?
>> So kom dan die idee van 'n taal model wat werklik iets
belangrik vir rekenaar linguistiek.
So 'n taal model is basies 'n tafel van waarskynlikhede wat toon
eerste van alles wat is die waarskynlikheid daarvan om die woord in 'n taal?
So wys hoe dikwels 'n woord is.
En dan ook wat die verhouding tussen die woorde in 'n sin.
>> So het die hoof idee is, as 'n vreemdeling gekom aan jou en het gesê 'n sin te
jy, wat is die waarskynlikheid dat dit vir Byvoorbeeld, "Dit is my suster [GTF?"?]
was die vonnis wat die persoon gesê het?
So natuurlik 'n paar sinne meer algemeen as ander.
Byvoorbeeld, "goeie môre" of "goeie nag, "of" hey daar, "is veel meer
algemeen as die meeste sinne dat ons 'n Engelse.
So hoekom is die sinne meer gereelde?
>> Eerste van alles, is dit omdat jy woorde wat meer gereeld.
So, byvoorbeeld, as jy sê, die hond is groot, en die hond is reusagtige, jy
gewoonlik waarskynlik hoor die hond is 'n groot meer dikwels omdat die "groot" is meer
dikwels in Engels as "reuse." So, een van die
dinge is die woord frekwensie.
>> Die tweede ding wat eintlik belangrik is, is net die
orde van die woorde.
So, dit is algemeen om te sê "die kat is binne-in die boks. "Maar jy nie gewoonlik
sien in "Die boks binnekant is die kat." so jy sien dat daar 'n belang
in die orde van die woorde.
Jy kan nie net sê dat die twee sinne het dieselfde waarskynlikheid
net omdat hulle dieselfde woorde.
Jy eintlik omgee oor orde sowel.
Sin maak?
>> So, wat doen ons?
So, wat ek kan probeer om jou te kry?
Ek probeer vertel wat ons te kry roep die N-gram modelle.
So n-gram modelle basies aanvaar dat vir elke woord wat
jy het in 'n sin.
Dit is die waarskynlikheid om daardie woord daar hang nie net op die
frekwensie van die woord in die taal, maar ook op die woorde wat
is dit omring.
>> So byvoorbeeld, gewoonlik wanneer jy sien iets soos op of by jy
waarskynlik gaan om te sien ' naamwoord nadat dit, reg?
Want as jy 'n voorsetsel Gewoonlik is dit neem om 'n naamwoord nadat dit.
Of as jy 'n werkwoord wat oorganklike jy gewoonlik gaan
'n naamwoordstuk.
So dit gaan 'n naamwoord te hê iewers rondom dit.
>> So, basies, wat dit doen, is dat dit van mening dat die waarskynlikheid van '
woorde langs mekaar, wanneer jy die berekening van die
waarskynlikheid van 'n sin.
En dit is wat 'n taal model is basies.
Net om te sê wat is die waarskynlikheid van 'n spesifieke
sin in 'n taal?
So hoekom is dit nuttig, basies?
En in die eerste plek wat 'n N-gram model, dan?
>> So 'n n-gram model beteken dat elke woord hang af van die
volgende N minus 1 woorde.
So, basies, beteken dit dat as ek kyk, Byvoorbeeld, by die CS50 TF wanneer
Ek is die berekening van die waarskynlikheid van die vonnis, sal jy soos "die
waarskynlikheid om die woord "die" keer die waarskynlikheid van die feit dat "die
CS50 "keer die waarskynlikheid van ' "Die CS50 TF." So, basies, ek tel
alle moontlike maniere van strek nie.
>> En dan gewoonlik wanneer jy dit doen, soos in 'n projek, sit jy N te wees
'n lae waarde.
So, het gewoonlik 'bigrams of trigrams.
Sodat jy net tel twee woorde, 'n groep van twee woorde, of drie woorde,
Net vir prestasie.
En ook omdat Miskien as jy ' iets soos "Die CS50 TF." Wanneer jy
het "TF," Dit is baie belangrik dat "CS50" is langs dit, reg?
Dié twee dinge is gewoonlik langs mekaar.
>> As jy dink van "TF," is dit waarskynlik gaan hê wat
klas dit TF'ing vir.
Ook "die" is baie belangrik vir CS50 TF.
Maar as jy iets soos "Die CS50 TF na die klas en het hul
studente 'n paar lekkergoed "." Candy "en" die " het geen verband regtig, reg?
Hulle is so ver van mekaar wat dit maak nie regtig saak wat
woorde wat jy het.
>> So deur 'n bigram of 'n trigram, is dit beteken net dat jy die beperking
om jouself te 'n paar woorde wat rondom.
Sin maak?
So wanneer jy wil segmentering te doen, basies, wat jy wil doen, is te sien
wat al die moontlike maniere wat jy kan segment van die vonnis.
>> Sodanig dat jy sien wat is die waarskynlikheid van elk van die sinne
bestaande in die taal?
So, wat jy doen, is soos, wel, laat my probeer om 'n ruimte om hier te sit.
So jy het 'n ruimte is daar en jy sien wat is die
waarskynlikheid van die sin?
Dan is jy soos, OK, miskien dit was nie so goed nie.
So het ek 'n ruimte is daar en 'n ruimte daar, en jy kan bereken die
waarskynlikheid nou, en jy sien dat dit is 'n groter waarskynlikheid.
>> So, dit is 'n algoritme genoem Die Tango segmentering algoritme, wat
eintlik iets wat werklik sou wees koel vir 'n projek, wat
basies ongesegmenteer teks wat kan Japanese of Chinese of dalk wees
Engels sonder spasies en probeer om te sit spasies tussen woorde en dit nie
wat deur die gebruik van 'n taal model en probeer om te sien wat die hoogste
waarskynlikheid jy kan kry.
OK.
So dit is segmentasie.
>> Nou sintaksis.
So, is sintaksis wat gebruik word vir so baie dinge nou.
So vir grafiek Soek vir Siri vir pretty much enige vorm van natuurlike
taal verwerking wat jy het.
So, wat is die belangrikste dinge oor sintaksis?
So, sinne in die algemeen wat ons noem bestanddele.
Wat is soort van soos groepe van woorde wat 'n funksie in die sin.
En hulle kan nie regtig wees van mekaar.
>> So, as ek sê, byvoorbeeld, "Lauren is lief vir Milo. "Ek weet dat" Lauren "is 'n
samestellende en dan "liefdes Milo "is ook 'n ander een.
Omdat jy nie soos "Lauren Milo kan sê lief "dieselfde betekenis te hê.
Dit is nie van plan om dieselfde betekenis.
Of ek kan nie soos "Milo Lauren sê lief. "Nie alles het dieselfde
beteken om dit te doen.
>> So het die twee belangrike dinge oor sintaksis is die leksikale vorme wat
basies die funksie dat jy vir woorde deur hulself.
So jy het om te weet dat "Lauren" en "Milo" naamwoorde.
"Love" 'n werkwoord.
En die tweede belangrikste ding is dat hulle phrasal tipes.
So jy weet dat "lief Milo" is eintlik 'n verbale uitdrukking.
So as ek sê "Lauren," Ek weet dat Lauren is om iets te doen.
Wat sy doen?
Sy is lief Milo.
So dit is 'n hele ding.
Maar sy komponente is 'n selfstandige naamwoord en 'n werkwoord.
Maar saam, maak hulle 'n werkwoord frase.
>> So, wat kan ons eintlik doen met rekenaarlinguistiek?
So, as ek iets byvoorbeeld "Vriende van Allison." Ek sien as ek net
het 'n sintaktiese boom sou ek weet dat "Vriende" is 'n naamwoordstuk dit is 'n
naamwoord en dan "van Allison" is 'n voorsetselfrase waarin "van" is
'n stelling en "Allison" is 'n selfstandige naamwoord.
Wat ek kan doen, is om my rekenaar te leer dat wanneer ek 'n naamwoordstuk een en
Dan is 'n voorsetselfrase.
So in hierdie geval, "vriende" en dan "van Milo "Ek weet dat dit beteken dat
NP2, die tweede een, besit NP1.
>> So ek kan 'n soort van verhouding skep, 'n soort van funksie vir dit.
So wanneer ek sien hierdie struktuur, wat kom presies ooreen met "vriende van
Allison, "Ek weet dat Allison die eienaar van die vriende.
So het die vriende is iets dat Allison het.
Sin maak?
So dit is basies wat Grafiek Soek doen.
Dit skep net reëls vir 'n klomp dinge.
So "Vriende van Allison", "my vriende wat woon in Cambridge, "" my vriende
wat na Harvard. "Dit skep reëls vir al daardie dinge.
>> Nou masjien vertaling.
So, masjien vertaling is ook iets statistiek.
En eintlik as jy betrokke kry rekenaarlinguistiek, 'n baie
jou goed gaan statistieke te wees.
So as ek besig was om die voorbeeld met 'n baie waarskynlikhede dat ek
berekening, en dan kry jy na hierdie baie klein aantal wat die finale
waarskynlikheid, en dit is wat gee jou die antwoord.
Masjien vertaling gebruik ook 'n statistiese model.
En as jy wil om te dink van die masjien vertaling in die eenvoudigste moontlike
manier, wat jy kan dink, is net vertaal woord vir woord, reg?
>> Wanneer jy 'n taal leer vir die eerste keer, dis gewoonlik wat
jy doen, reg?
As jy wil 'n sin vertaal in jou taal die taal
jy leer, gewoonlik die eerste keer, het jy vertaal elk van die woorde
individueel, en dan moet jy probeer om die woorde om te sit in die plek.
>> So as ek wou om dit te vertaal, [Praat PORTUGESE]
wat beteken "die wit kat het weggehardloop." As ek wou om dit te vertaal uit
Portugees in Engels, wat ek kan doen, is die eerste, het ek net
vertaal woord vir woord.
So "o" is "die", "gato", "die kat," 'Branco, 'n "wit:" en dan "fugio' is
"Weggehardloop."
>> So dan het ek al die woorde hier, maar hulle is nie in orde is.
Dit is soos "die kat wit weggehardloop" wat is ongrammatikaal.
So, dan kan ek 'n tweede stap, het wat gaan word om die ideale
posisie vir elkeen van die woorde.
So ek weet dat ek eintlik wil hê "Wit kat" in plaas van "kat wit." So
wat ek kan doen, is die mees naïewe metode sou wees om te skep al die
moontlike permutasies van woorde van posisies.
En dan sien watter een die hoogste waarskynlikheid volgens
om my taal model.
En dan wanneer ek die een wat die hoogste waarskynlikheid is dit, wat is
waarskynlik "die wit kat het weggehardloop," dit is my vertaling.
>> En dit is 'n eenvoudige manier te verduidelik hoe om 'n baie van die masjien vertaling
algoritmes werk.
Is wat sin maak?
Dit is ook iets baie opwindende dat julle miskien kan verken vir 'n
finale projek, ja?
>> STUDENT: Wel, jy het gesê dit was die naïewe manier, so wat is
die nie-naïef manier?
>> LUCAS FREITAS: Die nie-naïef manier?
OK.
Dus is die eerste ding wat sleg oor hierdie metode is dat ek net vertaal
woorde, woord vir woord.
Maar soms moet jy die woorde wat kan verskeie vertalings.
Ek gaan om te probeer om te dink van iets.
Byvoorbeeld, "manga" in Portugees kan óf "mangelen" of "mou." So
wanneer jy probeer om woord te vertaal deur 'n woord, kan dit gee jy
iets wat nie sin nie.
>> So wat jy eintlik wil jy kyk na al die moontlike vertalings van die
woorde en kyk, in die eerste plek, Wat is die orde.
Ons het gesels oor permutating die dinge?
Al die moontlike bevele om te sien en kies die een met die hoogste
waarskynlikheid?
Jy kan ook kies om al die moontlike vertalings vir elke
woord en dan sien -
gekombineer met die permutasies -
Watter een het die hoogste waarskynlikheid.
>> Plus, jy kan ook kyk na nie net woorde frases.
sodat jy kan analiseer die verhouding tussen woorde en kry 'n
beter vertaling.
Ook iets anders, so hierdie semester Ek is eintlik om navorsing te doen in
Chinese-Engels masjien vertaling, sodat die vertaling van
Chinese in Engels.
>> En iets wat ons doen, is om naas die gebruik 'n statistiese model, wat net
sien die waarskynlikhede te sien sommige posisie in 'n sin, ek is
eintlik ook die toevoeging van 'n paar syntax aan my model, sê, o, as ek sien hierdie soort
van die konstruksie, dit is wat ek wil om dit te verander wanneer ek vertaal.
So jy kan ook 'n soort van element van sintaksis te maak die
vertaling meer doeltreffende en meer akkuraat.
OK.
>> So hoe kan jy begin, as jy wil om iets te doen in die rekenaar
linguistiek?
>> Eerstens, jy kies 'n projek wat behels tale.
So, daar is so baie daar buite.
Daar is so baie dinge wat jy kan doen.
En dan kan dink van 'n model wat jy kan gebruik.
Gewoonlik beteken dit dat denke van aannames, as soos, ag, toe ek
soos denke van die lirieke.
Ek was soos, wel, as ek wil om uit te vind 'n wat hierdie geskryf het, het ek waarskynlik wil
om te kyk na die woorde van die persoon wat gebruik is en sien wat die woord gebruik baie dikwels.
So probeer om aannames te maak en probeer om te dink van die modelle.
En dan kan jy ook aanlyn soek die aard van die probleem wat jy het,
en dit gaan om voor te stel aan jou modelle wat miskien
geskoei dat die ding goed.
>> En jy kan ook altyd vir my e-pos.
me@lfreitas.com.
En ek kan net jou vrae te beantwoord.
Ons kan selfs kan ontmoet so ek kan gee voorstelle oor maniere
implementering van die projek.
En ek bedoel as jy betrokke raak by kry rekenaarlinguistiek, gaan dit
te groot wees.
Jy gaan daar te sien is soveel potensiaal.
En die bedryf wil om te huur jy so sleg as gevolg van daardie.
So ek hoop julle geniet dit.
As julle enige vrae het, jy kan my vra daarna.
Maar dankie.