[Musik spiller] DAVID MALAN: Dette er CS50. Dette er slutningen af ​​uge 10. Og dreng, har vi en god klasse for dig i dag. Vi er så glade for at invitere to af vores venner fra Yale op til os i dag og se på skæringspunktet mellem kunstig intelligens, robotteknologi, behandling af naturligt sprog, og meget mere. Og ja, over sidste par uger, vi har sikkert brugt en masse tid, især i de tidligere psets, med fokus på smukke detaljer lavt niveau. Og det er meget nemt at glemme af skoven for bare træer og få hængt op på loops og vilkår og henvisninger, i hvert fald, og lignende. Men virkeligheden er du fyre har nu ingredienser, som du virkelig kan løse nogle interessante problemer, blandt dem dem, vores venner på Yale arbejde på lige genert af Cambridge. Så tillad mig først at introducere vores hoved undervisningsassistent fra Yale, Andy. [BIFALD] ANDY: Først og fremmest, bare tak dig for at lade et par Yalies til pop ned til Cambridge i dag. Vi har virkelig sætter pris på det. For det andet til vores venner tilbage home-- Jason, tak for opholder sig og kører foredrag. Håber det er alle gode i New Haven. Så ja, jeg er super spændt at indføre SCAZ dag. SCAZ kører robotteknologi lab. Han er professor i, ligesom, fem forskellige afdelinger på Yale. I sit laboratorium, han har mange, mange robotter, han kan lide at spille med. Han har lignende, fedeste job i verden. Og han får at slags rod rundt med, at hele dagen lang og gøre noget arbejde, så godt. Og så vi faktisk bragt en af dem ned med os i dag. Så uden videre, SCAZ er kommer til at gå videre og indføre os til sin robot ven. [BIFALD] BRIAN Scassellati: Tak, David. Tak, Andy. Det er så vidunderligt at være her med alle i dag. Jeg vil først være meget klart, at det CS50 personalet her i Cambridge har været utroligt gæstfrie til os. Vi er så taknemmelige for alt de har gjort for at støtte os. Og så vi vil gerne være i stand at returnere venlighed. Så i dag, får vi at annoncere at vi kommer til at have en ny, one-of-a-kind CS50 begivenhed sker i New Haven i næste uge. Og dette er den CS50 Research Expo. Så vi kommer til at være indbydende everyone-- CS50 studerende, personale fra både Harvard og Yale-- til komme ned og besøge med os på fredag. Vi vil have en bred vifte af forhold 30 forskellige mennesker frembyder og exhibiting-- upperclassmen viser fra nogle af deres forskning produkter. Vi vil have nogle nystartede, selv, ser for en lille smule af nye tech talent, nystartede fra både Harvard og Yale. Og vi vil have nogle grupper af studerende på udkig efter nogle nye medlemskab. Det kommer til at være en meget spændende tid. Forhåbentlig dem af jer, der er kommer ned for Harvard-Yale spil vil være i stand til at stoppe af en lille smule tidligt, lige i centrum af campus, Sterling Memorial Library. Vi kommer til at have et sæt udstillinger, der spænder fra autonom sejlbåde til måder at bruge software at bevare middelalderlige håndskrifter. Vi bliver nødt til annonce hoc netværk og mennesker undervisning software kodning i Cape Town. Vi vil have computer musik demonstrationer. Og vi vil selvfølgelig have flere robotter. Så vi håber, du vil slutte sig til os for denne begivenhed. Det bør være en masse sjov, en lille smule af mad, og en masse interessante ting at tale om. Så i dag, vi kommer til at tale om behandling af naturligt sprog. Og det er forsøget for os at bygge en ny måde sammenknytning med vores enheder fordi for de sidste par uger, du er blevet fokuseret på, hvordan det er, at du kan skrive koden, skriver software der er en måde at være i stand til at sige til en maskine, dette er hvad jeg vil have dig til at gøre. Men vi bør ikke være nødvendigt at forventer, at alt , der er derude, der bruges af alle i verden kommer til at være dygtige i denne form for undervisning. Så vi skelne mellem computer sprog og naturlige languages-- det vil sige, ting der mennesker brug at kommunikere med andre mennesker. Og vi forsøger at bygge grænseflader, der bruger disse naturlige kommunikationsmekanismer. Nu, ligesom alle andre emne at vi har startet med i CS50, vi kommer til at starte med den enkleste bit af naturligt sprog forarbejdning at vi kan forestille os. Vi kommer til at starte med historiske del af naturligt sprog. Og så vil vi bygge op til flere og flere nyere systemer og har nogle sjove demoer undervejs. Så vi kommer til at starte med, hvad der var formentlig den første naturligt sprog system. Dette var et softwaresystem skrevet i 1966 af Joseph Weizenbaum kaldet ELIZA. Og ELIZA er designet til replikere form for interaktion du ville have med en Rogerian psykoterapeut. Nu er Rogerians, de havde en idé om, at psykoterapi involveret at kunne spejle tilbage til en patient, og tale med dem, dybest set, ved kun at give dem en lillebitte smule terapeuten. Det er, alt at terapeuten sagde skulle være bare en afspejling af hvad patienten fortæller til dem. Så lad os prøve og demo dette. Har vi en frivillig, der ville være villige til at dele deres dybeste, mørkeste og / eller falske hemmeligheder med ELIZA? Sikker på, hvorfor du ikke kommer videre op. Fantastisk. Og dit navn? MILES: Miles. BRIAN Scassellati: Miles. Rart at møde dig, Miles. Hvis du vil holde på det. Og vi kommer til at anvende en version af ELIZA at vi har kopieret inden for CS50 IDE. Og vi vil se på kilden kode til dette i et lille stykke tid. Men for lige nu, er vi bare kommer til at påberåbe sig den ved at skrive Eliza. Og ELIZA vil give dig svar der kommer til at være i alle hovedstæder. Og kommer til at stille dig nogle spørgsmål. Og vi vil reagere og skrive i svarene i Eliza. Så ELIZA har sagt, "Hej, jeg er ELIZA. Hvad er dit problem?" Hvad vil du gerne fortælle ELIZA om i dag? MILES: Jeg kan kun falde i søvn hvis jeg har bunny slippers på. BRIAN Scassellati: Okay. Okay. [LATTER] "Jeg kan kun falde i søvn med bunny hjemmesko på. " Og ELIZA siger, "Sig, gør du har nogen psykiske problemer? Måske er det en god indikator. " OK. Så hvad ville du gerne svare? MILES: Ja. BRIAN Scassellati: Ja. Mand med mange ord. Jeg nyder det. Eliza siger: "Du virker ganske positivt." MILES: Nej, jeg er i virkeligheden en elektron. BRIAN Scassellati: "Nej. Faktisk er jeg en elektron. " "Har du kommer til mig fordi du er en elektron? " Nu kan vi se nogle af den things-- jeg har tænkt mig at holde pause dig for bare et sekund, Miles. Må ikke gå nogen steder. Vi er ikke færdig med dig endnu. ELIZA er, på nogle måder, reagere på visse ting at han siger, men uden nogen reel forståelse. Og det er også parroting tilbage nogle af de dele af sin straf. Så sagde vi, "Nej Faktisk er jeg en elektron. " Eliza svarede tilbage, "Har du kommet til mig fordi du er en elektron? " Okay. Lad os give det en mere respons her. Giv det en god en, Miles. MILES: Godt én? Ja, kan du hjælpe mig. BRIAN Scassellati: "Ja. Please hjælp mig. "" Er du sikker? " MILES: Nej. BRIAN Scassellati: Nej. "Hvad vil det foreslå dig?" MILES: Jeg kan ikke være en elektron. BRIAN Scassellati: "Jeg kan ikke være en elektron. " "Siger du ikke bare for at være negativ?" Okay. Så Miles, tak så meget. MILES: Tak. BRIAN Scassellati: Tak meget. [BIFALD] Så dette ELIZA program, på mange måder, reagerer blot at stykkerne at vi leverer uden nogen dyb forståelse af, hvad der sker her. Dette er en form for system kaldes mønster matching, hvor Vi leder efter bestemte bidder af tekst, som vi er så kommer til at tage ud af, hvad blev givet som input, konvertere det potentielt på en måde, og derefter give det tilbage til brugeren. Er der nogen af ​​jer tror at ELIZA er faktisk udfører gyldigt psykoanalyse her? Én person, måske. PUBLIKUM: [uhørligt]. BRIAN Scassellati: Og hvordan Gør det du føler? Ja, faktisk det gør. Og vi kommer til at se, faktisk, det kildekoden til det på blot et øjeblik. Og så du kommer til at være i stand til at gøre netop dette. Nu ELIZA er en form for, hvad vi ville kalde i dag en chat bot. Det bare går gennem tekst, som du giver, giver minimum beløb forståelse eller forarbejdning, og så papegøjer det tilbage til dig. Så lad os tage et kig, konceptuelt, og snakke om, hvad det er, at ELIZA faktisk gør. ELIZA tager en sentence-- lad os sige, "Jeg ønsker at imponere min chef." Og ELIZA ser gennem denne sætning og forsøger at finde og matche bestemte mønstre. Så for eksempel, en af ​​de mønstre at ELIZA er på udkig efter er de ord "Jeg vil." Og helst det ser noget der har "jeg vil" i det, Det formulerer et svar. Og dette svar er en fast streng. I dette tilfælde er det "hvorfor vil du?" Og jeg sætte en lille stjerne på sidste ende, fordi det er bare begyndelsen af ​​vores svar. Og stjernen angiver, at vi kommer til at tage resten af brugerens utterance-- "for at imponere min chef" - og vi vil tilføje, at på enden af ​​denne streng. Så nu, i stedet for at sige, "hvorfor vil du imponere min chef, " der er en lille smule af yderligere forarbejdning, som vi vil gøre. Det vil sige, at vi bliver nødt til at konvertere nogle af stedord her fra "min chef" til "din chef." Og der kan være et par andre ændringer, som vi har brug for at gøre. Så i stedet for bare stikning det direkte på enden, hvad vi vil gøre er vi vil tage resten af brugerens utterance-- i hvid her-- og vi vil tage det et stykke ad gangen og konvertere hver streng token, hvert ord, ind i sætningen. Så vi vil tage ordet "til". Der er ingen konvertering at vi skal gøre det. "Impress". Der er ingen konvertering vi nødt til at gøre der. "Min" vil konvertere til "din". Og "boss" Vi vil bare lade som "boss". Og derefter endelig noget der slutter med en periode, vi vil omdanne det til et spørgsmål. Denne meget simpelt mønster matching er faktisk ganske vellykket. Og når dette blev indført i 1966-- Joseph Weizenbaum programmeret det på en computer. Nu, computere på det tidspunkt var ikke stationære modeller. De blev delt ressourcer. Og hans elever ville gå og chatte med ELIZA. Til sidst måtte han begrænse adgangen til det fordi hans elever var ikke få noget arbejde gjort. De var bare chatter med ELIZA. Og i virkeligheden, måtte han fyre hans assistent, der brugt alle hendes tid på at tale i Eliza om hendes dybe og bekymrende problemer. Alle, der brugte disse systemer begyndte at anthropomorphize dem. De begyndte at tænke på dem som bliver levende og virkelige mennesker. De begyndte at genkende nogle af de ting, de sagde kom tilbage til dem. Og de finde ud ting om sig selv. Og i virkeligheden, selv eksperterne, selv de psykoterapeuter, begyndte at bekymre sig, at i virkeligheden, måske ELIZA ville være at erstatte dem. Og selv computeren forskere bekymrede, at vi var så tæt på at løse naturligt sprog. Nu, det var ikke et sted tæt på sand. Men det er, hvordan imponerende disse systemer kan synes. Så lad os begynde at se nedenunder og prøv at få en lille smule af et spørgsmål hvor denne kode rent faktisk sker. Så vi vil gøre denne kode tilgængelige bagefter. Og dette er en meget enkel og direkte port af den oprindelige ELIZA gennemførelse. Så nogle af disse stilistiske ting, som du vil se her ikke stilistisk hvad vi ønsker dig til at gøre eller hvad vi har undervist dig at gøre. Men vi har prøvet at holde dem den samme på tværs af de mange havne at dette har haft så den har smag af originalen. Så vi kommer til at omfatte en masse ting, og så vil vi have en sæt søgeord, ting at ELIZA vil genkende og svare direkte. Så hvis du har ord som "kan du" eller "Jeg ikke" eller "nej" eller "ja" eller "drøm" eller "hej", så ELIZA vil reagere selektivt til dem. Vi vil også have en bestemt antal ting at vi vil bytte, ligesom konvertere "min" til "din". Og så vil vi have et sæt svar at for hver af disse kategorier, vi vil rotere igennem disse forskellige reaktioner. Så hvis jeg siger "ja" tre gange i træk, jeg kan få tre forskellige svar fra ELIZA. Vores kode, så er faktisk meget simpel. Hvis jeg rulle ned forbi alle disse reaktioner, som vi har programmeret i og vi kommer ned til vores vigtigste, vi kommer til at initialisere et par forskellige variabler og gøre en lille smule af husholdning i begyndelsen. Men så er der absolut et sæt af kode, som du kan forstå. En stor while-løkke, der siger jeg er kommer til at gentage dette igen og igen. Jeg læste i en linje, og jeg vil gemme disse i en input string. Jeg vil kontrollere og se, om det er den særlige søgeordet "bye", som betyder afslutte programmet. Og så vil jeg kontrollere og se, om nogen er bare gentager sig selv igen og igen. Og jeg vil råbe ad dem, hvis de gør. Jeg vil sige "ikke gentage dig selv." Så længe ingen af ​​dem ske, vi får derefter scanne gennem og sløjfe gennem, på linje 308 til 313 her, og kontrollere og se, er enhver af de nøgleord sætninger indeholdt i input at jeg bare blev givet? Hvis der er et match for dem, og så vil jeg huske denne placering. Jeg vil huske det pågældende søgeord. Og jeg vil være i stand til at opbygge et svar. Hvis jeg ikke kan finde en, ja så, den sidste ting i mit søgeord matrix vil være min standard svar, når intet andet matcher. Jeg vil stille spørgsmål som "Hvorfor gjorde du komme her? "eller" Hvordan kan jeg hjælpe dig? " der er bare delvist passende uanset hvad indgangen er. Vi vil derefter opbygge Elizas svar. Vi vil være i stand til at tage at basen respons, ligesom vi gjorde i, at "min chef" eksempel. Hvis det er alt, der is-- hvis det er bare en streng, som jeg skulle respond-- Jeg kan bare sende det tilbage ud. Hvis den har en stjerne I slutningen af ​​det, så vil jeg behandle hver enkelt token resten af ​​brugerens svar og tilføje dem i, bytte ud ord for ord, som jeg har brug for. Alt dette er absolut noget, du kunne bygge. Og i virkeligheden, de måder, hvorpå vi har forarbejdet kommandolinjeargumenter, den måde, hvorpå du har behandles gennem HTTP-forespørgsler følge de samme slags regler. De er mønster matching. Så ELIZA havde en relativt vigtig indvirkning på naturligt sprog fordi det gjorde det synes som om det var en meget opnåeligt mål, ligesom en eller anden måde vi havde kunne løse dette problem direkte. Nu, det er ikke at sige, at ELIZA gør alt det, vi ønsker at gøre. Bestemt ikke. Men vi bør være i stand til at gøre noget mere. Vores første skridt til at gå ud over ELIZA går at kunne se på ikke tekst, der indtastes i tastaturet, men tale, faktiske tale optaget i en mikrofon. Så som vi ser på disse forskellige stykker, men vi er nødt til at bygge et sæt af modeller. Vi bliver nødt til at være i stand at gå fra akustisk på lavt niveau information-- beg, amplitude, frequency-- og konvertere det til nogle enheder, som vi er stand til lettere at manipulere og endelig manipulere dem til ord og sætninger. Så de fleste talegenkendelse systemer, der er derude i dag følge en statistisk model, hvor vi bygger tre separate gengivelser af, hvad at lydsignalet indeholder faktisk. Vi starter med en fonetisk model der taler om netop basen lyde, som jeg producerer. Er jeg producere noget, der er et B som i dreng eller en D som i hund? Hvordan genkender jeg de to forskellige telefoner som adskilte og forskellige? Oven i dette, vil vi derefter bygge et ord udtale model noget, der forbinder sammen de individuelle telefoner og kombinerer dem i et ord. Og efter det, vil vi tage de ord, og vi vil samle dem med et sprog model i en hel sætning. Nu, vi kommer til at tale om hver af disse uafhængigt og særskilt. Men disse tre modeller er alle bare vil være statistik. Og det betyder, når vi arbejde med dem, vi får kunne arbejde med dem alle samtidigt. Okay. Lad os starte med vores fonetisk model. Så fonetiske modeller stole på en beregningsmæssige teknik såkaldte skjulte Markov modeller. Disse er grafiske modeller, hvor jeg har og genkende en tilstand af verden som er kendetegnet ved et sæt af funktioner. Og at staten beskriver den ene del af en handling, som jeg er engageret i. Så hvis jeg tænke på at gøre lyden "ma" som mor, Der er forskellige komponenter til den lyd. Der er en del, hvor jeg trækker i vejret. Og så er jeg pung mine læber. Og jeg ruller mine læber lidt tilbage bit til at gøre, at "ma" lyd. Og så er der en udgivelse. Mine læber kommer fra hinanden. Luft er bortvist. "Ma." Disse tre forskellige dele ville være repræsenteret af stater i denne graph-- debut, den midterste, og enden. Og jeg ville have overgange, tilladt mig at rejse fra en tilstand til den næste med en vis sandsynlighed. Så for eksempel, at M lyde kan have en meget, meget kort indtag på beginning-- "mm" - og derefter en længere, vibrerende fase, hvor jeg holder min læber sammen og næsten humming-- "mmmm" - og derefter en meget kort klusil hvor jeg udvise breath-- "ma". Den skjulte Markov model er designet til at fange den kendsgerning at den måde, at jeg gør at lyd "ma" går at være en smule anderledes i dens timing, er frekvens, og dens funktioner end den måde, at du gør det eller den måde, at jeg måske gøre det, når jeg taler om forskellige anvendelser af brevet. "Moder" og "kan jeg" vil lyde en smule anderledes. Så for at genkende en bestemt lyd, vi ville opbygge Markov modeller, er disse skjulte Markov modeller af alle mulige telefon, jeg måske ønsker at erkende, alle mulige lyd, og derefter se på akustiske data, som jeg har og bestemme statistisk hvoraf den ene er den mest sandsynlige at have produceret denne lyd. OK. Med denne model, vi så begynde at bygge oven på den. Vi tager en udtale model. Nu undertiden udtale modeller er enkle og nemme fordi der er kun én måde at udtaler noget. Andre gange, de er en lidt mere kompliceret. Her er en udtale guide for den røde ting, der er en frugt, som du gør ketchup ud af. Folk tror ikke, det er en frugt. Højre? Nu er der mange forskellige måder at folk vil udtale dette ord. Nogle vil sige "toe-maj-tå." Nogle vil sige "toe-mah-tå." Og vi kan fange det med en af ​​disse grafiske modeller hvor, igen, repræsenterer vi overgange som havende en vis sandsynlighed og tilhørende sandsynlighed med dem. Så i dette tilfælde, hvis jeg skulle følge den øverste rute gennem hele denne graf, Jeg ville starte på brevet længst til venstre er "ta" lyd. Jeg ville tage den øverste halvdel, den "Åh," og derefter en "ma" og derefter et "a", og derefter en "TA", og en "Åh." "Toe-may-tå." Hvis jeg tog den nederste sti gennem dette, vil jeg få "ta-mah-tå." Og hvis jeg gik ned og derefter op, jeg ville få "ta-may-tå." Disse modeller fange disse forskelle, fordi hver gang vi implementere en af ​​disse anerkendelse systemer, det kommer til at skulle arbejde med masser af forskellige slags mennesker, masser af forskellige accenter, og selv forskellige anvendelser af de samme ord. Endelig, på toppen af ​​det, vi vil bygge noget der ser virkelig kompliceret, kaldet sprogmodel, men i virkeligheden er den enkleste af de tre fordi disse fungerer på det, der kaldes n-gram-modeller. Og i dette tilfælde, jeg viser dig en todelt n-gram model, en bigram. Vi kommer til at gøre fysisk ideen at nogle gange, visse ord er mere tilbøjelige til at følge en givet ord end andre. Hvis jeg bare sagde "vejrudsigt" det næste ord kunne sandsynligvis være "i dag" eller kan være "vejret prognose i morgen. " Men det er usandsynligt, at være " vejrudsigt artiskok. " Hvad et sprog model gør, er det fanger dem statistisk ved at tælle, fra nogle meget store Corpus, alle forekomster hvor ét ord følger anden. Så hvis jeg tager en stor corpus-- ligesom alle Wall Street Journal der er blevet produceret siden 1930, som er en af ​​standard corpuses-- og jeg ser gennem alle denne tekst, og jeg regner op, hvor mange gange efter "prognose" ser jeg "i dag" og hvor mange gange skal jeg se "prognose" efterfulgt af "artiskok" den første går til at være meget mere sandsynligt. Det kommer til at blive vist langt oftere. Og så det vil have en højere sandsynlighed er forbundet med det. Hvis jeg ønsker at finde ud af sandsynlighed for en hel ytring, så jeg bare bryde det op. Så sandsynligheden for hørelse sætningen "rotten spiste ost" er sandsynligheden for ordet "den" starter en sætning, og derefter sandsynligheden for, at ordet "rotte" følger ordet "den" og sandsynligheden for, at Ordet "spiste" følger "rotte" og sandsynligheden for, at "ost" følger "spiste". Det lyder som en masse statistik, en masse af sandsynligheder. Og det er alt, hvad det er. Men den forbløffende ting er, hvis du gør dette med en tilstrækkelig stor prøve af data, det virker. Og det fungerer uhyre godt. Vi kender alle disse teknologier. De fleste operativsystemer kommer med stemmegenkendelse på dette tidspunkt. Vi bruger Siri og Cortana og Echo. Og disse ting er baseret på denne type trelags model-- en fonetisk model nederst, en udtale model i midten, og en sprogmodel oven på dem. Nu er de nødt til at gøre en lille smule mere end, at for at besvare spørgsmål. Men anerkendelsen af, hvad du er ordsprog afhænger nøjagtigt på det. Så lad os tage et eksempel her. Så jeg har min telefon sidder heroppe under dokumentkameraet. Og vi kommer til at spørger Siri et par spørgsmål. Okay? Så lad os vågne op min telefon her. Siri, hvad er vejret ligesom i New Haven i dag? SIRI: Her er vejret for New Haven, Connecticut i dag. BRIAN Scassellati: OK. Så først du så, at Siri anerkendt hver af de enkelte ord og derefter produceret en reaktion. Vi taler om, hvordan dette svar kommer omkring i en lille smule. Men nu, hvor vi ved at dette blot er baseret på de rå statistik og dette mønstersammenligning type tilgang, vi kan spille nogle spil med Siri. Så jeg kan prøve igen. Siri, hvad er vejret flodhest New Haven, i dag? SIRI: OK. Her er vejret for New Haven, Connecticut for i dag. BRIAN Scassellati: Siri s ikke skræmt af det fordi det er fundet pattern-- "vejr", "i dag", "New Haven." Det er, hvad det er at reagere til, ligesom ELIZA. Okay. Lad os give det en mere selv mere latterligt eksempel. Siri, vejr artiskok bæltedyr flodhest New Haven? SIRI: Lad mig kontrollere på det. Her er hvad jeg fandt på nettet for hvad er artiskokker bæltedyr flodhest New Haven. BRIAN Scassellati: OK. Så hvis jeg går langt nok væk fra denne model, Jeg er i stand til at forvirre det, fordi det ikke længere matcher det mønster, at det har. Og det statistiske motor, der siger, hvad er sandsynligheden for, at du har fået ordene flodhest og artiskok sammen og bæltedyr? Det er nødt til at være noget nyt. Så disse teknologier, vi bruger hver dag. Hvis vi ønsker at tage dem et skridt yderligere, men hvis vi faktisk ønsker at være i stand til at tale om, hvad det er, at disse systemer reagerer på, vi nødt til at tale igen, om et mere grundlæggende sæt af spørgsmål. Og det er et emne i kommunikation som vi kalder spørgsmål besvarelse. Det vil sige, at vi ønsker at kunne at-- ja? PUBLIKUM: [uhørligt]. BRIAN Scassellati: Har vi får i latent semantisk behandling? Så ja. Der er en masse ting, som er sker under overfladen med Siri og i nogle af eksemplerne Jeg har tænkt mig at vise dig næste hvor der er ganske lidt i form af strukturen af, hvad du siger, det er vigtigt. Og i virkeligheden, det er en stor forløber for det næste dias for mig. Så på samme måde som vores talegenkendelse blev bygget op af flere lag, hvis vi ønsker at forstå, hvad det er, der er faktisk er sagt, vil vi igen afhængige af en flerlaget analyse af teksten, der bliver anerkendt. Så når Siri er faktisk i stand til at sige, ser jeg fandt disse ord. Nu, hvad skal jeg gøre med dem? Den første komponent er ofte at gå igennem og forsøge at analysere strukturen af ​​sætningen. Og i det, vi har set i folkeskolen, ofte, som en slags diagrammer sætninger, vi kommer at erkende, at visse ord har bestemte roller. Disse er navneord. Disse er stedord. Disse er verber. Og vi kommer til at genkende at for en bestemt grammatik, i dette tilfælde engelsk grammatik, der er gyldige måder, hvorpå jeg kan kombinere dem og andre måder, der ikke er gyldige. Denne anerkendelse, den struktur, kan være nok til at hjælpe med at guide os en lille smule. Men det er ikke helt nok for os at være i stand til at give nogen betydning for, hvad der bliver sagt her. For at gøre dette, vil vi nødt til at stole på en vis mængde af semantisk forarbejdning. Det vil sige, at vi er nødt til at kigge på undersiden, hvad hver af disse ord faktisk driver som en betydning. Og på den enkleste måde at gøre dette, vi kommer til at associere med hvert ord at vi ved en bestemt funktion, en vis transformation, at det gør det muligt at ske. I dette tilfælde, kan vi mærke Ordet "John" som et egennavn, at det bærer med sig en identitet. Og vi kunne mærke "Mary" som på samme måde. Hvorimod et verbum som "elsker", som udgør en særlig forhold at vi er i stand til at repræsentere. Nu betyder det ikke, at vi forstår hvad kærlighed er, men kun, at vi forstår det i vejen for en symbolsk system. Det vil sige, at vi kan mærke det og manipulere den. Med hver af disse typer af fremgangsmåder, enhver form for semantisk behandling her vil kræve lidt lidt viden og en masse arbejde fra vores side. Vi er ikke længere i realm hvor bare plain statistik vil være nok for os. Nu, med henblik på at gå fra dette punkt til at være stand til at tale om indersiden af hvad der rent faktisk sker her, at være i stand til at håndtere denne strukturere og forstå et spørgsmål og derefter være i stand at gå ud og søge, der kræver en mere komplekse kognitive model. Den måde, hvorpå disse systemer er bygget er for det meste meget, meget arbejdskraft intensiv. De omfatter mennesker tilbringe en hel del af tiden strukturere de måder, som disse former for sætninger kan repræsenteres i en vis logik. Det bliver endnu en lille mere kompleks, selv om. Selv når vi har behandlet med semantik, vi får stadig nødt til at se på pragmatik af hvad der bliver sagt. Det vil sige, hvordan jeg relaterer ordene at jeg er nødt til noget fysisk ud der i verden eller på mindste nogle informationskilde at jeg kan manipulere? Undertiden disse fører til vidunderlige stumper af tvetydighed. "Rød-hot stjerne at gifte astronom." OK. Nu læser vi, at da sjove type overskrift at vi ville se på late night tv fordi vi ikke fortolker "stjerne" at have sin himmellegeme betydning. Vi ved, at det betyder mere hverdagskost skuespiller med store mængder af synlighed. "Squad hjælper hundebid offer." Er det, at holdet er faktisk derude hjælpe en hund i at gå rundt og bide ofre? Eller er det, at der var en person, der var bidt af en hund, der havde brug for hjælp? Lige fra at se på syntaksen og semantik af sætningerne, Vi kan ikke afgøre det. "Helicopter drevet af menneskelige fluer." Er der i virkeligheden faktisk små ting, der flyver omkring dette er mennesker med vinger kraftoverførsel helikoptere til gavn for menneskeheden? Eller er der en mekanisk anordning der får sin strøm fra en person? Når vi ser på spørgsmål besvarelse systemer, disse er de lag, vi nødt til at beskæftige sig med. Nu er den bedste og den mest sortere af udbredt af disse systemer dag er i stand til at gøre ting på et niveau, der er langt ud over det, vi havde for 10 år siden. Her er en af ​​de bedste systemer det er derude i dag. Og dette er et system fra IBM kaldes Watson. Dette er fra vores venner på IBM. Dette er Katherine banker, Jia Chen, og Priscilla Moraes giver os en demonstration af Watson i går i IBM Yorktown. [VIDEO PLAYBACK] -Hvordan har du det? -Jeg har det godt. Jeg er altid glad, når jeg er tænker, især når jeg kan holde hovedet koldt i disse serverrum. Hvem er din yndlings skuespiller? -min Yndlings skuespiller Angelina Jolie som Lara Croft i Tomb Raider, fordi hendes oprindelige formular var som en virtuel karakter som mig. -Hvordan Kan Watson hjælpe patienter? -er Planen for patienter til har adgang til Watson direkte? Adgang til Watson rådgivende applikationer vil variere fra use case. Men i øjeblikket, vil kun give Watson mulig diagnose og behandling indstillinger til læge. Hvor det er hensigtsmæssigt, patienter kan give oplysninger til Watson, måske gennem en portal web interface, tablet, eller endda en mobiltelefon. For eksempel kan en patient være bedt om at beskrive deres symptomer i naturligt sprog direkte i en Watson-opløsning, at lægen kan fokusere på diagnose og ikke dataindsamling. -Hvem Myrdet Abraham Lincoln? -John Wilkes Booth. -I Hvilket år gjorde Arizona Diamondbacks vinde World Series? -2001. [END AFSPIL] BRIAN Scassellati: Så disse typer af systemer nødt til at stole på først anerkender tale; anden, omdanne den til en meningsfuld intern repræsentation; og derefter, tredje, at kunne gå ud og finde informationskilden, som giver dem mulighed for at besvare dette spørgsmål. Dette niveau af kompleksitet indebærer de samme typer af programmatiske ting at du har været gør i problemområder sæt. Vi er i stand til at parse HTTP-anmodninger i samme type lavt niveau mønster matching som ELIZA kan gøre. Vi er i stand til at konvertere dem til en intern repræsentation, og derefter bruge dem til at forespørge nogle ekstern database, eventuelt ved anvendelse af SQL. Alle de systemer, er ved at blive bygget i dag at gøre denne type af naturlige sprog kommunikation er ved at blive bygget på disse samme principper. Nu, selv et system som Watson er ikke kompliceret nok at være i stand til at svare på vilkårlige spørgsmål om ethvert emne. Og i virkeligheden, de skal være struktureret inden for en given domæne. Så du kan gå online og du kan finde versioner af Watson, der opererer godt inden for medicinsk informatik. Eller der er en online der bare beskæftiger sig med, hvordan at gøre gode anbefalinger om hvad øl vil gå med hvilken mad. Og inden for disse domæner, det kan besvare spørgsmål, finde de oplysninger, den har brug for. Men du kan ikke mikse og matche dem. Systemet, der er blevet uddannet med databasen over fødevarer og øl fungerer ikke godt, når du pludselig sætte det i med den medicinske informatik database. Så selv vores bedste systemer i dag stole på et niveau af behandling hvor vi er hånd kodning og bygning i infrastruktur for at dette system kan køre. Nu er den sidste emne, jeg vil have at kunne komme til dag handler om nonverbal kommunikation. En stor masse af information, der vi kommunikerer med hinanden ikke ske gennem enkelte ord, som vi anvender. Det har at gøre med ting som nærhed, blik, dit tonefald, din bøjning. Og at kommunikation er også noget, som mange forskellige grænseflader pleje meget om. Det er ikke, hvad Siri bekymrer sig om. Jeg kan spørge Siri noget i én stemme eller i et andet tonefald, og Siri kommer til at give mig det samme svar. Men det er ikke det, vi bygger for mange andre typer af grænseflader. Jeg ønsker at introducere dig nu et af de robotter. Dette blev bygget af min mangeårige ven og kollega Cynthia Breazeal og hendes firma Jibo. Og denne robot-- vi vil at have et par frivillige komme til at interagere med dette. Så kan jeg have to mennesker er villige at lege med robotten for mig? Hvorfor tager du ikke kommer videre op, og hvorfor ikke du kommer videre op. Hvis du gerne slutte mig op her, tak. Og hvis jeg kunne have dig kommer lige herovre. Tak. Hej. ALFREDO: Rart at møde dig. Alfredo. BRIAN Scassellati: Alfredo. RACHEL: Rachel. BRIAN Scassellati: Rachel. Rart at møde jer begge. Alfredo, jeg har tænkt mig at have dig gå først. Kom lige op her. Jeg har tænkt mig at indføre du-- hvis jeg kan få dette fra uden at banke den microphone-- til en lille robot ved navn Jibo. OK? Nu er Jibo designet til at være interaktivt. Og selv om det kan give dig tale, meget af interaktionen med robotten er nonverbal. Alfredo, jeg har tænkt mig at bede dig om at sige noget pænt og gratis til robotten, tak. ALFREDO: Jeg tror, ​​du ser sød. [Snurrende lyd] BRIAN Scassellati: OK. Sit svar er ikke verbal. Og alligevel gav dig både en klar anerkendelse at det havde hørt, hvad du sagde og også på en måde forstået. OK? Træd tilbage her i et sekund. Tak. Rachel, hvis du ville. Nu, jeg har tænkt mig at give dig meget sværere opgave. Hvis du gerne stå lige her, sikkerhedskopiere bare en lille smule, så vi kan få dig på kamera og ser på denne måde. Jeg har tænkt mig at bede dig om at sige noget virkelig betyder og væmmeligt til robotten. RACHEL: Hvad du syntes bare at gøre, var fuldstændig absurd. [Summende lyd] Det var endnu mere absurd. Hvad sker der med dig? Øv, ikke føler sig dårligt. Jeg vil give dig et knus. BRIAN Scassellati: Okay. Tak, Rachel. Alfredo, Rachel, tak fyrene meget. [BIFALD] Så denne form for interaktion har i mange måder nogle af de samme regler og nogle af de samme struktur som hvad vi kan have i sproglig interaktion. Det er både kommunikative og tjener et vigtigt formål. Og at interaktionen i mange måder, er designet at have en særlig effekt på person, interagere med eller lytte til robotten. Nu, jeg er heldig nok at have Jibo her i dag. Sam Spaulding er her at hjælpe os ud med robotten. Og jeg har tænkt mig at spørge Sam til at give os en pæn demo af Jibo dans at vi kan se i slutningen her. Så gå videre, Jibo. SAM: OK, Jibo. Vis os dine dansetrin. [Musik spiller] BRIAN Scassellati: Okay, alle sammen. Tak til vores venner på Jibo. [BIFALD] Og tak til vores venner på IBM til at hjælpe ud i dag. Kommunikation er noget at du vil at se kommer op mere og mere som vi bygger mere komplekse grænseflader. I næste uge vil vi tale om, hvordan interface med computer modstandere i spil. Men hvis du har spørgsmål om dette, Jeg vil være rundt på kontortid i aften. Jeg er glad for at snakke med dig om AI emner eller for at få mere i detaljer. Hav en god weekend. [BIFALD] [Musik spiller]