[MUSIC SPILLE] DAVID MALAN: Dette er CS50. Dette er slutten av uke 10. Og gutt, har vi en god klasse for deg i dag. Vi er så glade for å invitere to av våre venner fra Yale opp til oss i dag og å se i skjæringspunktet mellom kunstig intelligens, robotikk, naturlig språk prosessering, og mer. Og ja, over siste ukene, har vi sikkert tilbrakt mye tid, spesielt i de tidligere psets, fokus på pene lavnivå detaljer. Og det er veldig lett å miste av syne av skogen for bare trær og bli hengt opp på sløyfer og betingelser og pekere, absolutt, og lignende. Men realiteten er dere nå har ingredienser som du kan virkelig løse noen interessante problemer, blant dem de som våre venner på Yale jobbe med bare sjenert av Cambridge. Så la meg først å presentere vårt hode lærerassistent fra Yale, Andy. [BIFALL] ANDY: Først av alt, bare takke for at du tillater et par Yalies til pop på ned til Cambridge i dag. Vi setter stor pris på det. Dernest til våre venner tilbake home-- Jason, takk for bor og kjører foredrag. Håper alt er bra i New Haven. Så ja, jeg er veldig spent å innføre Scaz dag. Scaz kjører robotikk lab. Han er professor i, som, five ulike avdelinger ved Yale. I laboratoriet hans, har han mange, mange roboter som han liker å leke med. Han har, i likhet med den kuleste jobben i verden. Og han kommer til slags rot rundt med det hele dagen lang og gjøre noe arbeid, så vel. Og så vi faktisk tok en Av dem ned med oss ​​i dag. Så uten videre, er Scaz kommer til å gå videre og introdusere oss til hans robot venn. [BIFALL] BRIAN SCASSELLATI: Takk, David. Takk, Andy. Det er så herlig å være her med alle i dag. Jeg vil først være helt klart at den CS50 ansatte her i Cambridge har vært utrolig gjestfrie til oss. Vi er så takknemlig for alt de har gjort for å støtte oss. Og så vi vil gjerne være i stand å returnere godhet. Så i dag, får vi kunn at vi kommer til å ha en ny, one-of-a-kind CS50 event skjer i New Haven neste uke. Og dette er CS50 Forskning Expo. Så vi kommer til å invitere everyone-- CS50 studenter, ansatte fra både Harvard og Yale-- til komme ned og besøke oss på fredag. Vi vil ha et bredt utvalg på over 30 forskjellige personer presentere og exhibiting-- upperclassmen viser av noen av sine forsknings produkter. Vi vil ha noen oppstarter, selv, på jakt for en liten bit av ny tech talent, startups fra både Harvard og Yale. Og vi vil ha noen studentgrupper på jakt etter noen nye medlemskap. Det kommer til å bli en veldig spennende tid. Forhåpentligvis de av dere som er kommer ned for Harvard-Yale spill vil være i stand til å stoppe av litt tidlig, midt i sentrum av campus, Sterling Memorial Library. Vi kommer til å ha et sett av utstillinger som spenner fra selvstendig seilbåter til måter å bruke programvare å bevare middelalder manuskripter. Vi kommer til å ha annonsen hoc nettverk og mennesker pedagogisk programvare koding i Cape Town. Vi vil ha datamaskin musikk demonstrasjoner. Og vi vil selvfølgelig ha flere roboter. Så vi håper du vil bli med oss ​​for denne hendelsen. Det bør være en masse moro, litt mat, og mye interessant ting å snakke om. Så i dag skal vi snakke om naturlig språk prosessering. Og dette er et forsøk for oss å bygge en ny måte for samvirking med våre enheter fordi for de siste ukene, du har vært fokusert på hvordan det er at du kan skrive kode, skrive programvare som er en måte å være i stand til å si til en maskin, dette er hva jeg vil du skal gjøre. Men vi bør ikke trenger å forvente at alt som er der ute som brukes av alle i hele verden kommer til å bli dyktigere i denne typen undervisning. Så vi skille mellom datamaskin språk og naturlig languages-- det vil si ting som mennesker bruk å kommunisere med andre mennesker. Og vi prøver å bygge grensesnitt som bruker disse naturlige kommunikasjon mekanismer. Nå, akkurat som alle andre tema at vi har begynt med i CS50, vi kommer til å starte med det enkleste bit av naturlig språk prosessering at vi kan forestille deg. Vi kommer til å starte med historiske delen av naturlig språk. Og så skal vi bygge opp til flere og nyere systemer og har noen morsomme demoer underveis. Så vi kommer til å starte med hva som var sannsynligvis den første naturlige språk systemet for behandling. Dette var en software skrevet i 1966 av Joseph Weizenbaum kalt ELIZA. Og ELIZA ble utviklet for å replikere den type interaksjon du ville ha med en Rogerian psykoterapeut. Nå, Rogerians, hadde de en idé om at psykoterapi involverte å kunne speile tilbake til en pasient og snakke med dem, i utgangspunktet, ved bare å gi dem en bitte liten bit av terapeuten. Det er, alt at terapeuten sa skulle være bare en refleksjon av hva pasienten var å fortelle dem. Så la oss prøve og demo dette. Har vi en frivillig som vil være villig til å dele sine dypeste, mørkeste, og / eller falske hemmeligheter med ELIZA? Jada, hvorfor ikke du kommer videre opp. Fantastisk. Og navnet ditt? MILES: Miles. BRIAN SCASSELLATI: Miles. Hyggelig å møte deg, Miles. Hvis du vil holde på det. Og vi kommer til å bruke en versjon av ELIZA at vi har kopiert innenfor CS50 IDE. Og vi skal se på kilden koden til dette i en liten stund. Men for akkurat nå, er vi bare kommer til å påberope det ved å skrive eliza. Og ELIZA kommer til å gi deg svar som kommer til å være i alle hovedsteder. Og kommer til å stille deg noen spørsmål. Og vi vil svare og skriv i svar til ELIZA. Så ELIZA har sagt: "Hei, jeg er ELIZA. Hva er ditt problem?" Hva ønsker du å fortelle ELIZA om i dag? MILES: Jeg kan bare sovne hvis jeg har kanintøfler på. BRIAN SCASSELLATI: All right. Greit. [LATTER] "Jeg kan bare sovne med kanintøfler på. " Og ELIZA sier: "Si, gjør du har noen psykiske problemer? Kanskje dette er en god indikator. " OK. Så hva vil du svare? MILES: Ja. BRIAN SCASSELLATI: Ja. Mann av mange ord. Jeg liker det. Eliza sier: "Du virker ganske positive." MILES: Nei, jeg er faktisk et elektron. BRIAN SCASSELLATI: "Nei. Faktisk, jeg er et elektron. " "Visste du kommer til meg fordi du er et elektron? " Nå kan vi se noen av den things-- Jeg kommer å ta en pause for bare et sekund, Miles. Ikke gå hvor som helst. Vi er ikke ferdig med deg ennå. ELIZA er, på noen måter, reagerer på visse ting som han sier, men uten noen reell forståelse. Og det er også parroting tilbake noen av de delene av dommen. Så vi sa, "Nei Faktisk, jeg er et elektron. " Eliza svarte tilbake: "Visste du kommer til meg fordi du er et elektron? " Greit. La oss gi den en mer respons her. Gi det en god en, Miles. MILES: Good one? Ja, kan du hjelpe meg. BRIAN SCASSELLATI: "Ja. Kan du hjelpe meg. »« Er du sikker? " MILES: No. BRIAN SCASSELLATI: No. "Hva betyr det foreslå for deg?" MILES: Jeg kan ikke være et elektron. BRIAN SCASSELLATI: "Jeg kan ikke være en elektron ». "Sier du nei bare for å være negativ?" Greit. Så Miles, takk så mye. MILES: Takk. BRIAN SCASSELLATI: Tusen takk. [BIFALL] Så dette ELIZA program, på mange måter, svarer bare bitene at vi gir uten dyp forståelse av hva som skjer her. Dette er et slags system kalt mønstergjenkjenning, der vi leter etter visse tekstbiter som vi er så kommer til å ta ut av hva ble gitt som input, konvertere den, potensielt, på noen måte, og deretter gi den tilbake til brukeren. Har noen av dere tror at ELIZA er faktisk utføre gyldig psykoanalyse her? En person, kanskje. PUBLIKUM: [uhørlig]. BRIAN SCASSELLATI: Og hvordan Gjør det du føler? Ja, faktisk, det gjør det. Og vi kommer til å se, faktisk, den kildekoden for det i bare et øyeblikk. Og så kommer du til å være i stand til å gjøre akkurat dette. Nå er ELIZA en form for hva vi vil kalle i dag en prat bot. Det går bare gjennom tekst som du gir, gir et minimum beløp forståelse eller behandling, og deretter papegøyer den tilbake til deg. Så la oss ta en titt, konseptuelt, og snakke om hva det er at ELIZA faktisk gjør. ELIZA tar en sentence-- la oss si: "Jeg ønsker å imponere sjefen min." Og ELIZA er ute gjennom den setningen og prøver å finne og matche visse mønstre. Så, for eksempel, en av mønstrene som ELIZA er på jakt etter er ordene "Jeg vil." Og helst det ser noe som har "jeg vil" i den, det formulerer et svar. Og at responsen er en fast streng. I dette tilfellet er det "hvorfor vil du?" Og jeg legger en liten stjerne på slutten fordi det er bare I begynnelsen av vår respons. Og stjernen indikerer at vi kommer til å ta resten av brukerens utterance-- "for å imponere sjefen min" - og vi kommer til å legge det på enden av denne strengen. Så nå, i stedet for å si: "hvorfor ønsker du å imponere sjefen min, " det er en liten bit av ekstra behandling som vi skal gjøre. Det vil si, vi må konvertere noen av pronomen her fra "sjefen min" til "sjefen". Og det kan være noen andre endringer som vi trenger å gjøre. Så i stedet for bare å stikke det direkte på slutten, hva vi skal gjøre blir vi tar resten av brukerens utterance-- i hvitt her-- og vi vil ta det ett stykke på en gang, og konvertere hver streng token, hvert ord, i setningen. Så vi tar ordet "til." Det er ingen konvertering at vi trenger å gjøre det. "Imponere." Det er ingen konvertering vi trenger å gjøre det. "Min" vil konvertere til "din". Og "sjef" vi skal bare la som "sjef". Og så til slutt, noe som ender med en periode, vi vil konvertere den til et spørsmål. Denne svært enkel mønstergjenkjenning er faktisk ganske vellykket. Og da dette ble innført i 1966-- Joseph Weizenbaum programmert dette på en datamaskin. Nå, datamaskiner på den tiden var ikke stasjonære modeller. De ble delt ressurser. Og hans elever ville gå og prate med ELIZA. Til slutt måtte han begrense tilgangen til det fordi hans elever var ikke å få arbeidet gjort. De ble bare chatter med ELIZA. Og, faktisk, måtte han fyre hans assistent, som brukte all sin tid på å snakke ELIZA om hennes dype og bekymringsfulle problemer. Alle som brukte disse systemene begynte å anthropomorphize dem. De begynte å tenke på dem som å være levende og virkelige mennesker. De begynte å gjenkjenne noen av de tingene som de sa skulle komme tilbake til dem. Og de var å finne ut ting om seg selv. Og, faktisk, selv ekspertene, selv de psykoterapeuter, begynte å bekymre seg for at, faktisk, kanskje ELIZA ville være å erstatte dem. Og selv datamaskinen forskere bekymret for at vi var så nær løse naturlig språk. Nå, det var ikke noe sted i nærheten av sant. Men det er hvordan imponerende disse systemene kan virke. Så la oss begynne å lete under og prøv å få en liten bit av et spørsmål hvor denne koden faktisk skjer. Så vi vil gjøre denne koden tilgjengelig etterpå. Og dette er en veldig enkel og direkte port av den opprinnelige ELIZA gjennomføringen. Så noen av disse stilistiske ting som du ser her er ikke stilistisk hva Vi ønsker at du skal gjøre eller hva vi har vært lærer deg å gjøre. Men vi har prøvd å holde dem samme på tvers av mange porter at dette har hatt så at det har smaken av den opprinnelige. Så vi kommer til å omfatte en haug av ting, og så får vi ha en sett av nøkkelord, ting som ELIZA vil gjenkjenne og svare på direkte. Så hvis du har ord som "kan du" eller "Jeg vet ikke" eller "nei" eller "ja" eller "drøm" eller "hallo", deretter ELIZA vil reagere selektivt til dem. Vi vil også ha en visst antall ting at vi vil bytte, som konvertere "min" til "din". Og så vil vi ha et sett av svar at for hver av disse søkeordene, vi vil rotere gjennom disse ulike reaksjoner. Så hvis jeg sier "ja" tre ganger på rad, jeg kan få tre forskjellige svar fra ELIZA. Koden vår, da, er faktisk utrolig enkelt. Hvis jeg ruller nedover forbi alle disse svarene som vi har programmert i og vi komme ned til vår viktigste, vi kommer til å initial et par forskjellige variabler og gjøre litt av rengjøring i begynnelsen. Men så er det absolutt et sett kode som du kan forstå. En stor mens loop som sier jeg er kommer til å gjenta dette om og om igjen. Jeg skal lese i en linje, og jeg skal lagre det i en inngang streng. Jeg skal sjekke og se om det er den spesiell søkeord "bye", som betyr avslutte programmet. Og så skal jeg sjekke og se om noen er bare å gjenta seg selv igjen og igjen. Og jeg skal kjefte på dem hvis de gjør. Jeg vil si "ikke gjenta deg selv." Så lenge ingen av disse skje, vil vi deretter skanne gjennom og sløyfe gjennom, på linjene 308 til 313 her, og sjekke og se er noen av de som søkeord setninger som finnes i inngangs at jeg ble bare gitt? Hvis det er en match for dem, vel Da skal jeg huske det stedet. Jeg kommer til å huske dette søkeordet. Og jeg skal være i stand til å bygge et svar. Hvis jeg ikke finner en, vel da, det siste i søkeordet mitt utvalg vil være min standard svar, når ingenting annet kamper. Jeg vil stille spørsmål som «Hvorfor gjorde du kommer hit? "eller" Hvordan kan jeg hjelpe deg? " som er bare delvis riktig uansett hva input er. Vi vil deretter bygge opp ELIZA respons. Vi vil være i stand til å ta at basen respons, akkurat som vi gjorde i det "sjefen min" eksempel. Hvis det er alt som det er-- om det bare er én streng som jeg skal respond-- Jeg kan bare sende den ut igjen. Hvis den har en stjerne på slutten av det, så skal jeg behandle hver enkelt token i resten av brukerens svar og legge de i, bytte ut ord for ord som jeg må. Alt dette er helt noe som du kan bygge. Og faktisk, de måtene vi har bearbeidet kommandolinjeargumentene, den måten som du har behandlet gjennom HTTP-forespørsler følge de samme typer regler. De er mønstergjenkjenning. Så ELIZA hadde en relativt viktig innvirkning på naturlig språk fordi det gjorde det virke som om det var en svært oppnåelige mål, som en eller annen måte ville vi være i stand til å løse dette problemet direkte. Nå, det er ikke å si at ELIZA gjør alt som vi ønsker å gjøre. Absolutt ikke. Men vi bør kunne å gjøre noe mer. Vårt første skritt å gå utover ELIZA kommer å være i stand til å se på ikke tekst som blir skrevet i tastaturet, men tale, faktiske tale spilt inn i en mikrofon. Så som vi ser på disse forskjellige stykker, vi er nødt til å bygge opp et sett av modeller. Vi er nødt til å være i stand å gå fra lavt nivå akustisk information-- banen, amplitude, frequency-- og konvertere til noen enheter som vi er i stand til lettere å manipulere og endelig, manipulere dem i ord og setninger. Så de fleste talegjenkjenning systemer som er der ute i dag følger en statistisk modell hvor vi bygger tre separate fremstillinger av hva at lydsignalet faktisk inneholder. Vi starter med en fonetisk modell som snakker om bare basen lyder som jeg produserer. Er jeg produsere noe som er en B som i gutt eller en D som i hund? Hvordan gjenkjenner jeg de to forskjellige telefoner som atskilt og forskjellig? På toppen av det, vil vi deretter bygge et ord uttale modell, noe som knytter sammen de individuelle telefoner og kombinerer dem i et ord. Og etter det, vil vi ta ordene og vi vil montere dem med et språk modellere inn i en fullstendig setning. Nå skal vi snakke om hver av disse selvstendig og separat. Men disse tre modellene er alle bare skal være statistikk. Og det betyr at når vi jobbe med dem, vil vi kunne arbeide med dem alle samtidig. Greit. La oss starte med vår fonetisk modell. Så fonetiske modeller stole på en beregningsteknikk kalt skjulte Markovmodeller. Disse er grafiske modeller der jeg har og gjenkjenne en tilstand av verden som er kjennetegnet av et sett med funksjoner. Og at staten beskriver én del av en handling som jeg er engasjert i. Så hvis jeg tenke på å gjøre lyden "ma" som mor, det er annerledes komponenter til den lyden. Det er en del der jeg trekker inn pusten. Og da jeg vesken mine lepper. Og jeg rulle mine lepper litt tilbake litt å gjøre at "ma" lyd. Og så er det en utgivelse. Mine lepper komme fra hverandre. Air blir utvist. "Ma". De tre ulike deler ville være representert ved statene i denne graph-- starten, midten og slutten. Og jeg ville ha overganger som tillatt meg å reise fra en tilstand til den neste med en viss sannsynlighet. Så, for eksempel at M høres kanskje har en veldig, svært kort inntak på beginning-- "mm" - og deretter et lengre, vibrasjons fase der jeg holder min leppene sammen og nesten humming-- "mmmm" - og deretter en svært kort plosiv hvor jeg utvise breath-- "ma". Den skjulte Markov modellen er utformet for å fange opp det faktum at den måten som jeg gjør at lyden "ma" kommer å være litt annerledes i sin timing, er frekvens, og dets funksjoner enn den måten at du gjør det eller den måten at jeg kanskje gjøre det når jeg snakker om ulik bruk av brevet. "Mor" og "kan jeg" vil høres litt annerledes. Så for å gjenkjenne en bestemt lyd, ville vi bygge Markov modeller, disse skjulte Markov modeller, av alle mulige telefonen at jeg kanskje vil kjenne igjen, alle mulige lyd, og deretter se på akustiske data som jeg har og bestemme statistisk hvilken som er mest sannsynlig en å ha produsert denne lyden. OK. Med denne modellen, vi så begynne å bygge på toppen av det. Vi tar en uttale modell. Nå, noen ganger uttale modellene er enkle og lett fordi det er bare én måte å uttale noe. Andre ganger, de er en litt mer komplisert. Her er en uttale guide for det røde ting som er en frukt som du gjør ketchup ut av. Folk tror ikke det er en frukt. Høyre? Nå er det mange forskjellige måter at folk vil uttale dette ordet. Noen vil si "toe-mai-tå." Noen vil si "toe-mah-tå." Og vi kan fange opp at med en av disse grafiske modeller der, igjen, representerer vi overganger som å ha en viss sannsynlighet og tilhørende sannsynlighet med dem. Så i dette tilfellet, hvis jeg skulle følge toppen ruten gjennom hele denne grafen, Jeg ville bli som starter på bokstaven lengst til venstre, den "ta" lyd. Jeg ville ta den øverste halvdelen, den "oh", og deretter en "ma" og deretter en "a", og deretter en "ta", og en "oh". "Toe-may-tå." Hvis jeg tok den nederste banen gjennom dette, vil jeg få "ta-mah-tå." Og hvis jeg gikk ned og deretter opp, jeg ville få "ta-may-tå." Disse modellene fange disse forskjeller fordi når vi distribuere en av disse anerkjennelse systemer, det er nødt til å jobbe med massevis av forskjellige slags mennesker, mange forskjellige aksenter, og selv ulik bruk av de samme ordene. Endelig på toppen av det, vi vil bygge noe som ser veldig komplisert, kalt språkmodell, men i virkeligheten er den enkleste av de tre fordi disse opererer på det som kalles n-gram-modeller. Og i dette tilfellet, jeg viser deg en to-del n-gram-modellen, en bigram. Vi kommer til å gjøre fysisk ideen at noen ganger, enkelte ord er mer sannsynlig å følge en gitt ord enn andre. Hvis jeg bare sa "værvarsel" neste ord kunne sannsynligvis være "i dag" eller kan være "været time i morgen. " Men det er lite sannsynlig å være " værvarselet artisjokk. " Hva en språkmodell gjør er den fanger de statistisk ved å telle, fra noen svært store corpus, alle de instanser hvori ett ord følger hverandre. Så hvis jeg tar et stort corpus-- som hver Wall Street Journal som har vært produsert siden 1930, som er en av de standard corpuses-- og jeg ser gjennom alle som tekst, og jeg teller opp hvor mange ganger etter "prognose" ser jeg "i dag" og hvor mange ganger jeg ser gjøre "prognose" etterfulgt av "artisjokk," det første en kommer å være mye mer sannsynlig. Det kommer til å dukke opp langt oftere. Og så det vil ha en høyere sannsynlighet knyttet til den. Hvis jeg ønsker å finne ut av Sannsynligheten for en hel ytring, da, jeg bare bryte den opp. Derfor er sannsynligheten for høre setningen "rotta spiste ost" er sannsynligheten for ordet "" start en setning, og så sannsynligheten for at Ordet "rotte" følger ordet "på", og sannsynligheten for at Ordet "spiste" følger "rotte" og sannsynligheten for at "ost" følger "spiste". Dette høres ut som en masse statistikk, mye av sannsynligheter. Og det er alt som det er. Men det utrolige er hvis du gjør dette med en stor nok prøve av data, det fungerer. Og det fungerer enormt godt. Vi vet alle disse teknologiene. De fleste operativsystemer kommer med talegjenkjenning på dette punktet. Vi bruker Siri og Cortana og Echo. Og disse tingene er basert på denne type av tre-lags model-- en fonetisk modell på bunnen, en uttale modellen i midten, og en språkmodell på toppen av dem. Nå må de gjøre litt mer enn at for å svare på spørsmål. Men erkjennelsen av hva du er ordtaket avhenger akkurat på det. Så la oss ta et eksempel her. Så jeg har telefonen min sitter her oppe under dokumentkameraet. Og vi kommer til å spør Siri noen spørsmål. Greit? Så la oss våkne opp telefonen min her. Siri, hva er været som i New Haven i dag? SIRI: Her er været for New Haven, Connecticut i dag. BRIAN SCASSELLATI: OK. Så første du så at Siri anerkjent hver av de enkelte ord og deretter produsert en respons. Vi skal snakke om hvordan dette svaret kommer om i en liten bit. Men nå som vi vet at dette er bare basert på den rå statistikk og dette mønstergjenkjenning type tilnærming, vi kan spille noen kamper med Siri. Så jeg kan prøve igjen. Siri, hva er været flodhest New Haven, i dag? SIRI: OK. Her er værmeldingen for New Haven, Connecticut for i dag. BRIAN SCASSELLATI: Siri ikke daunted av at fordi det er funnet pattern-- "vær", "i dag", "New Haven." Det er hva det er å svare til, akkurat som ELIZA. Greit. La oss gi den en mer selv mer latterlig eksempel. Siri, vær artisjokk armadillo flodhest New Haven? SIRI: La meg se på det. Her er hva jeg fant på nettet for hva er artisjokker armadillo flodhest New Haven. BRIAN SCASSELLATI: OK. Så hvis jeg går langt nok bort fra denne modellen, Jeg er i stand til å forvirre det fordi det ikke lenger samsvarer med mønsteret som den har. Og at statistisk motor som sier: hva er sannsynligheten for at du har fått ordene flodhest og artisjokk sammen, og armadillo? Det må være noe nytt. Så disse teknologiene vi bruker hver dag. Hvis vi ønsker å ta dem ett skritt videre, men hvis vi faktisk ønsker å være i stand til å snakke om hva det er at disse systemene er å svare på, vi må snakke, igjen, om en mer grunnleggende sett med spørsmål. Og det er et tema i kommunikasjon som vi kaller spørsmålet telefonsvarer. Det vil si at vi ønsker å kunne to-- ja? PUBLIKUM: [uhørlig]. BRIAN SCASSELLATI: Får vi inn latent semantisk prosessering? Så ja. Det er mange ting som er skjer under overflaten med Siri og i noen av eksemplene Jeg kommer til å vise deg neste hvor det er ganske mye i form av strukturen av det du sier som er viktig. Og, faktisk, det er en stor forløper for neste lysbilde for meg. Så på samme måte som vår talegjenkjenning ble bygd opp av flere lag, hvis vi ønsker å forstå hva det er som faktisk er blir sagt, skal vi igjen avhengig av et flerlagsanalyse av teksten som blir gjenkjent. Så når Siri er faktisk i stand til å si, ser jeg fant disse ordene. Nå hva gjør jeg med dem? Den første komponenten er ofte gå gjennom og prøve å analysere strukturen av setningen. Og hva har vi sett i grunnskolen, ofte, som liksom diagram setninger, skal vi å erkjenne at visse ord har visse roller. Dette er substantiver. Dette er pronomen. Dette er verb. Og vi kommer til å kjenne igjen at for en bestemt grammatikk, i dette tilfelle engelsk grammatikk, er gyldige måter som jeg kan kombinere dem og andre måter som ikke er gyldige. At anerkjennelse, som struktur, kan være nok til å hjelpe oss en liten bit. Men det er ikke nok for oss å være i stand til å gi noen mening til hva som blir sagt her. For å gjøre det, må vi stole på viss mengde semantisk behandling. Det vil si, vi er nødt til å se på under hva hver av disse ordene faktisk bærer som en mening. Og den enkleste måten å gjøre dette på, vi kommer til å assosiere med hvert ord at vi kjenner en viss funksjon, en viss transformasjon som det tillater å skje. I dette tilfellet kan vi merke Ordet "John" som et egennavn, at den bærer med seg en identitet. Og vi kan merke "Mary" som på samme måte. Mens et verb som "elsker", som utgjør en bestemt relasjon at vi er i stand til å representere. Nå betyr det ikke at vi forstår hva kjærlighet er, men bare at vi forstår Det i form av et symbolsk system. Det vil si, vi kan merke det og manipulere det. Med hver av disse typer av fremgangsmåter, hvilken som helst type av semantisk prosessering her kommer til å kreve en liten bit av kunnskap og mye arbeid fra vår side. Vi er ikke lenger i riket hvor bare ren statistikk kommer til å være nok for oss. Nå, for å gå fra dette punkt til å bli i stand til å snakke om innsiden av hva som faktisk skjer her, å være i stand til å manipulere denne strukturere og forstå et spørsmål og deretter å kunne for å gå ut og søke, som krever en mer kompleks kognitiv modell. Den måten som disse systemene er bygget er for det meste veldig, veldig arbeids intensiv. De involverer mennesker bruke mye tid strukturere måter i som slike setninger kan representeres på en eller annen logikk. Det blir enda litt mer komplekse, men. Selv når vi har jobbet med semantikk, vil vi har fortsatt å se på pragmatikk av hva som blir sagt. Det vil si, hvordan jeg forholder ordene at jeg må noe fysisk ut der ute i verden eller i det minste noen informasjonskilde at jeg kan manipulere? Noen ganger, disse føre til fantastiske biter av tvetydighet. "Red-hot stjerne til gifte astronom." OK. Nå leser vi at etter hvert som morsom type overskrift at vi vil se på sen kveld TV fordi vi ikke tolke "stjerne" å ha sin himmellegeme mening. Vi vet at det vil si jo mer vanlig skuespiller med høye mengder av sikten. "Squad hjelper hunden bite offeret." Er det at troppen er faktisk der ute hjelpe en hund i går rundt og bite ofre? Eller er det slik at det var en person som var bitt av en hund som trengte litt hjelp? Bare fra å se på syntaksen og semantikk setningene, Vi kan ikke bestemme det. "Helikopter drevet av menneske fluer." Er det faktisk faktiske småting flyr rundt som er mennesker med vinger slår helikoptre til det gode for menneskeheten? Eller er det en mekanisk innretning som får sin strøm fra en person? Når vi ser på spørsmålet svarsystemer, disse er de lag som vi trenger å forholde seg til. Nå, den beste og den mest sortere av utbredt av disse systemene dag er i stand til å gjøre ting på et nivå som er langt utover det vi hadde for 10 år siden. Her er en av de beste systemene som er der ute i dag. Og dette er et system fra IBM heter Watson. Dette er fra våre venner i IBM. Dette er Katherine banker, Jia Chen, og Priscilla Moraes gi oss en demonstrasjon av Watson i går i IBM Yorktown. [VIDEO PLAYBACK] -Hvordan har du det? -Jeg har det bra. Jeg er alltid glad når jeg er tenkning, spesielt når jeg kan være kul i disse serverrom. -Hvem Er din favoritt skuespiller? -Min Favoritt skuespiller Angelina Jolie som Lara Croft i Tomb Raider fordi hennes opprinnelige formen var som en virtuell karakter som meg. -Hvordan Kan Watson hjelpe pasienter? -Er Plan for pasienter til har tilgang til Watson direkte? Tilgang til Watson rådgivende søknader vil variere etter bruk tilfelle. Men i dag, vil Watson bare gi mulig diagnose og behandling alternativer til medisinsk faglig. Der det er hensiktsmessig, pasienter kan gi informasjon Watson, kanskje gjennom en portal webgrensesnitt, tablet, eller til og med en mobiltelefon. For eksempel kan en pasient være bedt om å beskrive sine symptomer i naturlig språk direkte inn i en Watson løsning, tillater legen å fokusere på diagnose og ikke datainnsamling. -Hvem Myrdet Abraham Lincoln? -John Wilkes Booth. -I Hvilket år gjorde Arizona Diamondbacks vinne World Series? -2001. [END PLAYBACK] BRIAN SCASSELLATI: So slike systemer nødt til å stole på først og fremst gjenkjenne tale; sekund, omdanne den til en meningsfylt indre representasjon; og deretter, tredje, å være i stand til å gå ut og finne informasjonskilden som gir dem mulighet til å svare på det spørsmålet. Dette nivået av kompleksitet innebærer samme typer programmatiske ting at du har vært gjør i oppgavesett. Vi er i stand til å analysere HTTP-forespørsler i samme type lavt nivå mønster matching som ELIZA kan gjøre. Vi er i stand til å konvertere dem inn i en intern representasjon, og deretter bruke dem til å spørre noen ekstern database, muligens ved hjelp av SQL. Alle systemene som Det bygges i dag for å gjøre denne type naturlig språklig kommunikasjon blir bygget på de samme prinsipper. Nå, med et system som Watson er ikke komplisert nok å være i stand til å svare på vilkårlig spørsmål om hvilket som helst tema. Og faktisk, de må være strukturert innenfor et gitt domene. Så du kan gå på nettet og du kan finne versjoner av Watson som opererer godt innen medisinsk informatikk. Eller det er en online som bare dreier seg om hvordan å gjøre gode anbefalinger om hva øl vil gå med noe mat. Og innenfor disse domenene, det kan svare på spørsmål, finne informasjon om at det er behov for. Men du kan ikke mikse og matche dem. Systemet som er blitt opplært med databasen av mat og øl ikke fungerer godt når du plutselig sette den inn med medisinsk informatikk database. Så selv våre beste systemene i dag avhengig av et bearbeidings der vi hånden koding og bygge i infrastrukturen i orden for å gjøre dette systemet løpe. Nå, den siste emnet jeg ønsker for å kunne komme til i dag handler om nonverbal kommunikasjon. En stor masse av informasjon som vi kommuniserer med hverandre ikke kommet til gjennom enkelte ord at vi søker. Det har å gjøre med ting som nærhet, blikk, tonen i stemmen, din bøyning. Og at kommunikasjon er også noe som mange forskjellige grensesnitt bryr seg mye om. Det er ikke hva Siri bryr seg om. Jeg kan spørre Siri noe i en stemme eller i en annen tone i stemmen, og Siri kommer til å gi meg det samme svaret. Men det er ikke det vi bygger for mange andre typer grensesnitt. Jeg ønsker å introdusere deg nå til en av roboter. Denne ble bygget av min mangeårige venn og kollega Cynthia Breazeal og hennes selskap Jibo. Og dette robot-- vi kommer å ha et par frivillige komme opp til samvirke med denne. Så kan jeg ha to personer villige å leke med roboten for meg? Hvorfor ikke komme på opp, og hvorfor gjør ikke du kommer videre opp. Hvis du vil bli med meg opp her, takk. Og hvis jeg kunne ha deg komme rett over her. Takk. Hei. ALFREDO: Hyggelig å møte deg. Alfredo. BRIAN SCASSELLATI: Alfredo. RACHEL: Rachel. BRIAN SCASSELLATI: Rachel. Hyggelig å møte dere begge. Alfredo, jeg kommer til å ha deg gå først. Kom rett opp her. Jeg kommer til å introdusere you-- hvis jeg kan få dette av uten å banke den microphone-- til en liten robot som heter Jibo. OK? Nå er Jibo utformet for å være interaktive. Og selv om det kan gi deg tale, mye av interaksjonen med roboten er nonverbal. Alfredo, jeg kommer til å be deg om å si noe fint og gratis til roboten, takk. ALFREDO: Jeg tror du ser søt. [Surrende SOUND] BRIAN SCASSELLATI: OK. Sitt svar er ikke verbal. Og likevel det ga dere begge en klar erkjennelse at det hadde hørt hva du sa og også liksom forstått det. OK? Gå rett tilbake hit for ett sekund. Takk. Rachel, hvis du ville. Nå kommer jeg til å gi du det mye vanskeligere jobb. Hvis du vil stå rett her, sikkerhetskopiere bare litt så vi kan få deg på kamera og se på denne måten. Jeg kommer til å be deg om å si noe egentlig mener og stygg til roboten. RACHEL: Hva du har virket å gjøre var helt absurd. [Summelyd] Det var enda mer absurd. Hva skjer med deg? Aw, føler meg ikke dårlig. Jeg skal gi deg en klem. BRIAN SCASSELLATI: All right. Takk, Rachel. Alfredo, Rachel, takk folkens veldig mye. [BIFALL] Så denne typen interaksjon har i mange måter noen av de samme regler og noe av den samme struktur som det vi kan ha i språklig samhandling. Det er både kommunikative og har en viktig funksjon. Og at samhandling, i mange måter, er utformet å ha en bestemt virkning på person i samspill med eller lytter til roboten. Nå er jeg så heldig å ha Jibo her i dag. Sam Spaulding er her å hjelpe oss ut med roboten. Og jeg kommer til å be Sam å gi oss en fin demo av Jibo dans at vi kan se på slutten her. Så sett i gang, Jibo. SAM: OK, Jibo. Vis oss dine dansetrinn. [MUSIC SPILLE] BRIAN SCASSELLATI: Greit, alle sammen. Takk til våre venner på Jibo. [BIFALL] Og takk til våre venner på IBM for å hjelpe ut i dag. Kommunikasjon er noe at du kommer å se kommer opp mer og mer som vi bygge mer komplekse grensesnitt. Snakker neste uke, vi skal om hvordan grensesnittet med datamotstandere i spill. Men hvis du har spørsmål om dette, Jeg skal være rundt i kontortiden i kveld. Jeg er glad for å snakke med deg om AI emner eller å komme inn i mer detalj. Ha en fin helg. [BIFALL] [MUSIC SPILLE]