[MUSIK SPELA] DAVID MALAN: Detta är CS50. Detta är slutet av vecka 10. Och pojke, har vi en bra klass för dig idag. Vi är så glada att bjuda in två av våra vänner från Yale upp till oss i dag och att titta på skärningspunkten mellan artificiell intelligens, robotik, naturliga språk, och mer. Och faktiskt, över senaste veckorna, vi har säkert tillbringade en hel del tid, särskilt i de tidigare psets, med fokus på ganska låg nivå detaljer. Och det är mycket lätt att glömma bort av skogen för alla träd och få hängas upp på loopar och villkor och pekare, förvisso, och liknande. Men verkligheten är ni nu har ingredienser som du verkligen kan lösa några intressanta problem, bland dem dessa som våra vänner på Yale arbeta på bara blyg av Cambridge. Så låt mig först med att introducera vårt huvud lärarassistent från Yale, Andy. [APPLÅDER] ANDY: Först av allt, bara tacka du för att låta ett par Yalies pop ner till Cambridge idag. Vi uppskattar verkligen det. Dels till våra vänner tillbaka home-- Jason, Tack för att stanna och köra föreläsning. Hoppas det är allt bra i New Haven. Så ja, jag är superglad att införa SCAZ idag. SCAZ driver robotlabb. Han är professor i, typ, fem olika avdelningar vid Yale. I sitt labb, har han många, många robotar som han gillar att leka med. Han har, liksom den coolaste jobbet i världen. Och han får typ av röran runt med det hela dagen lång och göra en del arbete, liksom. Och så att vi faktiskt tog en Av dem ner med oss ​​i dag. Så utan vidare, är SCAZ kommer att gå vidare och presentera oss till sin robot vän. [APPLÅDER] BRIAN Scassellati: Tack, David. Tack, Andy. Det är så underbart att vara här med alla idag. Jag vill först vara mycket tydligt att den CS50 personal här i Cambridge har varit otroligt gästvänliga för oss. Vi är så tacksamma för allt de har gjort för att stödja oss. Och så skulle vi vilja kunna att återvända vänlighet. Så idag, vi får tillkännage att vi kommer att ha en ny, one-of-a-kind CS50 händelse händer i New Haven nästa vecka. Och detta är CS50 Research Expo. Så vi kommer att bjuda in everyone-- CS50 studenter, personal från både Harvard och Yale-- till komma ner och besöka oss på fredag. Vi kommer att ha ett brett utbud av mer än 30 olika personer som uppvisar och exhibiting-- upperclassmen visar ut en del av sina forskningsprodukter. Vi kommer att ha några starter, med, ser för en liten bit av ny teknik talang, startups från både Harvard och Yale. Och vi kommer att ha vissa elevgrupper letar efter något nytt medlemskap. Det kommer att bli en mycket spännande tid. Förhoppningsvis de av er som är coming down för Harvard-Yale spel kommer att kunna stoppa med lite tidigt, mitt i centrum av campus, Sterling Memorial Library. Vi kommer att ha en uppsättning utställningar som sträcker sig från autonoma segelbåtar till sätt att använda programvara att bevara medeltida handskrifter. Vi kommer att ha en annons hoc-nätverk och människor pedagogisk programvara kodning i Kapstaden. Vi kommer att ha dator musik demonstrationer. Och vi kommer naturligtvis att ha flera robotar. Så vi hoppas att du ansluta sig till oss för detta evenemang. Det bör finnas en hel del roligt, lite mat, och en hel del intressant saker att prata om. Så idag ska vi prata om behandling av naturligt språk. Och detta är ett försök för oss att bygga ett nytt sätt att samverkan med våra produkter på grund av under de senaste veckorna, du har fokuserats på hur det är att Du kan skriva kod, skriva program det är ett sätt att kunna säga till en maskin, detta är vad jag vill att du gör. Men vi ska inte behöva förvänta sig att allt det är där ute som används av alla i världen kommer att vara skickliga i denna typ av undervisning. Så vi skilja mellan dator språk och naturliga languages-- det vill säga saker som människor använder att kommunicera med andra människor. Och vi försöker att bygga gränssnitt som använder dessa naturliga kommunikationsmekanismer. Nu, precis som alla andra ämne att vi har börjat med i CS50, Vi ska börja med den enklaste bit av naturligt språk att vi kan föreställa oss. Vi kommer att börja med historiska delen av naturligt språk. Och sedan ska vi bygga upp till fler och fler nya system och har några roliga demonstrationer längs vägen. Så vi kommer att börja med vad som var förmodligen den första naturligt språk behandlingssystemet. Detta var ett programvarusystem skrivet i 1966 av Joseph Weizenbaum kallas ELIZA. Och Eliza var avsedd att replikera typ av interaktion du skulle ha med en Rogerian psykoterapeut. Nu är Rogerians, de hade en idé som psykoterapi inblandade att kunna spegla tillbaka till en patient och prata med dem, princip, bara genom att ge dem en liten, liten bit av terapeuten. Det vill säga, allt att terapeuten sa var tänkt att vara bara en återspegling av vad patienten berättade för dem. Så låt oss försöka och demo redan. Har vi en volontär som skulle vara villiga att dela sin djupaste, mörkaste, och / eller falska hemligheter med ELIZA? Visst, varför inte du kommer på dig. Fantastisk. Och ditt namn? MILES: Miles. BRIAN Scassellati: Miles. Trevligt att träffa dig, Miles. Om du vill hålla fast vid det. Och vi kommer att Använd en version av ELIZA att vi har replik inom CS50 IDE. Och vi kommer att titta på käll kod till detta om en liten stund. Men just nu, vi är bara kommer att åberopa den genom att skriva eliza. Och Eliza kommer att ge dig svar som kommer att vara i alla huvudstäder. Och kommer att ställa några frågor. Och vi kommer att svara och skriv i svar på ELIZA. Så ELIZA har sagt: "Hej, jag heter ELIZA. Vad är ditt problem?" Vad skulle du vilja berätta ELIZA om idag? MILES: Jag kan bara somna om jag har kaninhäftklammermatare på. BRIAN Scassellati: Okej. Okej. [SKRATT] "Jag kan bara somna med kaninhäftklammermatare på. " Och Eliza säger "Säg, gör du har några psykiska problem? Kanske detta är en bra indikator. " OK. Så vad vill du svara? MILES: Ja. BRIAN Scassellati: Ja. Man med många ord. Jag tycker det. Eliza säger: "Du verkar ganska positiv." MILES: Nej, jag är i själva verket en elektron. BRIAN Scassellati: "Nej. I själva verket är jag en elektron. " "Har du kommit till mig eftersom du är en elektron? " Nu kan vi se några av den saker-- jag ska att pausa dig för bara en sekund, Miles. Inte gå någonstans. Vi är inte klar med dig än. ELIZA är, på sätt och vis, att svara på vissa saker att han säger, men utan någon verklig förståelse. Och det är också parroting tillbaka en del av de delar av sitt straff. Så vi sa, "Nej. I själva verket är jag en elektron. " Eliza svarade tillbaka, "Har du kommit för mig eftersom du är en elektron? " Okej. Låt oss ge det en mer svar här. Ge det en bra, Miles. MILES: Bra ett? Ja, snälla hjälp mig. BRIAN Scassellati: "Ja. Snälla hjälp mig. "" Är du säker? " MILES: Nej BRIAN Scassellati: Nej "Vad betyder det föreslår till dig?" MILES: Jag kan inte vara en elektron. BRIAN Scassellati: "Jag kanske inte är en elektron. " "Menar du att någon bara för att vara negativ?" Okej. Så Miles, tack så mycket. MILES: Tack. BRIAN Scassellati: Tack så mycket. [APPLÅDER] Så detta ELIZA programmet, på många sätt, svarar bara för bitarna att vi ger utan djup förståelse för vad som händer här. Detta är en typ av system kallas mönstermatchning, där Vi letar efter vissa bitar av text som vi är sedan kommer att ta ut vad tillhandahölls som indata, konvertera det, potentiellt, på något sätt, och sedan ge den tillbaka till användaren. Gör något av er tror att ELIZA är faktiskt utför giltig psyko här? En person, kanske. PUBLIK: [OHÖRBAR]. BRIAN Scassellati: Och hur Gör det du känner? Ja, i själva verket gör det. Och vi kommer att se, faktiskt, den Källkoden för det på bara ett ögonblick. Och så att du kommer att vara kunna göra just detta. Nu är ELIZA en form av vad vi skulle kalla idag en chat bot. Det går bara igenom text som du ger, ger ett absolut minimibelopp förståelse eller behandling och sedan papegojor det tillbaka till dig. Så låt oss ta en titt, konceptuellt, och tala om vad det är att ELIZA faktiskt gör. ELIZA tar en sentence-- låt oss säger: "Jag vill imponera min chef." Och Eliza ser genom den meningen och försöka hitta och matcha vissa mönster. Så, till exempel, ett av mönstren att ELIZA är ute efter är de ord "Jag vill." Och varje gång det ser något som har "jag vill" i det, Det formulerar ett svar. Och att svaret är en fast sträng. I det här fallet är det "varför vill du?" Och jag satte en liten stjärna på slutet eftersom det är bara I början av vårt svar. Och stjärnan visar att vi kommer att ta resten av användarens utterance-- "att imponera på min chef" - och vi kommer att lägga det på änden av denna sträng. Så nu, istället för att säga, "varför vill du imponera på min chef, " det finns en liten bit av ytterligare bearbetning som vi ska göra. Det vill säga, vi måste omvandla en del av de pronomen här från "min chef" till "din chef." Och det kan finnas några andra förändringar som vi måste göra. Så i stället för att bara sticker direkt på slutet, vad vi ska göra är vi tar resten av användarens utterance-- i vitt här-- och vi tar det en bit i en tid och konvertera varje sträng token, varje ord, i meningen. Så vi tar ordet "till." Det finns ingen omvandling att vi måste göra det. "Imponera på." Det finns ingen omvandling vi behöver göra det. "Min" kommer att konvertera till "din". Och "boss" vi ska bara lämna som "boss". Och slutligen, vad som helst som slutar med en period, vi ska omvandla den till en fråga. Detta mycket enkla mönstermatchning är faktiskt ganska framgångsrik. Och när detta infördes i 1966-- Joseph Weizenbaum programmerat detta på en dator. Nu, datorer på den tiden var inte stationära modeller. De delades resurser. Och hans studenter skulle gå och prata med ELIZA. Till slut var han tvungen att begränsa tillgången till det eftersom hans elever var inte få något arbete gjort. De var bara chatta med ELIZA. Och i själva verket var han tvungen att brand hans assistent, som bringat all sin tid att tala med ELIZA om hennes djupa och oroande problem. Alla som använt dessa system började lik människan dem. De började att tänka på dem som är levande och verkliga människor. De började att känna igen några av de saker som de säger kom tillbaka till dem. Och de var att ta reda på saker om sig själva. Och i själva verket, även experterna, även psykoterapeuter, började oroa sig för att, i själva verket, kanske ELIZA skulle ersätta dem. Och även om datorn Forskarna oroar sig för att vi var så nära att lösa naturligt språk. Nu var det inte någonstans nära till true. Men det är hur imponerande dessa system kan tyckas. Så låt oss börja titta undertill och försök att få en liten bit av en fråga var denna kod faktiskt händer. Så vi kommer att göra denna kod tillgänglig i efterhand. Och detta är en mycket enkel och direkt port av den ursprungliga genomförandet ELIZA. Så en del av dessa stilist saker som du ser här är inte stilist vad Vi vill att du ska göra eller vad vi har att lära dig att göra. Men vi har försökt att hålla dem samma över många hamnar att detta har haft så att det har smak av originalet. Så vi kommer att inkludera en massa saker, och sedan kommer vi att ha en uppsättning sökord, saker att ELIZA kommer att känna igen och svara på direkt. Så om du har ord som "kan du" eller "Jag vet inte" eller "nej" eller "ja" eller "dröm" eller "Hej" och sedan ELIZA kommer att svara selektivt till dem. Vi kommer också att ha en visst antal saker att vi kommer att byta, liksom omvandla "min" till "din". Och då kommer vi att ha ett antal svar att för var och en av dessa kategorier, vi ska rotera dessa olika reaktioner. Så om jag säger "ja" tre gånger i rad, jag kan få tre olika svar från ELIZA. Vår kod, då är faktiskt anmärkningsvärt enkel. Om jag bläddra ner förbi alla dessa reaktioner som vi har programmerat in och vi får ner till våran, vi kommer att initiera ett par olika variabler och göra lite städning i början. Men sedan finns det absolut en uppsättning kod som du kan förstå. En stor medan slinga som säger att jag är kommer att upprepa detta om och om igen. Jag ska läsa i en linje, och jag ska lagra den i en inmatningssträng. Jag ska kolla och se om det är speciella nyckelordet "bye", som innebär avsluta programmet. Och sen ska jag kolla och se om någon bara upprepar sig om och om. Och jag ska skrika på dem om de gör. Jag ska säga "inte upprepa dig själv." Så länge ingen av dem hända, vi ska sedan söka igenom och slinga genom, på ledningarna 308 till 313 här, och kontrollera och se är några av de sökord fraser som ingår i inmatnings att jag bara fick? Om det finns en match för dem, och då kommer jag ihåg den platsen. Jag kommer ihåg det sökordet. Och jag kommer att kunna bygga ett svar. Om jag inte hittar en, ja då, det sista i min sökords array kommer att vara mina standardsvaren, när inget annat matcher. Jag ska ställa frågor som "Varför gjorde du hit? "eller" Hur kan jag hjälpa dig? " som bara delvis är lämpligt oavsett vad ingången är. Vi kommer sedan bygga upp ELIZA svar. Vi kommer att kunna ta denna bas svar, precis som vi gjorde i att "min chef" exempel. Om det är allt som finns är-- om det bara är en sträng som jag ska respond-- Jag kan bara skicka det tillbaka ut. Om den har en asterisk på I slutet av det, då ska jag behandla varje enskild token i resten av användarens svar och lägga till dem i, byta ut ord för ord som jag behöver. Allt detta är absolut något som du kan bygga. Och faktiskt, det sätt på vilket vi har bearbetat kommandoradsargument, det sätt på vilket du har bearbetas genom HTTP-förfrågningar följa samma slags regler. De är mönstermatchning. Så ELIZA hade en relativt viktig inverkan på naturligt språk eftersom det gjorde det verkar som om det var en mycket realistiskt mål, som på något sätt skulle vi kunna lösa detta problem direkt. Nu, som inte är att säga att ELIZA gör allt som vi skulle vilja göra. Absolut inte. Men vi bör kunna att göra något mer. Vårt första steg att gå bortom ELIZA går för att kunna titta på inte text matas in i tangentbordet men tal, faktiska tal registreras i en mikrofon. Så som vi ser på dessa olika delar, vi är kommer att behöva bygga en uppsättning av modeller. Vi kommer att behöva för att kunna att gå från låg nivå akustiska information-- beck, amplitud, frequency-- och omvandla det till vissa enheter som vi är kunna lättare manipulera och slutligen manipulera dem i ord och meningar. Så de flesta taligenkänning system som finns där ute idag följa en statistisk modell där vi bygger tre separata representationer av vad att ljudsignalen faktiskt innehåller. Vi börjar med en fonetisk modell som talar om just basen ljud som jag producerar. Jag producera något som är B som i pojke eller en D som i hund? Hur känner jag igen dessa två olika telefoner som separata och distinkta? Ovanpå det, ska vi sedan bygga ett ord uttal modell, något som binder samman de enskilda telefoner och kombinerar dem i ett ord. Och efter det, tar vi orden och vi kommer att sätta ihop dem med ett språk modell till en hel mening. Nu ska vi prata om varje av dessa oberoende och separat. Men dessa tre modeller är alla bara kommer att bli statistik. Och det betyder när vi arbeta med dem, vi ska kunna arbeta med dem alla samtidigt. Okej. Låt oss börja med vår fonetiska modell. Så fonetiska modeller lita på en beräkningsteknik kallade dolda Markov-modeller. Dessa är grafiska modeller där jag har och erkänna en stat i världen som kännetecknas genom en uppsättning funktioner. Och detta tillstånd beskriver å ena sidan en åtgärd som jag sysslar med. Så om jag tycker om att göra ljudet "ma" som mamma, det finns olika komponenter till ljudet. Det finns en del där jag dra in andan. Och då jag handväska mina läppar. Och jag rullar mina läppar tillbaka lite bit för att göra det "ma" ljud. Och så finns det en release. Mina läppar faller isär. Luft utvisas. "Ma." Dessa tre olika delar skulle vara representeras av stater i denna graph-- början, mitten och slutet. Och jag skulle ha övergångar som tillät mig att resa från en stat till nästa med en viss sannolikhet. Så, till exempel, att M ljud kan ha en mycket, mycket kort intag vid beginning-- "mm" - och sedan en längre, vibrations fas där jag höll min läppar tillsammans och nästan humming-- "mmmm" - och sedan en mycket kort klusil där jag utvisa breath-- "ma". Den dolda Markov-modellen är utformade för att fånga det faktum att det sätt som jag gör att ljudet "ma" kommer att vara något olika i Tidpunkt, är frekvensen, och dess funktioner än det sätt som du gör det eller det sätt som jag kan gör det när jag pratar om olika användningar av brevet. "Mother" och "kan jag" kommer låter lite annorlunda. Så för att känna igen en visst ljud, vi skulle bygga Markov-modeller, dessa dolda Markov modeller, av alla möjliga telefon som jag kanske vill erkänna, alla möjliga ljud, och sedan titta på akustiska data som jag har och bestämma statist vilken som är den mest sannolika en att ha producerat detta ljud. OK. Med denna modell, vi sedan börja bygga ovanpå den. Vi tar en uttal modell. Nu, ibland uttal modeller är enkla och lätta eftersom det finns bara en sätt man uttalar något. Andra gånger, de är en lite mer komplicerat. Här är en uttals för det röda sak som är en frukt som du gör ketchup ur. Folk tror inte att det är en frukt. Höger? Nu finns det många olika sätt att människor kommer att uttala ordet. Vissa kommer att säga "toe-maj-tå." Vissa kommer att säga "toe-mah-tå." Och vi kan fånga det med en av dessa grafiska modeller där, återigen, vi representerar övergångar som har en viss sannolikhet och tillhörande sannolikhet med dem. Så i det här fallet, om jag skulle följa topp vägen genom hela denna graf, Jag skulle börja på brevet längst till vänster, den "ta" ljud. Jag skulle ta den övre halvan, den "Åh," och sedan en "ma" och sedan ett "a" och sedan en "ta" och en "oh." "Toe-maj-tå." Om jag tog botten väg genom detta kommer jag att få "ta-mah-tå." Och om jag gick ner och sedan upp, jag skulle få "ta-maj-tå." Dessa modeller fånga dessa skillnader för när Vi distribuerar ett av dessa erkännande system, det kommer att behöva arbeta med massor av olika typer av människor, massor av olika accenter, och även olika användningar av samma ord. Slutligen, på toppen av det, Vi ska bygga något som ser riktigt komplicerat, kallas språkmodellen, men i själva verket är det enklaste av den tre eftersom dessa fungerar på så kallade n-gram modeller. Och i detta fall, jag visar dig en tvådelad n-gram modellen, en bigram. Vi kommer att göra fysiska idén som ibland, vissa ord är mer benägna att följa en givet ord än andra. Om jag sa bara "väderprognos" nästa ord skulle sannolikt vara "i dag" eller kan vara "vädret prognos i morgon. " Men det är osannolikt att vara " väderprognos kronärtskocka. " Vilken språkmodell gör är den fångar de statist genom att räkna, från några mycket stora corpus, alla instanser i vilket ett ord följer en annan. Så om jag tar en stor corpus-- som varje Wall Street Journal som har producerats sedan 1930, vilket är en av standard corpuses-- och jag ser igenom alla texten, och jag räknar upp hur många gånger efter "prognos" gör jag ser "i dag" och hur många gånger ser jag "prognos" följt av "kronärtskocka" den första går att vara mycket mer benägna. Det kommer att visas mycket oftare. Och så det ska ha en högre sannolikhet i samband med det. Om jag vill räkna ut Sannolikheten för en hel yttrande, då, jag bara bryta upp. Så sannolikheten för förhandlingen meningen "råttan åt osten" är sannolikheten för ordet "" start en mening, och sedan sannolikheten för att ordet "råtta" följer ordet "den" och sannolikheten att den ordet "åt" följer "råtta" och sannolikheten att "ost" följer "åt." Detta låter som en hel del statistik, en hel del sannolikheter. Och det är allt som det är. Men det fantastiska är om du gör detta med en tillräckligt stor prov av data, det fungerar. Och det fungerar oerhört bra. Vi vet alla dessa tekniker. De flesta operativsystem komma med röstigenkänning på denna punkt. Vi använder Siri och Cortana och Echo. Och dessa saker är baserade på denna typ av tre-skikt model-- en fonetisk modell i botten, en uttal modell i mitten, och en språkmodell ovanpå dem. Nu måste de göra en lite mer än att för att svara på frågor. Men erkännandet av vad du ordspråket beror just på det. Så låt oss ta ett exempel här. Så jag har min telefon sitter här uppe under dokumentkamera. Och vi kommer att uppmanas Siri några frågor. Okej? Så låt oss vakna upp min mobiltelefon. Siri, vad är vädret som i New Haven i dag? SIRI: Här är vädret för New Haven, Connecticut idag. BRIAN Scassellati: OK. Så du först såg att Siri igen vart och ett av de enskilda ord och sedan producerade ett svar. Vi pratar om hur detta svar kommer till stånd i en liten bit. Men nu när vi vet att detta bara är baserad på rå statistik och detta mönstermatchning typ av strategi, vi kan spela vissa spel med Siri. Så jag kan försöka igen. Siri, vad är vädret flodhäst New Haven, idag? SIRI: OK. Här är vädret för New Haven, Connecticut för i dag. BRIAN Scassellati: Siris inte skrämda av det eftersom det är hittat pattern-- "väder", "idag", "New Haven." Det är vad det svarar till, precis som ELIZA. Okej. Låt oss ge det en jämnare mer löjligt exempel. Siri, väder kronärtskocka bältdjur flodhäst New Haven? SIRI: Låt mig kontrollera det. Här är vad jag hittade på webben för vad är kronärtskockor bältdjur flodhäst New Haven. BRIAN Scassellati: OK. Så om jag går tillräckligt långt borta från denna modell, Jag kan förvirra det eftersom det inte längre matchar mönster som den har. Och det statistiska motor som säger, Vad är sannolikheten för att du har orden flodhäst och kronärtskocka tillsammans, och bältdjur? Det har kommit att bli något nytt. Så dessa tekniker som vi använder varje dag. Om vi ​​vill ta dem ett steg vidare, men om vi faktiskt vill kunna tala om vad det är att dessa system svarar på, Vi måste prata, återigen, om en mer grundläggande uppsättning frågor. Och det är ett ämne i kommunikation som vi kallar fråga svarare. Det vill säga, vi vill kunna att-- ja? PUBLIK: [OHÖRBAR]. BRIAN Scassellati: Får vi i latent semantisk behandling? Så ja. Det finns en massa saker som är händer under ytan med Siri och i några av exemplen Jag ska visa dig nästa där det finns en hel del i termer av struktur av vad du säger som är viktigt. Och i själva verket är det en stor föregångare för nästa bild för mig. Så på samma sätt som vår taligenkänning byggdes upp av flera skikt, om vi vill förstå vad det är som faktiskt sagt, ska vi igen förlita sig på en flerskiktsanalys av texten som är erkänns. Så när Siri är faktiskt kan säg, ser jag hittade dessa ord. Nu vad ska jag göra med dem? Den första komponenten är ofta att gå igenom och försöka analysera strukturen av meningen. Och vad har vi sett i skolan, ofta, som en slags diagram meningar, kommer vi att erkänna att vissa ord har vissa roller. Dessa är substantiv. Dessa är pronomen. Dessa är verb. Och vi kommer att känna igen att för en viss grammatik, i det här fallet engelsk grammatik, finns giltiga sätt som jag kan kombinera dem och andra sätt som inte är giltiga. Att erkännandet, denna struktur, kan vara tillräckligt för att hjälpa vägleda oss lite grann. Men det är inte tillräckligt för att vi ska kunna ge någon mening vad som sägs här. För att göra det, vi måste lita på en viss mängd av semantisk bearbetning. Det vill säga, vi kommer att behöva leta på undersidan vad var och en av dessa ord faktiskt bedriver som en mening. Och i det enklaste sättet att göra detta, vi kommer att associera med varje ord att vi känner en viss funktion, en viss omvandling som det gör det möjligt att hända. I det här fallet kan vi märka ordet "John" som ett egennamn, att den bär med sig en identitet. Och vi kan märka "Mary" som på samma sätt. Medan ett verb som "älskar", som utgör ett speciellt förhållande att vi kan företräda. Nu, det betyder inte att att vi förstår vad kärlek är, men bara att vi förstår den i vägen för ett symboliskt system. Det vill säga, vi kan märka den och manipulera den. Med var och en av dessa typer av tillvägagångssätt, någon typ av semantisk bearbetning här kommer att kräva lite lite kunskap och en hel del arbete på vår del. Vi är inte längre i riket där bara vanlig statistik kommer att vara tillräckligt för oss. Nu, för att gå från denna punkt till vara kunna tala om insidan av vad som faktiskt händer här, att kunna manipulera denna strukturera och förstå en fråga och sedan kunna att gå ut och söka, som kräver en mer komplex kognitiv modell. Det sätt på vilket dessa system byggs är för det mesta mycket, mycket arbets intensiv. De involverar människor spendera en hel del tid strukturera sätt i som dessa typer av meningar kan representeras i en viss logik. Det blir även lite mer komplex, men. Även när vi har behandlat med semantik, vi ska fortfarande måste titta på pragmatik av vad som sägs. Det är, hur gör jag relatera ord att jag måste något fysiskt ut där i världen eller åtmin stone någon informationskälla att jag kan manipulera? Ibland dessa leder till underbara bitar av tvetydighet. "Red-hot stjärnan att gifta astronom." OK. Nu läser vi att när rolig typ av rubrik att vi skulle se på sena natten TV eftersom vi inte tolka "stjärna" att få sin himlakropp innebörd. Vi vet att det betyder mer vanliga skådespelare med höga halter av synlighet. "Squad hjälper hund biter offer." Är det så att truppen är faktiskt därute hjälpa en hund att gå runt och bita offer? Eller är det så att det fanns en person som var biten av en hund som behövde lite hjälp? Bara från att titta på syntaxen och semantiken av meningar, vi kan inte avgöra det. "Helikopter drivs av mänskliga flugor." Finns det, i själva verket, faktiska små saker som flyger runt det är människor med vingar driver helikoptrar för mänsklighetens bästa? Eller finns det en mekanisk anordning som får sin ström från en person? När vi tittar på frågan svarar system, dessa är de lager som Vi måste ta itu med. Nu, den bästa och mest sortera av förekommande av dessa system idag kan göra saker på en nivå som är långt utöver vad vi hade för 10 år sedan. Här är en av de bästa systemen det är där ute idag. Och detta är ett system från IBM kallade Watson. Detta är från våra vänner på IBM. Detta är Katherine banker, Jia Chen, och Priscilla Moraes ger oss en demonstration av Watson igår i IBM Yorktown. [VIDEOAVSPELNING] -Hur mår du? -Jag mår bra. Jag är alltid glad när jag tänkande, särskilt när jag kan sval i dessa serverrum. -Vem Är din favorit skådespelare? -Min Favorit skådespelare Angelina Jolie som Lara Croft i Tomb Raider eftersom hennes ursprungliga formen var som en virtuell karaktär som mig. -Hur Kan Watson hjälpa patienter? -Är Planen för patienter till har tillgång till Watson direkt? Tillgång till Watson rådgivande applikationer varierar beroende på användningsfall. Men för närvarande, kommer Watson bara ge möjlig diagnos och behandling optioner till läkare eller sjuksköterska. I förekommande fall, patienter kan ge information Watson, kanske genom en portal webbgränssnitt, tablet, eller till och med en mobiltelefon. Till exempel kan en patient vara ombedd att beskriva sina symptom i naturligt språk direkt till en Watson-lösning, tillåter läkaren att fokusera på datainsamling diagnos och inte. -Vem Mördade Abraham Lincoln? -John Wilkes Booth. -I Vilket år gjorde Arizona Diamond vinna World Series? -2001. [END SPELA] BRIAN Scassellati: Så dessa typer av system måste förlita sig på först och främst erkänner tal; andra, omvandla den till en meningsfull inre representation; och sedan, för det tredje, att kunna gå ut och hitta informationskällan som ger dem möjlighet att svara på den frågan. Denna nivå av komplexitet innebär samma typer av prog saker att du har varit gör i problemsamlingar. Vi kan analysera HTTP-begäranden i samma typ av lågaktivt mönster matchning som ELIZA kan göra. Vi kan konvertera dem i en intern representation, och sedan använda dem för att fråga några extern databas, eventuellt med hjälp av SQL. Alla system som byggs idag att göra den här typen av naturliga språkkommunikations byggs på samma principer. Nu, även ett system som Watson är inte komplex nog för att kunna svara på godtyckliga frågor om vilket ämne som helst. Och i själva verket måste vara strukturerad inom en viss domän. Så du kan gå online och du kan hitta versioner av Watson som fungerar väl inom medicinsk informatik. Eller det finns en på nätet som bara handlar om hur att göra bra rekommendationer om vilken öl går med vilken mat. Och inom dessa områden, det kan svara på frågor, hitta den information den behöver. Men du kan inte blanda och matcha dem. Systemet som har tränats med databasen över mat och öl fungerar inte bra när du plötsligt sätta in med den medicinska informatik databas. Så även våra bästa systemen idag förlita sig på en nivå av behandling där vi är hand kodning och byggnad i infrastrukturen för att göra detta system kör. Nu, det sista ämnet jag vill för att kunna komma till idag handlar om icke-verbal kommunikation. En stor mängd information som vi kommunicerar med varandra inte komma till stånd genom enskilda ord som vi tillämpar. Det har att göra med saker som närhet, blick, din röst, din böjningsformer. Och att kommunikation är också något som många olika gränssnitt bryr sig mycket om. Det är inte vad Siri bryr sig om. Jag kan be Siri något med en röst eller i en annan ton i rösten, och Siri kommer att ge mig samma svar. Men det är inte vad vi bygger för många andra typer av gränssnitt. Jag vill presentera dig nu till en av robotarna. Detta byggdes av min longtime vän och kollega Cynthia Breazeal och hennes företag Jibo. Och detta robot-- vi ska att ha ett par volontärer komma att interagera med detta. Så kan jag ha två människor som är villiga att leka med roboten för mig? Varför inte komma på upp, och varför inte du kommer på dig. Om du skulle gå upp mig här, tack. Och om jag kunde ha dig komma rätt hit. Tack. Hej. ALFREDO: Trevligt att träffas. Alfredo. BRIAN Scassellati: Alfredo. RACHEL: Rachel. BRIAN Scassellati: Rakel. Trevligt att träffas båda. Alfredo, jag kommer att ha dig gå först. Komma rätt upp här. Jag kommer att införa du-- om jag kan få detta av utan knackar microphone-- till en liten robot som heter Jibo. OK? Nu är Jibo utformad för att vara interaktivt. Och även om det kan ge dig tal, mycket av interaktionen med roboten är icke-verbal. Alfredo, jag kommer att be er att säga något trevligt och gratis roboten, tack. ALFREDO: Jag tycker att du ser söt. [Surrande ljudet] BRIAN Scassellati: OK. Dess svar är inte verbal. Och ändå gav dig både en tydlig bekräftelse att det hade hört vad du sa och även något sätt förstod det. OK? Steg tillbaka hit för en sekund. Tack. Rachel, om du vill. Nu, jag kommer att ge dig mycket hårdare jobb. Om du skulle stå här, säkerhetskopiera bara lite så Vi kan få dig på kamera och ser det här sättet. Jag kommer att be er att säga något verkligen menar och otäck till roboten. RACHEL: Vad du bara verkade att göra var helt absurt. [Brummande ljud] Det var ännu mer absurt. Vad är det med dig? Aw, inte må dåligt. Jag ska ge dig en kram. BRIAN Scassellati: Okej. Tack, Rachel. Alfredo, Rachel, Tack killar mycket. [APPLÅDER] Så denna typ av interaktion har i många sätt en del av samma regler och en del av samma struktur som vad vi kan ha i språklig interaktion. Det är både kommunikativ och tjänar ett viktigt syfte. Och att växelverkan, i många sätt, är utformad för att ha en viss effekt på person som interagerar med eller lyssna till roboten. Nu är jag turen att ha Jibo här i dag. Sam Spaulding är här hjälper oss med roboten. Och jag kommer att be Sam att ge oss en trevlig demo av Jibo dans att vi kan titta på slutet här. Så sätt igång, Jibo. SAM: OK, Jibo. Visa oss dina danssteg. [MUSIK SPELA] BRIAN Scassellati: Okej, alla. Tack vare våra vänner på Jibo. [APPLÅDER] Och tack vare våra vänner på IBM för att hjälpa ut i dag. Kommunikation är något att du kommer att se komma upp mer och mer som vi bygger mer komplexa gränssnitt. Nästa vecka kommer vi att prata om hur gränssnittet med datormotståndare i spel. Men om du har frågor om detta, Jag kommer att vara runt på kontorstid ikväll. Jag är glad att prata med dig om AI ämnen eller för att få in mer i detalj. Ha en bra helg. [APPLÅDER] [MUSIK SPELA]