1 00:00:00,000 --> 00:00:02,928 >> [MUSIK SPELA] 2 00:00:02,928 --> 00:00:11,230 3 00:00:11,230 --> 00:00:12,790 >> DAVID MALAN: Detta är CS50. 4 00:00:12,790 --> 00:00:14,072 Detta är slutet av vecka 10. 5 00:00:14,072 --> 00:00:16,030 Och pojke, har vi en bra klass för dig idag. 6 00:00:16,030 --> 00:00:20,040 Vi är så glada att bjuda in två av våra vänner från Yale upp till oss i dag 7 00:00:20,040 --> 00:00:23,920 och att titta på skärningspunkten mellan artificiell intelligens, robotik, 8 00:00:23,920 --> 00:00:25,710 naturliga språk, och mer. 9 00:00:25,710 --> 00:00:27,090 >> Och faktiskt, över senaste veckorna, vi har 10 00:00:27,090 --> 00:00:29,714 säkert tillbringade en hel del tid, särskilt i de tidigare psets, 11 00:00:29,714 --> 00:00:31,560 med fokus på ganska låg nivå detaljer. 12 00:00:31,560 --> 00:00:34,520 Och det är mycket lätt att glömma bort av skogen för alla träd 13 00:00:34,520 --> 00:00:38,170 och få hängas upp på loopar och villkor och pekare, förvisso, och liknande. 14 00:00:38,170 --> 00:00:41,770 Men verkligheten är ni nu har ingredienser som du verkligen kan 15 00:00:41,770 --> 00:00:45,300 lösa några intressanta problem, bland dem dessa som våra vänner på Yale 16 00:00:45,300 --> 00:00:48,790 arbeta på bara blyg av Cambridge. 17 00:00:48,790 --> 00:00:52,410 >> Så låt mig först med att introducera vårt huvud lärarassistent från Yale, Andy. 18 00:00:52,410 --> 00:00:55,182 >> [APPLÅDER] 19 00:00:55,182 --> 00:00:57,030 20 00:00:57,030 --> 00:01:00,710 >> ANDY: Först av allt, bara tacka du för att låta ett par Yalies 21 00:01:00,710 --> 00:01:02,700 pop ner till Cambridge idag. 22 00:01:02,700 --> 00:01:05,299 Vi uppskattar verkligen det. 23 00:01:05,299 --> 00:01:07,090 Dels till våra vänner tillbaka home-- Jason, 24 00:01:07,090 --> 00:01:09,670 Tack för att stanna och köra föreläsning. 25 00:01:09,670 --> 00:01:12,970 Hoppas det är allt bra i New Haven. 26 00:01:12,970 --> 00:01:15,720 >> Så ja, jag är superglad att införa SCAZ idag. 27 00:01:15,720 --> 00:01:17,020 SCAZ driver robotlabb. 28 00:01:17,020 --> 00:01:19,690 Han är professor i, typ, fem olika avdelningar vid Yale. 29 00:01:19,690 --> 00:01:23,159 I sitt labb, har han många, många robotar som han gillar att leka med. 30 00:01:23,159 --> 00:01:24,950 Han har, liksom den coolaste jobbet i världen. 31 00:01:24,950 --> 00:01:27,116 Och han får typ av röran runt med det hela dagen 32 00:01:27,116 --> 00:01:29,090 lång och göra en del arbete, liksom. 33 00:01:29,090 --> 00:01:33,070 >> Och så att vi faktiskt tog en Av dem ner med oss ​​i dag. 34 00:01:33,070 --> 00:01:36,900 Så utan vidare, är SCAZ kommer att gå vidare och presentera oss 35 00:01:36,900 --> 00:01:38,660 till sin robot vän. 36 00:01:38,660 --> 00:01:41,546 >> [APPLÅDER] 37 00:01:41,546 --> 00:01:42,935 38 00:01:42,935 --> 00:01:44,310 BRIAN Scassellati: Tack, David. 39 00:01:44,310 --> 00:01:45,380 Tack, Andy. 40 00:01:45,380 --> 00:01:50,050 Det är så underbart att vara här med alla idag. 41 00:01:50,050 --> 00:01:56,490 Jag vill först vara mycket tydligt att den CS50 personal här i Cambridge 42 00:01:56,490 --> 00:01:59,190 har varit otroligt gästvänliga för oss. 43 00:01:59,190 --> 00:02:02,130 Vi är så tacksamma för allt de har gjort för att stödja oss. 44 00:02:02,130 --> 00:02:05,690 Och så skulle vi vilja kunna att återvända vänlighet. 45 00:02:05,690 --> 00:02:09,370 >> Så idag, vi får tillkännage att vi kommer att ha en ny, 46 00:02:09,370 --> 00:02:15,240 one-of-a-kind CS50 händelse händer i New Haven nästa vecka. 47 00:02:15,240 --> 00:02:18,040 Och detta är CS50 Research Expo. 48 00:02:18,040 --> 00:02:21,300 Så vi kommer att bjuda in everyone-- CS50 studenter, 49 00:02:21,300 --> 00:02:26,510 personal från både Harvard och Yale-- till komma ner och besöka oss på fredag. 50 00:02:26,510 --> 00:02:30,400 Vi kommer att ha ett brett utbud av mer än 30 olika personer som uppvisar 51 00:02:30,400 --> 00:02:34,830 och exhibiting-- upperclassmen visar ut en del av sina forskningsprodukter. 52 00:02:34,830 --> 00:02:38,480 Vi kommer att ha några starter, med, ser för en liten bit av ny teknik talang, 53 00:02:38,480 --> 00:02:40,460 startups från både Harvard och Yale. 54 00:02:40,460 --> 00:02:44,550 Och vi kommer att ha vissa elevgrupper letar efter något nytt medlemskap. 55 00:02:44,550 --> 00:02:46,357 >> Det kommer att bli en mycket spännande tid. 56 00:02:46,357 --> 00:02:49,190 Förhoppningsvis de av er som är coming down för Harvard-Yale spel 57 00:02:49,190 --> 00:02:51,360 kommer att kunna stoppa med lite tidigt, 58 00:02:51,360 --> 00:02:54,060 mitt i centrum av campus, Sterling Memorial Library. 59 00:02:54,060 --> 00:02:58,040 Vi kommer att ha en uppsättning utställningar som sträcker sig från autonoma 60 00:02:58,040 --> 00:03:04,460 segelbåtar till sätt att använda programvara att bevara medeltida handskrifter. 61 00:03:04,460 --> 00:03:07,860 >> Vi kommer att ha en annons hoc-nätverk och människor 62 00:03:07,860 --> 00:03:11,230 pedagogisk programvara kodning i Kapstaden. 63 00:03:11,230 --> 00:03:13,730 Vi kommer att ha dator musik demonstrationer. 64 00:03:13,730 --> 00:03:16,020 Och vi kommer naturligtvis att ha flera robotar. 65 00:03:16,020 --> 00:03:18,900 Så vi hoppas att du ansluta sig till oss för detta evenemang. 66 00:03:18,900 --> 00:03:21,350 Det bör finnas en hel del roligt, lite mat, 67 00:03:21,350 --> 00:03:24,430 och en hel del intressant saker att prata om. 68 00:03:24,430 --> 00:03:28,230 >> Så idag ska vi prata om behandling av naturligt språk. 69 00:03:28,230 --> 00:03:32,560 Och detta är ett försök för oss att bygga ett nytt sätt att samverkan 70 00:03:32,560 --> 00:03:35,150 med våra produkter på grund av under de senaste veckorna, 71 00:03:35,150 --> 00:03:40,800 du har fokuserats på hur det är att Du kan skriva kod, skriva program 72 00:03:40,800 --> 00:03:47,110 det är ett sätt att kunna säga till en maskin, detta är vad jag vill att du gör. 73 00:03:47,110 --> 00:03:50,210 >> Men vi ska inte behöva förvänta sig att allt 74 00:03:50,210 --> 00:03:53,760 det är där ute som används av alla i världen 75 00:03:53,760 --> 00:03:57,480 kommer att vara skickliga i denna typ av undervisning. 76 00:03:57,480 --> 00:04:02,540 Så vi skilja mellan dator språk och naturliga languages-- 77 00:04:02,540 --> 00:04:06,720 det vill säga saker som människor använder att kommunicera med andra människor. 78 00:04:06,720 --> 00:04:12,270 Och vi försöker att bygga gränssnitt som använder dessa naturliga kommunikationsmekanismer. 79 00:04:12,270 --> 00:04:16,029 >> Nu, precis som alla andra ämne att vi har börjat med i CS50, 80 00:04:16,029 --> 00:04:19,589 Vi ska börja med den enklaste bit av naturligt språk 81 00:04:19,589 --> 00:04:21,269 att vi kan föreställa oss. 82 00:04:21,269 --> 00:04:24,940 Vi kommer att börja med historiska delen av naturligt språk. 83 00:04:24,940 --> 00:04:28,740 Och sedan ska vi bygga upp till fler och fler nya system 84 00:04:28,740 --> 00:04:31,450 och har några roliga demonstrationer längs vägen. 85 00:04:31,450 --> 00:04:35,900 >> Så vi kommer att börja med vad som var förmodligen den första naturligt språk 86 00:04:35,900 --> 00:04:38,210 behandlingssystemet. 87 00:04:38,210 --> 00:04:45,080 Detta var ett programvarusystem skrivet i 1966 av Joseph Weizenbaum kallas ELIZA. 88 00:04:45,080 --> 00:04:49,640 Och Eliza var avsedd att replikera typ av interaktion 89 00:04:49,640 --> 00:04:53,850 du skulle ha med en Rogerian psykoterapeut. 90 00:04:53,850 --> 00:04:57,210 Nu är Rogerians, de hade en idé som psykoterapi 91 00:04:57,210 --> 00:05:02,800 inblandade att kunna spegla tillbaka till en patient och prata med dem, 92 00:05:02,800 --> 00:05:08,100 princip, bara genom att ge dem en liten, liten bit av terapeuten. 93 00:05:08,100 --> 00:05:09,920 Det vill säga, allt att terapeuten sa 94 00:05:09,920 --> 00:05:16,500 var tänkt att vara bara en återspegling av vad patienten berättade för dem. 95 00:05:16,500 --> 00:05:18,990 >> Så låt oss försöka och demo redan. 96 00:05:18,990 --> 00:05:22,820 Har vi en volontär som skulle vara villiga att dela sin djupaste, 97 00:05:22,820 --> 00:05:26,650 mörkaste, och / eller falska hemligheter med ELIZA? 98 00:05:26,650 --> 00:05:29,680 Visst, varför inte du kommer på dig. 99 00:05:29,680 --> 00:05:30,847 Fantastisk. 100 00:05:30,847 --> 00:05:31,430 Och ditt namn? 101 00:05:31,430 --> 00:05:32,000 >> MILES: Miles. 102 00:05:32,000 --> 00:05:33,041 >> BRIAN Scassellati: Miles. 103 00:05:33,041 --> 00:05:34,270 Trevligt att träffa dig, Miles. 104 00:05:34,270 --> 00:05:36,270 Om du vill hålla fast vid det. 105 00:05:36,270 --> 00:05:40,840 Och vi kommer att Använd en version av ELIZA 106 00:05:40,840 --> 00:05:44,640 att vi har replik inom CS50 IDE. 107 00:05:44,640 --> 00:05:47,140 Och vi kommer att titta på käll kod till detta om en liten stund. 108 00:05:47,140 --> 00:05:49,910 Men just nu, vi är bara kommer att åberopa den genom att skriva eliza. 109 00:05:49,910 --> 00:05:55,480 >> Och Eliza kommer att ge dig svar som kommer att vara i alla huvudstäder. 110 00:05:55,480 --> 00:05:57,950 Och kommer att ställa några frågor. 111 00:05:57,950 --> 00:06:02,130 Och vi kommer att svara och skriv i svar på ELIZA. 112 00:06:02,130 --> 00:06:04,310 Så ELIZA har sagt: "Hej, jag heter ELIZA. 113 00:06:04,310 --> 00:06:05,462 Vad är ditt problem?" 114 00:06:05,462 --> 00:06:08,092 Vad skulle du vilja berätta ELIZA om idag? 115 00:06:08,092 --> 00:06:10,750 >> MILES: Jag kan bara somna om jag har kaninhäftklammermatare på. 116 00:06:10,750 --> 00:06:12,440 >> BRIAN Scassellati: Okej. 117 00:06:12,440 --> 00:06:13,360 Okej. 118 00:06:13,360 --> 00:06:15,300 >> [SKRATT] 119 00:06:15,300 --> 00:06:22,410 >> "Jag kan bara somna med kaninhäftklammermatare på. " 120 00:06:22,410 --> 00:06:29,000 Och Eliza säger "Säg, gör du har några psykiska problem? 121 00:06:29,000 --> 00:06:30,450 Kanske detta är en bra indikator. " 122 00:06:30,450 --> 00:06:30,780 >> OK. 123 00:06:30,780 --> 00:06:32,245 Så vad vill du svara? 124 00:06:32,245 --> 00:06:36,110 125 00:06:36,110 --> 00:06:36,970 >> MILES: Ja. 126 00:06:36,970 --> 00:06:38,660 >> BRIAN Scassellati: Ja. 127 00:06:38,660 --> 00:06:39,570 Man med många ord. 128 00:06:39,570 --> 00:06:41,870 Jag tycker det. 129 00:06:41,870 --> 00:06:50,200 Eliza säger: "Du verkar ganska positiv." 130 00:06:50,200 --> 00:06:53,200 >> MILES: Nej, jag är i själva verket en elektron. 131 00:06:53,200 --> 00:06:55,150 >> BRIAN Scassellati: "Nej. 132 00:06:55,150 --> 00:07:02,240 I själva verket är jag en elektron. " "Har du kommit till mig 133 00:07:02,240 --> 00:07:06,954 eftersom du är en elektron? " 134 00:07:06,954 --> 00:07:08,870 Nu kan vi se några av den saker-- jag ska 135 00:07:08,870 --> 00:07:10,200 att pausa dig för bara en sekund, Miles. 136 00:07:10,200 --> 00:07:11,010 Inte gå någonstans. 137 00:07:11,010 --> 00:07:12,650 Vi är inte klar med dig än. 138 00:07:12,650 --> 00:07:16,490 ELIZA är, på sätt och vis, att svara på vissa saker 139 00:07:16,490 --> 00:07:21,140 att han säger, men utan någon verklig förståelse. 140 00:07:21,140 --> 00:07:26,090 Och det är också parroting tillbaka en del av de delar av sitt straff. 141 00:07:26,090 --> 00:07:27,310 >> Så vi sa, "Nej. 142 00:07:27,310 --> 00:07:29,090 I själva verket är jag en elektron. " 143 00:07:29,090 --> 00:07:34,190 Eliza svarade tillbaka, "Har du kommit för mig eftersom du är en elektron? " 144 00:07:34,190 --> 00:07:34,690 Okej. 145 00:07:34,690 --> 00:07:36,050 Låt oss ge det en mer svar här. 146 00:07:36,050 --> 00:07:37,140 Ge det en bra, Miles. 147 00:07:37,140 --> 00:07:37,806 >> MILES: Bra ett? 148 00:07:37,806 --> 00:07:48,400 149 00:07:48,400 --> 00:07:49,570 >> Ja, snälla hjälp mig. 150 00:07:49,570 --> 00:07:50,570 BRIAN Scassellati: "Ja. 151 00:07:50,570 --> 00:07:58,010 Snälla hjälp mig. "" Är du säker? " 152 00:07:58,010 --> 00:07:58,510 MILES: Nej 153 00:07:58,510 --> 00:08:00,860 BRIAN Scassellati: Nej 154 00:08:00,860 --> 00:08:03,562 "Vad betyder det föreslår till dig?" 155 00:08:03,562 --> 00:08:06,760 >> MILES: Jag kan inte vara en elektron. 156 00:08:06,760 --> 00:08:11,170 >> BRIAN Scassellati: "Jag kanske inte är en elektron. " 157 00:08:11,170 --> 00:08:13,790 "Menar du att någon bara för att vara negativ?" 158 00:08:13,790 --> 00:08:14,390 >> Okej. 159 00:08:14,390 --> 00:08:16,030 Så Miles, tack så mycket. 160 00:08:16,030 --> 00:08:16,860 >> MILES: Tack. 161 00:08:16,860 --> 00:08:18,360 >> BRIAN Scassellati: Tack så mycket. 162 00:08:18,360 --> 00:08:20,230 [APPLÅDER] 163 00:08:20,230 --> 00:08:21,230 164 00:08:21,230 --> 00:08:26,700 >> Så detta ELIZA programmet, på många sätt, svarar bara för bitarna 165 00:08:26,700 --> 00:08:32,730 att vi ger utan djup förståelse för vad som händer här. 166 00:08:32,730 --> 00:08:36,640 Detta är en typ av system kallas mönstermatchning, där 167 00:08:36,640 --> 00:08:40,490 Vi letar efter vissa bitar av text som vi är sedan 168 00:08:40,490 --> 00:08:44,860 kommer att ta ut vad tillhandahölls som indata, 169 00:08:44,860 --> 00:08:52,580 konvertera det, potentiellt, på något sätt, och sedan ge den tillbaka till användaren. 170 00:08:52,580 --> 00:08:55,150 >> Gör något av er tror att ELIZA är faktiskt 171 00:08:55,150 --> 00:08:58,230 utför giltig psyko här? 172 00:08:58,230 --> 00:08:59,250 En person, kanske. 173 00:08:59,250 --> 00:09:00,166 >> PUBLIK: [OHÖRBAR]. 174 00:09:00,166 --> 00:09:03,315 175 00:09:03,315 --> 00:09:05,440 BRIAN Scassellati: Och hur Gör det du känner? 176 00:09:05,440 --> 00:09:06,530 Ja, i själva verket gör det. 177 00:09:06,530 --> 00:09:10,890 Och vi kommer att se, faktiskt, den Källkoden för det på bara ett ögonblick. 178 00:09:10,890 --> 00:09:13,580 Och så att du kommer att vara kunna göra just detta. 179 00:09:13,580 --> 00:09:17,420 >> Nu är ELIZA en form av vad vi skulle kalla idag en chat bot. 180 00:09:17,420 --> 00:09:19,950 Det går bara igenom text som du ger, 181 00:09:19,950 --> 00:09:24,030 ger ett absolut minimibelopp förståelse eller behandling 182 00:09:24,030 --> 00:09:26,790 och sedan papegojor det tillbaka till dig. 183 00:09:26,790 --> 00:09:31,830 Så låt oss ta en titt, konceptuellt, och tala om vad 184 00:09:31,830 --> 00:09:34,690 det är att ELIZA faktiskt gör. 185 00:09:34,690 --> 00:09:42,000 >> ELIZA tar en sentence-- låt oss säger: "Jag vill imponera min chef." 186 00:09:42,000 --> 00:09:45,130 Och Eliza ser genom den meningen 187 00:09:45,130 --> 00:09:48,730 och försöka hitta och matcha vissa mönster. 188 00:09:48,730 --> 00:09:52,850 Så, till exempel, ett av mönstren att ELIZA är ute efter är de ord 189 00:09:52,850 --> 00:09:55,110 "Jag vill." 190 00:09:55,110 --> 00:09:59,330 Och varje gång det ser något som har "jag vill" i det, 191 00:09:59,330 --> 00:10:01,770 Det formulerar ett svar. 192 00:10:01,770 --> 00:10:05,040 Och att svaret är en fast sträng. 193 00:10:05,040 --> 00:10:07,915 I det här fallet är det "varför vill du?" 194 00:10:07,915 --> 00:10:11,330 Och jag satte en liten stjärna på slutet eftersom det är bara 195 00:10:11,330 --> 00:10:13,310 I början av vårt svar. 196 00:10:13,310 --> 00:10:16,310 Och stjärnan visar att vi kommer att ta resten 197 00:10:16,310 --> 00:10:19,850 av användarens utterance-- "att imponera på min chef" - 198 00:10:19,850 --> 00:10:24,500 och vi kommer att lägga det på änden av denna sträng. 199 00:10:24,500 --> 00:10:28,990 >> Så nu, istället för att säga, "varför vill du imponera på min chef, " 200 00:10:28,990 --> 00:10:31,800 det finns en liten bit av ytterligare bearbetning som vi ska göra. 201 00:10:31,800 --> 00:10:34,440 Det vill säga, vi måste omvandla en del av de pronomen 202 00:10:34,440 --> 00:10:38,670 här från "min chef" till "din chef." 203 00:10:38,670 --> 00:10:41,300 Och det kan finnas några andra förändringar som vi måste göra. 204 00:10:41,300 --> 00:10:44,990 Så i stället för att bara sticker direkt på slutet, vad vi ska göra 205 00:10:44,990 --> 00:10:49,160 är vi tar resten av användarens utterance-- i vitt här-- 206 00:10:49,160 --> 00:10:54,090 och vi tar det en bit i en tid och konvertera varje sträng 207 00:10:54,090 --> 00:10:58,180 token, varje ord, i meningen. 208 00:10:58,180 --> 00:10:59,580 >> Så vi tar ordet "till." 209 00:10:59,580 --> 00:11:01,650 Det finns ingen omvandling att vi måste göra det. 210 00:11:01,650 --> 00:11:02,340 "Imponera på." 211 00:11:02,340 --> 00:11:04,140 Det finns ingen omvandling vi behöver göra det. 212 00:11:04,140 --> 00:11:06,670 "Min" kommer att konvertera till "din". 213 00:11:06,670 --> 00:11:10,070 Och "boss" vi ska bara lämna som "boss". 214 00:11:10,070 --> 00:11:12,740 Och slutligen, vad som helst som slutar med en period, 215 00:11:12,740 --> 00:11:16,640 vi ska omvandla den till en fråga. 216 00:11:16,640 --> 00:11:22,600 >> Detta mycket enkla mönstermatchning är faktiskt ganska framgångsrik. 217 00:11:22,600 --> 00:11:27,260 Och när detta infördes i 1966-- Joseph Weizenbaum 218 00:11:27,260 --> 00:11:28,986 programmerat detta på en dator. 219 00:11:28,986 --> 00:11:31,110 Nu, datorer på den tiden var inte stationära modeller. 220 00:11:31,110 --> 00:11:33,950 De delades resurser. 221 00:11:33,950 --> 00:11:39,090 Och hans studenter skulle gå och prata med ELIZA. 222 00:11:39,090 --> 00:11:41,570 Till slut var han tvungen att begränsa tillgången till det 223 00:11:41,570 --> 00:11:43,890 eftersom hans elever var inte få något arbete gjort. 224 00:11:43,890 --> 00:11:46,190 De var bara chatta med ELIZA. 225 00:11:46,190 --> 00:11:48,850 Och i själva verket var han tvungen att brand hans assistent, som 226 00:11:48,850 --> 00:11:55,840 bringat all sin tid att tala med ELIZA om hennes djupa och oroande problem. 227 00:11:55,840 --> 00:12:00,350 >> Alla som använt dessa system började lik människan dem. 228 00:12:00,350 --> 00:12:04,490 De började att tänka på dem som är levande och verkliga människor. 229 00:12:04,490 --> 00:12:07,969 De började att känna igen några av de saker som de säger 230 00:12:07,969 --> 00:12:09,010 kom tillbaka till dem. 231 00:12:09,010 --> 00:12:12,120 Och de var att ta reda på saker om sig själva. 232 00:12:12,120 --> 00:12:17,290 Och i själva verket, även experterna, även psykoterapeuter, 233 00:12:17,290 --> 00:12:22,930 började oroa sig för att, i själva verket, kanske ELIZA skulle ersätta dem. 234 00:12:22,930 --> 00:12:25,640 Och även om datorn Forskarna oroar sig för att vi var 235 00:12:25,640 --> 00:12:30,040 så nära att lösa naturligt språk. 236 00:12:30,040 --> 00:12:33,520 >> Nu var det inte någonstans nära till true. 237 00:12:33,520 --> 00:12:37,280 Men det är hur imponerande dessa system kan tyckas. 238 00:12:37,280 --> 00:12:40,080 Så låt oss börja titta undertill och försök 239 00:12:40,080 --> 00:12:46,190 att få en liten bit av en fråga var denna kod faktiskt händer. 240 00:12:46,190 --> 00:12:48,170 Så vi kommer att göra denna kod tillgänglig i efterhand. 241 00:12:48,170 --> 00:12:50,880 Och detta är en mycket enkel och direkt port 242 00:12:50,880 --> 00:12:53,240 av den ursprungliga genomförandet ELIZA. 243 00:12:53,240 --> 00:12:56,350 >> Så en del av dessa stilist saker som du ser här 244 00:12:56,350 --> 00:12:59,360 är inte stilist vad Vi vill att du ska göra 245 00:12:59,360 --> 00:13:01,480 eller vad vi har att lära dig att göra. 246 00:13:01,480 --> 00:13:04,770 Men vi har försökt att hålla dem samma över många hamnar 247 00:13:04,770 --> 00:13:08,087 att detta har haft så att det har smak av originalet. 248 00:13:08,087 --> 00:13:09,920 Så vi kommer att inkludera en massa saker, 249 00:13:09,920 --> 00:13:12,920 och sedan kommer vi att ha en uppsättning sökord, saker 250 00:13:12,920 --> 00:13:16,460 att ELIZA kommer att känna igen och svara på direkt. 251 00:13:16,460 --> 00:13:20,780 Så om du har ord som "kan du" eller "Jag vet inte" eller "nej" 252 00:13:20,780 --> 00:13:24,680 eller "ja" eller "dröm" eller "Hej" och sedan ELIZA 253 00:13:24,680 --> 00:13:27,920 kommer att svara selektivt till dem. 254 00:13:27,920 --> 00:13:30,010 Vi kommer också att ha en visst antal saker 255 00:13:30,010 --> 00:13:34,940 att vi kommer att byta, liksom omvandla "min" till "din". 256 00:13:34,940 --> 00:13:39,920 >> Och då kommer vi att ha ett antal svar att för var och en av dessa kategorier, 257 00:13:39,920 --> 00:13:42,580 vi ska rotera dessa olika reaktioner. 258 00:13:42,580 --> 00:13:45,350 Så om jag säger "ja" tre gånger i rad, jag 259 00:13:45,350 --> 00:13:50,429 kan få tre olika svar från ELIZA. 260 00:13:50,429 --> 00:13:52,345 Vår kod, då är faktiskt anmärkningsvärt enkel. 261 00:13:52,345 --> 00:13:59,490 Om jag bläddra ner förbi alla dessa reaktioner som vi har programmerat in 262 00:13:59,490 --> 00:14:02,920 och vi får ner till våran, vi kommer att initiera 263 00:14:02,920 --> 00:14:06,540 ett par olika variabler och göra lite städning 264 00:14:06,540 --> 00:14:08,480 i början. 265 00:14:08,480 --> 00:14:11,760 Men sedan finns det absolut en uppsättning kod som du kan förstå. 266 00:14:11,760 --> 00:14:15,820 En stor medan slinga som säger att jag är kommer att upprepa detta om och om igen. 267 00:14:15,820 --> 00:14:20,420 Jag ska läsa i en linje, och jag ska lagra den i en inmatningssträng. 268 00:14:20,420 --> 00:14:23,880 Jag ska kolla och se om det är speciella nyckelordet "bye", som 269 00:14:23,880 --> 00:14:26,199 innebär avsluta programmet. 270 00:14:26,199 --> 00:14:29,240 Och sen ska jag kolla och se om någon bara upprepar sig 271 00:14:29,240 --> 00:14:29,800 om och om. 272 00:14:29,800 --> 00:14:31,174 Och jag ska skrika på dem om de gör. 273 00:14:31,174 --> 00:14:34,820 Jag ska säga "inte upprepa dig själv." 274 00:14:34,820 --> 00:14:40,500 >> Så länge ingen av dem hända, vi ska sedan söka igenom och slinga genom, 275 00:14:40,500 --> 00:14:45,330 på ledningarna 308 till 313 här, och kontrollera och se 276 00:14:45,330 --> 00:14:49,090 är några av de sökord fraser som ingår i inmatnings 277 00:14:49,090 --> 00:14:50,620 att jag bara fick? 278 00:14:50,620 --> 00:14:54,845 Om det finns en match för dem, och då kommer jag ihåg den platsen. 279 00:14:54,845 --> 00:14:57,050 Jag kommer ihåg det sökordet. 280 00:14:57,050 --> 00:14:58,620 Och jag kommer att kunna bygga ett svar. 281 00:14:58,620 --> 00:15:03,150 >> Om jag inte hittar en, ja då, det sista i min sökords array 282 00:15:03,150 --> 00:15:08,070 kommer att vara mina standardsvaren, när inget annat matcher. 283 00:15:08,070 --> 00:15:14,160 Jag ska ställa frågor som "Varför gjorde du hit? "eller" Hur kan jag hjälpa dig? " 284 00:15:14,160 --> 00:15:19,710 som bara delvis är lämpligt oavsett vad ingången är. 285 00:15:19,710 --> 00:15:22,580 >> Vi kommer sedan bygga upp ELIZA svar. 286 00:15:22,580 --> 00:15:26,040 Vi kommer att kunna ta denna bas svar, 287 00:15:26,040 --> 00:15:28,370 precis som vi gjorde i att "min chef" exempel. 288 00:15:28,370 --> 00:15:30,970 289 00:15:30,970 --> 00:15:33,990 Om det är allt som finns är-- om det bara är en 290 00:15:33,990 --> 00:15:36,860 sträng som jag ska respond-- Jag kan bara skicka det tillbaka ut. 291 00:15:36,860 --> 00:15:40,610 Om den har en asterisk på I slutet av det, då ska jag 292 00:15:40,610 --> 00:15:45,710 behandla varje enskild token i resten av användarens svar 293 00:15:45,710 --> 00:15:51,590 och lägga till dem i, byta ut ord för ord som jag behöver. 294 00:15:51,590 --> 00:15:56,100 >> Allt detta är absolut något som du kan bygga. 295 00:15:56,100 --> 00:15:59,230 Och faktiskt, det sätt på vilket vi har bearbetat kommandoradsargument, 296 00:15:59,230 --> 00:16:03,570 det sätt på vilket du har bearbetas genom HTTP-förfrågningar 297 00:16:03,570 --> 00:16:05,510 följa samma slags regler. 298 00:16:05,510 --> 00:16:08,220 De är mönstermatchning. 299 00:16:08,220 --> 00:16:15,170 >> Så ELIZA hade en relativt viktig inverkan på naturligt språk 300 00:16:15,170 --> 00:16:21,620 eftersom det gjorde det verkar som om det var en mycket realistiskt mål, som på något sätt skulle vi 301 00:16:21,620 --> 00:16:25,550 kunna lösa detta problem direkt. 302 00:16:25,550 --> 00:16:30,670 Nu, som inte är att säga att ELIZA gör allt som vi skulle vilja göra. 303 00:16:30,670 --> 00:16:33,710 Absolut inte. 304 00:16:33,710 --> 00:16:35,660 Men vi bör kunna att göra något mer. 305 00:16:35,660 --> 00:16:38,280 306 00:16:38,280 --> 00:16:41,490 >> Vårt första steg att gå bortom ELIZA går 307 00:16:41,490 --> 00:16:44,840 för att kunna titta på inte text matas in 308 00:16:44,840 --> 00:16:53,750 i tangentbordet men tal, faktiska tal registreras i en mikrofon. 309 00:16:53,750 --> 00:16:56,880 Så som vi ser på dessa olika delar, vi är 310 00:16:56,880 --> 00:17:00,304 kommer att behöva bygga en uppsättning av modeller. 311 00:17:00,304 --> 00:17:02,970 Vi kommer att behöva för att kunna att gå från låg nivå akustiska 312 00:17:02,970 --> 00:17:07,180 information-- beck, amplitud, frequency-- 313 00:17:07,180 --> 00:17:09,530 och omvandla det till vissa enheter som vi är 314 00:17:09,530 --> 00:17:14,619 kunna lättare manipulera och slutligen manipulera dem 315 00:17:14,619 --> 00:17:18,609 i ord och meningar. 316 00:17:18,609 --> 00:17:22,880 >> Så de flesta taligenkänning system som finns där ute idag 317 00:17:22,880 --> 00:17:26,069 följa en statistisk modell där vi bygger 318 00:17:26,069 --> 00:17:35,090 tre separata representationer av vad att ljudsignalen faktiskt innehåller. 319 00:17:35,090 --> 00:17:38,640 Vi börjar med en fonetisk modell som talar om just basen 320 00:17:38,640 --> 00:17:41,250 ljud som jag producerar. 321 00:17:41,250 --> 00:17:46,900 Jag producera något som är B som i pojke eller en D som i hund? 322 00:17:46,900 --> 00:17:53,220 Hur känner jag igen dessa två olika telefoner som separata och distinkta? 323 00:17:53,220 --> 00:17:56,600 >> Ovanpå det, ska vi sedan bygga ett ord uttal modell, 324 00:17:56,600 --> 00:18:01,350 något som binder samman de enskilda telefoner 325 00:18:01,350 --> 00:18:04,724 och kombinerar dem i ett ord. 326 00:18:04,724 --> 00:18:07,890 Och efter det, tar vi orden och vi kommer att sätta ihop dem med ett språk 327 00:18:07,890 --> 00:18:13,010 modell till en hel mening. 328 00:18:13,010 --> 00:18:17,230 >> Nu ska vi prata om varje av dessa oberoende och separat. 329 00:18:17,230 --> 00:18:21,580 Men dessa tre modeller är alla bara kommer att bli statistik. 330 00:18:21,580 --> 00:18:23,502 Och det betyder när vi arbeta med dem, vi ska 331 00:18:23,502 --> 00:18:25,376 kunna arbeta med dem alla samtidigt. 332 00:18:25,376 --> 00:18:28,100 333 00:18:28,100 --> 00:18:28,600 Okej. 334 00:18:28,600 --> 00:18:30,890 Låt oss börja med vår fonetiska modell. 335 00:18:30,890 --> 00:18:34,470 Så fonetiska modeller lita på en beräkningsteknik 336 00:18:34,470 --> 00:18:37,320 kallade dolda Markov-modeller. 337 00:18:37,320 --> 00:18:43,050 Dessa är grafiska modeller där jag har och erkänna en stat i världen 338 00:18:43,050 --> 00:18:46,500 som kännetecknas genom en uppsättning funktioner. 339 00:18:46,500 --> 00:18:51,960 Och detta tillstånd beskriver å ena sidan en åtgärd som jag sysslar med. 340 00:18:51,960 --> 00:19:00,190 >> Så om jag tycker om att göra ljudet "ma" som mamma, 341 00:19:00,190 --> 00:19:03,970 det finns olika komponenter till ljudet. 342 00:19:03,970 --> 00:19:07,230 Det finns en del där jag dra in andan. 343 00:19:07,230 --> 00:19:09,560 Och då jag handväska mina läppar. 344 00:19:09,560 --> 00:19:13,710 Och jag rullar mina läppar tillbaka lite bit för att göra det "ma" ljud. 345 00:19:13,710 --> 00:19:15,340 Och så finns det en release. 346 00:19:15,340 --> 00:19:17,020 Mina läppar faller isär. 347 00:19:17,020 --> 00:19:19,030 Luft utvisas. 348 00:19:19,030 --> 00:19:22,650 "Ma." 349 00:19:22,650 --> 00:19:29,250 >> Dessa tre olika delar skulle vara representeras av stater i denna graph-- 350 00:19:29,250 --> 00:19:33,420 början, mitten och slutet. 351 00:19:33,420 --> 00:19:38,060 Och jag skulle ha övergångar som tillät mig att resa från en stat 352 00:19:38,060 --> 00:19:42,260 till nästa med en viss sannolikhet. 353 00:19:42,260 --> 00:19:47,250 Så, till exempel, att M ljud kan ha en mycket, 354 00:19:47,250 --> 00:19:51,850 mycket kort intag vid beginning-- "mm" - och sedan en längre, 355 00:19:51,850 --> 00:19:55,640 vibrations fas där jag höll min läppar tillsammans och nästan humming-- 356 00:19:55,640 --> 00:20:05,090 "mmmm" - och sedan en mycket kort klusil där jag utvisa breath-- "ma". 357 00:20:05,090 --> 00:20:09,370 >> Den dolda Markov-modellen är utformade för att fånga det faktum 358 00:20:09,370 --> 00:20:13,340 att det sätt som jag gör att ljudet "ma" kommer 359 00:20:13,340 --> 00:20:17,350 att vara något olika i Tidpunkt, är frekvensen, 360 00:20:17,350 --> 00:20:21,030 och dess funktioner än det sätt som du gör det 361 00:20:21,030 --> 00:20:23,300 eller det sätt som jag kan gör det när jag pratar 362 00:20:23,300 --> 00:20:26,030 om olika användningar av brevet. 363 00:20:26,030 --> 00:20:33,240 "Mother" och "kan jag" kommer låter lite annorlunda. 364 00:20:33,240 --> 00:20:36,800 >> Så för att känna igen en visst ljud, vi skulle 365 00:20:36,800 --> 00:20:42,020 bygga Markov-modeller, dessa dolda Markov modeller, av alla möjliga telefon som jag 366 00:20:42,020 --> 00:20:45,840 kanske vill erkänna, alla möjliga ljud, 367 00:20:45,840 --> 00:20:49,750 och sedan titta på akustiska data som jag har 368 00:20:49,750 --> 00:20:54,430 och bestämma statist vilken som är den mest sannolika en 369 00:20:54,430 --> 00:20:58,110 att ha producerat detta ljud. 370 00:20:58,110 --> 00:20:58,610 OK. 371 00:20:58,610 --> 00:21:01,540 372 00:21:01,540 --> 00:21:06,750 Med denna modell, vi sedan börja bygga ovanpå den. 373 00:21:06,750 --> 00:21:09,330 Vi tar en uttal modell. 374 00:21:09,330 --> 00:21:11,790 Nu, ibland uttal modeller är enkla och lätta 375 00:21:11,790 --> 00:21:14,440 eftersom det finns bara en sätt man uttalar något. 376 00:21:14,440 --> 00:21:17,990 Andra gånger, de är en lite mer komplicerat. 377 00:21:17,990 --> 00:21:21,340 Här är en uttals för det röda sak som är 378 00:21:21,340 --> 00:21:25,210 en frukt som du gör ketchup ur. 379 00:21:25,210 --> 00:21:27,360 Folk tror inte att det är en frukt. 380 00:21:27,360 --> 00:21:27,860 Höger? 381 00:21:27,860 --> 00:21:30,880 382 00:21:30,880 --> 00:21:35,300 >> Nu finns det många olika sätt att människor kommer att uttala ordet. 383 00:21:35,300 --> 00:21:37,780 Vissa kommer att säga "toe-maj-tå." 384 00:21:37,780 --> 00:21:40,880 Vissa kommer att säga "toe-mah-tå." 385 00:21:40,880 --> 00:21:44,800 Och vi kan fånga det med en av dessa grafiska modeller 386 00:21:44,800 --> 00:21:48,305 där, återigen, vi representerar övergångar som har en viss sannolikhet 387 00:21:48,305 --> 00:21:51,360 och tillhörande sannolikhet med dem. 388 00:21:51,360 --> 00:21:58,290 >> Så i det här fallet, om jag skulle följa topp vägen genom hela denna graf, 389 00:21:58,290 --> 00:22:03,330 Jag skulle börja på brevet längst till vänster, den "ta" ljud. 390 00:22:03,330 --> 00:22:07,570 Jag skulle ta den övre halvan, den "Åh," och sedan en "ma" 391 00:22:07,570 --> 00:22:14,530 och sedan ett "a" och sedan en "ta" och en "oh." "Toe-maj-tå." 392 00:22:14,530 --> 00:22:19,610 Om jag tog botten väg genom detta kommer jag att få "ta-mah-tå." 393 00:22:19,610 --> 00:22:26,810 Och om jag gick ner och sedan upp, jag skulle få "ta-maj-tå." 394 00:22:26,810 --> 00:22:29,950 >> Dessa modeller fånga dessa skillnader för när 395 00:22:29,950 --> 00:22:32,410 Vi distribuerar ett av dessa erkännande system, 396 00:22:32,410 --> 00:22:35,340 det kommer att behöva arbeta med massor av olika typer av människor, 397 00:22:35,340 --> 00:22:39,295 massor av olika accenter, och även olika användningar av samma ord. 398 00:22:39,295 --> 00:22:42,204 399 00:22:42,204 --> 00:22:44,120 Slutligen, på toppen av det, Vi ska bygga något 400 00:22:44,120 --> 00:22:48,780 som ser riktigt komplicerat, kallas språkmodellen, 401 00:22:48,780 --> 00:22:52,950 men i själva verket är det enklaste av den tre eftersom dessa fungerar 402 00:22:52,950 --> 00:22:56,041 på så kallade n-gram modeller. 403 00:22:56,041 --> 00:23:02,270 Och i detta fall, jag visar dig en tvådelad n-gram modellen, en bigram. 404 00:23:02,270 --> 00:23:08,910 Vi kommer att göra fysiska idén som ibland, vissa ord är 405 00:23:08,910 --> 00:23:14,680 mer benägna att följa en givet ord än andra. 406 00:23:14,680 --> 00:23:25,210 Om jag sa bara "väderprognos" nästa ord skulle sannolikt vara "i dag" 407 00:23:25,210 --> 00:23:31,510 eller kan vara "vädret prognos i morgon. " 408 00:23:31,510 --> 00:23:38,870 Men det är osannolikt att vara " väderprognos kronärtskocka. " 409 00:23:38,870 --> 00:23:42,980 >> Vilken språkmodell gör är den fångar de statist 410 00:23:42,980 --> 00:23:47,450 genom att räkna, från några mycket stora corpus, alla instanser 411 00:23:47,450 --> 00:23:50,890 i vilket ett ord följer en annan. 412 00:23:50,890 --> 00:23:54,300 Så om jag tar en stor corpus-- som varje Wall Street Journal 413 00:23:54,300 --> 00:24:00,750 som har producerats sedan 1930, vilket är en av standard corpuses-- 414 00:24:00,750 --> 00:24:03,910 och jag ser igenom alla texten, och jag räknar 415 00:24:03,910 --> 00:24:09,770 upp hur många gånger efter "prognos" gör jag ser "i dag" 416 00:24:09,770 --> 00:24:17,454 och hur många gånger ser jag "prognos" följt av "kronärtskocka" 417 00:24:17,454 --> 00:24:19,370 den första går att vara mycket mer benägna. 418 00:24:19,370 --> 00:24:21,540 Det kommer att visas mycket oftare. 419 00:24:21,540 --> 00:24:24,610 Och så det ska ha en högre sannolikhet i samband med det. 420 00:24:24,610 --> 00:24:27,340 >> Om jag vill räkna ut Sannolikheten för en hel yttrande, 421 00:24:27,340 --> 00:24:29,940 då, jag bara bryta upp. 422 00:24:29,940 --> 00:24:35,990 Så sannolikheten för förhandlingen meningen "råttan åt osten" 423 00:24:35,990 --> 00:24:39,110 är sannolikheten för ordet "" start en mening, 424 00:24:39,110 --> 00:24:42,540 och sedan sannolikheten för att ordet "råtta" följer ordet "den" 425 00:24:42,540 --> 00:24:44,910 och sannolikheten att den ordet "åt" följer "råtta" 426 00:24:44,910 --> 00:24:51,120 och sannolikheten att "ost" följer "åt." 427 00:24:51,120 --> 00:24:55,160 >> Detta låter som en hel del statistik, en hel del sannolikheter. 428 00:24:55,160 --> 00:24:57,510 Och det är allt som det är. 429 00:24:57,510 --> 00:25:02,920 Men det fantastiska är om du gör detta med en tillräckligt stor prov av data, 430 00:25:02,920 --> 00:25:03,670 det fungerar. 431 00:25:03,670 --> 00:25:05,250 Och det fungerar oerhört bra. 432 00:25:05,250 --> 00:25:07,810 433 00:25:07,810 --> 00:25:11,420 Vi vet alla dessa tekniker. 434 00:25:11,420 --> 00:25:16,500 De flesta operativsystem komma med röstigenkänning på denna punkt. 435 00:25:16,500 --> 00:25:20,940 Vi använder Siri och Cortana och Echo. 436 00:25:20,940 --> 00:25:25,070 Och dessa saker är baserade på denna typ av tre-skikt model-- 437 00:25:25,070 --> 00:25:30,620 en fonetisk modell i botten, en uttal modell i mitten, 438 00:25:30,620 --> 00:25:33,690 och en språkmodell ovanpå dem. 439 00:25:33,690 --> 00:25:37,630 >> Nu måste de göra en lite mer än att för att svara på frågor. 440 00:25:37,630 --> 00:25:43,000 Men erkännandet av vad du ordspråket beror just på det. 441 00:25:43,000 --> 00:25:45,700 Så låt oss ta ett exempel här. 442 00:25:45,700 --> 00:25:52,020 Så jag har min telefon sitter här uppe under dokumentkamera. 443 00:25:52,020 --> 00:25:56,110 Och vi kommer att uppmanas Siri några frågor. 444 00:25:56,110 --> 00:25:57,150 Okej? 445 00:25:57,150 --> 00:25:59,940 >> Så låt oss vakna upp min mobiltelefon. 446 00:25:59,940 --> 00:26:02,710 447 00:26:02,710 --> 00:26:05,000 Siri, vad är vädret som i New Haven i dag? 448 00:26:05,000 --> 00:26:07,670 449 00:26:07,670 --> 00:26:10,780 >> SIRI: Här är vädret för New Haven, Connecticut idag. 450 00:26:10,780 --> 00:26:11,890 >> BRIAN Scassellati: OK. 451 00:26:11,890 --> 00:26:16,720 Så du först såg att Siri igen vart och ett av de enskilda ord 452 00:26:16,720 --> 00:26:19,050 och sedan producerade ett svar. 453 00:26:19,050 --> 00:26:22,277 Vi pratar om hur detta svar kommer till stånd i en liten bit. 454 00:26:22,277 --> 00:26:24,110 Men nu när vi vet att detta bara är baserad 455 00:26:24,110 --> 00:26:28,880 på rå statistik och detta mönstermatchning typ av strategi, 456 00:26:28,880 --> 00:26:31,120 vi kan spela vissa spel med Siri. 457 00:26:31,120 --> 00:26:34,560 >> Så jag kan försöka igen. 458 00:26:34,560 --> 00:26:38,864 Siri, vad är vädret flodhäst New Haven, idag? 459 00:26:38,864 --> 00:26:39,810 >> SIRI: OK. 460 00:26:39,810 --> 00:26:44,245 Här är vädret för New Haven, Connecticut för i dag. 461 00:26:44,245 --> 00:26:46,120 BRIAN Scassellati: Siris inte skrämda av det 462 00:26:46,120 --> 00:26:50,980 eftersom det är hittat pattern-- "väder", "idag", "New Haven." 463 00:26:50,980 --> 00:26:54,420 Det är vad det svarar till, precis som ELIZA. 464 00:26:54,420 --> 00:26:54,920 Okej. 465 00:26:54,920 --> 00:26:59,390 Låt oss ge det en jämnare mer löjligt exempel. 466 00:26:59,390 --> 00:27:03,075 Siri, väder kronärtskocka bältdjur flodhäst New Haven? 467 00:27:03,075 --> 00:27:06,806 468 00:27:06,806 --> 00:27:08,400 >> SIRI: Låt mig kontrollera det. 469 00:27:08,400 --> 00:27:11,280 Här är vad jag hittade på webben för vad är kronärtskockor bältdjur 470 00:27:11,280 --> 00:27:13,780 flodhäst New Haven. 471 00:27:13,780 --> 00:27:14,760 >> BRIAN Scassellati: OK. 472 00:27:14,760 --> 00:27:20,400 Så om jag går tillräckligt långt borta från denna modell, 473 00:27:20,400 --> 00:27:24,365 Jag kan förvirra det eftersom det inte längre matchar mönster som den har. 474 00:27:24,365 --> 00:27:27,370 475 00:27:27,370 --> 00:27:29,390 Och det statistiska motor som säger, 476 00:27:29,390 --> 00:27:32,850 Vad är sannolikheten för att du har orden flodhäst och kronärtskocka 477 00:27:32,850 --> 00:27:34,440 tillsammans, och bältdjur? 478 00:27:34,440 --> 00:27:36,050 Det har kommit att bli något nytt. 479 00:27:36,050 --> 00:27:38,840 480 00:27:38,840 --> 00:27:40,610 >> Så dessa tekniker som vi använder varje dag. 481 00:27:40,610 --> 00:27:43,670 482 00:27:43,670 --> 00:27:47,800 Om vi ​​vill ta dem ett steg vidare, men om vi faktiskt 483 00:27:47,800 --> 00:27:53,930 vill kunna tala om vad det är att dessa system svarar på, 484 00:27:53,930 --> 00:28:00,630 Vi måste prata, återigen, om en mer grundläggande uppsättning frågor. 485 00:28:00,630 --> 00:28:05,370 Och det är ett ämne i kommunikation som vi kallar fråga svarare. 486 00:28:05,370 --> 00:28:07,028 Det vill säga, vi vill kunna att-- ja? 487 00:28:07,028 --> 00:28:07,944 PUBLIK: [OHÖRBAR]. 488 00:28:07,944 --> 00:28:10,789 489 00:28:10,789 --> 00:28:13,330 BRIAN Scassellati: Får vi i latent semantisk behandling? 490 00:28:13,330 --> 00:28:14,070 Så ja. 491 00:28:14,070 --> 00:28:17,820 Det finns en massa saker som är händer under ytan med Siri 492 00:28:17,820 --> 00:28:20,210 och i några av exemplen Jag ska visa dig nästa 493 00:28:20,210 --> 00:28:22,610 där det finns en hel del i termer av struktur 494 00:28:22,610 --> 00:28:25,260 av vad du säger som är viktigt. 495 00:28:25,260 --> 00:28:31,890 Och i själva verket är det en stor föregångare för nästa bild för mig. 496 00:28:31,890 --> 00:28:35,110 >> Så på samma sätt som vår taligenkänning byggdes upp 497 00:28:35,110 --> 00:28:39,620 av flera skikt, om vi vill förstå vad det är som faktiskt 498 00:28:39,620 --> 00:28:44,620 sagt, ska vi igen förlita sig på en flerskiktsanalys 499 00:28:44,620 --> 00:28:47,020 av texten som är erkänns. 500 00:28:47,020 --> 00:28:52,560 Så när Siri är faktiskt kan säg, ser jag hittade dessa ord. 501 00:28:52,560 --> 00:28:55,230 Nu vad ska jag göra med dem? 502 00:28:55,230 --> 00:28:59,110 Den första komponenten är ofta att gå igenom och försöka analysera 503 00:28:59,110 --> 00:29:03,010 strukturen av meningen. 504 00:29:03,010 --> 00:29:05,410 Och vad har vi sett i skolan, ofta, 505 00:29:05,410 --> 00:29:08,920 som en slags diagram meningar, kommer vi 506 00:29:08,920 --> 00:29:12,774 att erkänna att vissa ord har vissa roller. 507 00:29:12,774 --> 00:29:13,440 Dessa är substantiv. 508 00:29:13,440 --> 00:29:14,231 Dessa är pronomen. 509 00:29:14,231 --> 00:29:16,200 Dessa är verb. 510 00:29:16,200 --> 00:29:19,460 Och vi kommer att känna igen att för en viss grammatik, 511 00:29:19,460 --> 00:29:24,700 i det här fallet engelsk grammatik, finns giltiga sätt som jag kan kombinera dem 512 00:29:24,700 --> 00:29:26,280 och andra sätt som inte är giltiga. 513 00:29:26,280 --> 00:29:29,920 514 00:29:29,920 --> 00:29:33,870 >> Att erkännandet, denna struktur, kan vara tillräckligt för att hjälpa vägleda oss 515 00:29:33,870 --> 00:29:36,720 lite grann. 516 00:29:36,720 --> 00:29:39,820 Men det är inte tillräckligt för att vi ska kunna ge 517 00:29:39,820 --> 00:29:43,290 någon mening vad som sägs här. 518 00:29:43,290 --> 00:29:46,615 För att göra det, vi måste lita på en viss mängd av semantisk bearbetning. 519 00:29:46,615 --> 00:29:49,590 520 00:29:49,590 --> 00:29:55,080 Det vill säga, vi kommer att behöva leta på undersidan vad var och en av dessa ord 521 00:29:55,080 --> 00:29:57,400 faktiskt bedriver som en mening. 522 00:29:57,400 --> 00:30:01,150 Och i det enklaste sättet att göra detta, vi kommer att associera med varje ord 523 00:30:01,150 --> 00:30:06,930 att vi känner en viss funktion, en viss omvandling som det 524 00:30:06,930 --> 00:30:09,300 gör det möjligt att hända. 525 00:30:09,300 --> 00:30:14,470 >> I det här fallet kan vi märka ordet "John" som ett egennamn, 526 00:30:14,470 --> 00:30:18,160 att den bär med sig en identitet. 527 00:30:18,160 --> 00:30:21,530 Och vi kan märka "Mary" som på samma sätt. 528 00:30:21,530 --> 00:30:27,900 Medan ett verb som "älskar", som utgör ett speciellt förhållande 529 00:30:27,900 --> 00:30:31,582 att vi kan företräda. 530 00:30:31,582 --> 00:30:33,290 Nu, det betyder inte att att vi förstår 531 00:30:33,290 --> 00:30:37,680 vad kärlek är, men bara att vi förstår den i vägen för ett symboliskt system. 532 00:30:37,680 --> 00:30:40,480 Det vill säga, vi kan märka den och manipulera den. 533 00:30:40,480 --> 00:30:44,230 534 00:30:44,230 --> 00:30:49,120 >> Med var och en av dessa typer av tillvägagångssätt, någon typ av semantisk bearbetning 535 00:30:49,120 --> 00:30:57,060 här kommer att kräva lite lite kunskap och en hel del arbete 536 00:30:57,060 --> 00:30:59,020 på vår del. 537 00:30:59,020 --> 00:31:03,590 Vi är inte längre i riket där bara vanlig statistik 538 00:31:03,590 --> 00:31:07,320 kommer att vara tillräckligt för oss. 539 00:31:07,320 --> 00:31:11,330 Nu, för att gå från denna punkt till vara 540 00:31:11,330 --> 00:31:15,520 kunna tala om insidan av vad som faktiskt händer här, 541 00:31:15,520 --> 00:31:19,640 att kunna manipulera denna strukturera och förstå en fråga 542 00:31:19,640 --> 00:31:23,160 och sedan kunna att gå ut och söka, 543 00:31:23,160 --> 00:31:27,290 som kräver en mer komplex kognitiv modell. 544 00:31:27,290 --> 00:31:34,880 >> Det sätt på vilket dessa system byggs är för det mesta mycket, mycket arbets 545 00:31:34,880 --> 00:31:36,350 intensiv. 546 00:31:36,350 --> 00:31:39,490 De involverar människor spendera en hel del 547 00:31:39,490 --> 00:31:44,100 tid strukturera sätt i som dessa typer av meningar 548 00:31:44,100 --> 00:31:47,270 kan representeras i en viss logik. 549 00:31:47,270 --> 00:31:51,639 550 00:31:51,639 --> 00:31:53,430 Det blir även lite mer komplex, men. 551 00:31:53,430 --> 00:31:56,400 552 00:31:56,400 --> 00:31:59,660 >> Även när vi har behandlat med semantik, vi ska 553 00:31:59,660 --> 00:32:03,860 fortfarande måste titta på pragmatik av vad som sägs. 554 00:32:03,860 --> 00:32:08,620 Det är, hur gör jag relatera ord att jag måste något fysiskt ut 555 00:32:08,620 --> 00:32:12,054 där i världen eller åtmin stone någon informationskälla 556 00:32:12,054 --> 00:32:12,970 att jag kan manipulera? 557 00:32:12,970 --> 00:32:15,780 558 00:32:15,780 --> 00:32:20,790 >> Ibland dessa leder till underbara bitar av tvetydighet. 559 00:32:20,790 --> 00:32:24,470 "Red-hot stjärnan att gifta astronom." 560 00:32:24,470 --> 00:32:25,630 OK. 561 00:32:25,630 --> 00:32:28,540 Nu läser vi att när rolig typ av rubrik 562 00:32:28,540 --> 00:32:34,690 att vi skulle se på sena natten TV eftersom vi inte tolka "stjärna" 563 00:32:34,690 --> 00:32:38,630 att få sin himlakropp innebörd. 564 00:32:38,630 --> 00:32:43,390 Vi vet att det betyder mer vanliga skådespelare 565 00:32:43,390 --> 00:32:45,240 med höga halter av synlighet. 566 00:32:45,240 --> 00:32:47,770 567 00:32:47,770 --> 00:32:51,950 >> "Squad hjälper hund biter offer." 568 00:32:51,950 --> 00:32:55,550 Är det så att truppen är faktiskt därute hjälpa en hund 569 00:32:55,550 --> 00:32:59,620 att gå runt och bita offer? 570 00:32:59,620 --> 00:33:02,380 Eller är det så att det fanns en person som var 571 00:33:02,380 --> 00:33:04,625 biten av en hund som behövde lite hjälp? 572 00:33:04,625 --> 00:33:07,650 573 00:33:07,650 --> 00:33:11,480 Bara från att titta på syntaxen och semantiken av meningar, 574 00:33:11,480 --> 00:33:14,660 vi kan inte avgöra det. 575 00:33:14,660 --> 00:33:22,000 >> "Helikopter drivs av mänskliga flugor." 576 00:33:22,000 --> 00:33:27,330 Finns det, i själva verket, faktiska små saker som flyger runt det 577 00:33:27,330 --> 00:33:34,510 är människor med vingar driver helikoptrar för mänsklighetens bästa? 578 00:33:34,510 --> 00:33:38,960 Eller finns det en mekanisk anordning som får sin ström från en person? 579 00:33:38,960 --> 00:33:41,600 580 00:33:41,600 --> 00:33:46,500 >> När vi tittar på frågan svarar system, 581 00:33:46,500 --> 00:33:51,110 dessa är de lager som Vi måste ta itu med. 582 00:33:51,110 --> 00:33:54,890 Nu, den bästa och mest sortera av förekommande av dessa system 583 00:33:54,890 --> 00:34:00,640 idag kan göra saker på en nivå som är 584 00:34:00,640 --> 00:34:05,050 långt utöver vad vi hade för 10 år sedan. 585 00:34:05,050 --> 00:34:08,210 Här är en av de bästa systemen det är där ute idag. 586 00:34:08,210 --> 00:34:10,519 Och detta är ett system från IBM kallade Watson. 587 00:34:10,519 --> 00:34:13,040 588 00:34:13,040 --> 00:34:15,500 Detta är från våra vänner på IBM. 589 00:34:15,500 --> 00:34:19,810 Detta är Katherine banker, Jia Chen, och Priscilla Moraes ger oss 590 00:34:19,810 --> 00:34:26,323 en demonstration av Watson igår i IBM Yorktown. 591 00:34:26,323 --> 00:34:26,989 [VIDEOAVSPELNING] 592 00:34:26,989 --> 00:34:27,690 -Hur mår du? 593 00:34:27,690 --> 00:34:30,600 594 00:34:30,600 --> 00:34:31,980 >> -Jag mår bra. 595 00:34:31,980 --> 00:34:35,429 Jag är alltid glad när jag tänkande, särskilt när jag 596 00:34:35,429 --> 00:34:38,920 kan sval i dessa serverrum. 597 00:34:38,920 --> 00:34:40,170 -Vem Är din favorit skådespelare? 598 00:34:40,170 --> 00:34:43,870 599 00:34:43,870 --> 00:34:47,555 >> -Min Favorit skådespelare Angelina Jolie som Lara Croft 600 00:34:47,555 --> 00:34:54,800 i Tomb Raider eftersom hennes ursprungliga formen var som en virtuell karaktär som mig. 601 00:34:54,800 --> 00:34:56,760 >> -Hur Kan Watson hjälpa patienter? 602 00:34:56,760 --> 00:34:59,700 603 00:34:59,700 --> 00:35:03,755 >> -Är Planen för patienter till har tillgång till Watson direkt? 604 00:35:03,755 --> 00:35:08,050 Tillgång till Watson rådgivande applikationer varierar beroende på användningsfall. 605 00:35:08,050 --> 00:35:12,630 Men för närvarande, kommer Watson bara ge möjlig diagnos och behandling 606 00:35:12,630 --> 00:35:14,725 optioner till läkare eller sjuksköterska. 607 00:35:14,725 --> 00:35:17,680 I förekommande fall, patienter kan ge information 608 00:35:17,680 --> 00:35:21,210 Watson, kanske genom en portal webbgränssnitt, tablet, 609 00:35:21,210 --> 00:35:23,500 eller till och med en mobiltelefon. 610 00:35:23,500 --> 00:35:27,180 Till exempel kan en patient vara ombedd att beskriva sina symptom 611 00:35:27,180 --> 00:35:30,460 i naturligt språk direkt till en Watson-lösning, 612 00:35:30,460 --> 00:35:34,050 tillåter läkaren att fokusera på datainsamling diagnos och inte. 613 00:35:34,050 --> 00:35:38,379 614 00:35:38,379 --> 00:35:42,716 >> -Vem Mördade Abraham Lincoln? 615 00:35:42,716 --> 00:35:46,153 >> -John Wilkes Booth. 616 00:35:46,153 --> 00:35:52,373 >> -I Vilket år gjorde Arizona Diamond vinna World Series? 617 00:35:52,373 --> 00:35:55,295 >> -2001. 618 00:35:55,295 --> 00:35:58,710 >> [END SPELA] 619 00:35:58,710 --> 00:36:01,610 >> BRIAN Scassellati: Så dessa typer av system 620 00:36:01,610 --> 00:36:07,430 måste förlita sig på först och främst erkänner tal; andra, 621 00:36:07,430 --> 00:36:12,200 omvandla den till en meningsfull inre representation; och sedan, för det tredje, 622 00:36:12,200 --> 00:36:17,090 att kunna gå ut och hitta informationskällan som 623 00:36:17,090 --> 00:36:21,140 ger dem möjlighet att svara på den frågan. 624 00:36:21,140 --> 00:36:27,320 Denna nivå av komplexitet innebär samma typer av prog saker 625 00:36:27,320 --> 00:36:31,790 att du har varit gör i problemsamlingar. 626 00:36:31,790 --> 00:36:38,000 >> Vi kan analysera HTTP-begäranden i samma typ av lågaktivt mönster 627 00:36:38,000 --> 00:36:40,810 matchning som ELIZA kan göra. 628 00:36:40,810 --> 00:36:45,070 Vi kan konvertera dem i en intern representation, 629 00:36:45,070 --> 00:36:50,360 och sedan använda dem för att fråga några extern databas, eventuellt med hjälp av SQL. 630 00:36:50,360 --> 00:36:53,530 631 00:36:53,530 --> 00:36:56,260 Alla system som byggs idag 632 00:36:56,260 --> 00:37:00,520 att göra den här typen av naturliga språkkommunikations 633 00:37:00,520 --> 00:37:04,100 byggs på samma principer. 634 00:37:04,100 --> 00:37:09,530 >> Nu, även ett system som Watson är inte komplex nog 635 00:37:09,530 --> 00:37:14,820 för att kunna svara på godtyckliga frågor om vilket ämne som helst. 636 00:37:14,820 --> 00:37:20,060 Och i själva verket måste vara strukturerad inom en viss domän. 637 00:37:20,060 --> 00:37:24,440 Så du kan gå online och du kan hitta versioner av Watson som fungerar väl 638 00:37:24,440 --> 00:37:27,700 inom medicinsk informatik. 639 00:37:27,700 --> 00:37:31,490 Eller det finns en på nätet som bara handlar om hur 640 00:37:31,490 --> 00:37:34,540 att göra bra rekommendationer om vilken öl går med vilken mat. 641 00:37:34,540 --> 00:37:37,060 642 00:37:37,060 --> 00:37:41,870 Och inom dessa områden, det kan svara på frågor, 643 00:37:41,870 --> 00:37:46,130 hitta den information den behöver. 644 00:37:46,130 --> 00:37:48,270 >> Men du kan inte blanda och matcha dem. 645 00:37:48,270 --> 00:37:53,150 Systemet som har tränats med databasen över mat och öl 646 00:37:53,150 --> 00:37:56,830 fungerar inte bra när du plötsligt sätta in med den medicinska informatik 647 00:37:56,830 --> 00:37:59,770 databas. 648 00:37:59,770 --> 00:38:05,680 Så även våra bästa systemen idag förlita sig på en nivå av behandling 649 00:38:05,680 --> 00:38:11,570 där vi är hand kodning och byggnad i infrastrukturen för 650 00:38:11,570 --> 00:38:13,275 att göra detta system kör. 651 00:38:13,275 --> 00:38:16,360 652 00:38:16,360 --> 00:38:20,710 >> Nu, det sista ämnet jag vill för att kunna komma till idag 653 00:38:20,710 --> 00:38:23,960 handlar om icke-verbal kommunikation. 654 00:38:23,960 --> 00:38:29,290 En stor mängd information som vi kommunicerar med varandra 655 00:38:29,290 --> 00:38:35,490 inte komma till stånd genom enskilda ord som vi tillämpar. 656 00:38:35,490 --> 00:38:40,290 Det har att göra med saker som närhet, blick, din röst, 657 00:38:40,290 --> 00:38:42,270 din böjningsformer. 658 00:38:42,270 --> 00:38:46,620 Och att kommunikation är också något som många olika gränssnitt 659 00:38:46,620 --> 00:38:49,960 bryr sig mycket om. 660 00:38:49,960 --> 00:38:51,500 Det är inte vad Siri bryr sig om. 661 00:38:51,500 --> 00:38:56,250 Jag kan be Siri något med en röst eller i en annan ton i rösten, 662 00:38:56,250 --> 00:38:59,840 och Siri kommer att ge mig samma svar. 663 00:38:59,840 --> 00:39:05,260 Men det är inte vad vi bygger för många andra typer av gränssnitt. 664 00:39:05,260 --> 00:39:09,120 >> Jag vill presentera dig nu till en av robotarna. 665 00:39:09,120 --> 00:39:12,720 Detta byggdes av min longtime vän och kollega Cynthia 666 00:39:12,720 --> 00:39:16,010 Breazeal och hennes företag Jibo. 667 00:39:16,010 --> 00:39:20,090 Och detta robot-- vi ska att ha ett par volontärer 668 00:39:20,090 --> 00:39:22,520 komma att interagera med detta. 669 00:39:22,520 --> 00:39:26,200 Så kan jag ha två människor som är villiga att leka med roboten för mig? 670 00:39:26,200 --> 00:39:29,936 Varför inte komma på upp, och varför inte du kommer på dig. 671 00:39:29,936 --> 00:39:31,310 Om du skulle gå upp mig här, tack. 672 00:39:31,310 --> 00:39:36,520 673 00:39:36,520 --> 00:39:39,670 >> Och om jag kunde ha dig komma rätt hit. 674 00:39:39,670 --> 00:39:40,170 Tack. 675 00:39:40,170 --> 00:39:40,480 Hej. 676 00:39:40,480 --> 00:39:41,400 >> ALFREDO: Trevligt att träffas. 677 00:39:41,400 --> 00:39:42,010 Alfredo. 678 00:39:42,010 --> 00:39:42,520 >> BRIAN Scassellati: Alfredo. 679 00:39:42,520 --> 00:39:43,146 >> RACHEL: Rachel. 680 00:39:43,146 --> 00:39:44,228 BRIAN Scassellati: Rakel. 681 00:39:44,228 --> 00:39:45,154 Trevligt att träffas båda. 682 00:39:45,154 --> 00:39:46,820 Alfredo, jag kommer att ha dig gå först. 683 00:39:46,820 --> 00:39:47,990 Komma rätt upp här. 684 00:39:47,990 --> 00:39:51,870 Jag kommer att införa du-- om jag kan få detta av 685 00:39:51,870 --> 00:39:58,450 utan knackar microphone-- till en liten robot som heter Jibo. 686 00:39:58,450 --> 00:40:00,140 OK? 687 00:40:00,140 --> 00:40:04,260 >> Nu är Jibo utformad för att vara interaktivt. 688 00:40:04,260 --> 00:40:09,339 Och även om det kan ge dig tal, mycket av interaktionen med roboten 689 00:40:09,339 --> 00:40:09,880 är icke-verbal. 690 00:40:09,880 --> 00:40:12,450 691 00:40:12,450 --> 00:40:17,070 Alfredo, jag kommer att be er att säga något trevligt och gratis 692 00:40:17,070 --> 00:40:19,554 roboten, tack. 693 00:40:19,554 --> 00:40:20,845 ALFREDO: Jag tycker att du ser söt. 694 00:40:20,845 --> 00:40:24,114 695 00:40:24,114 --> 00:40:25,611 >> [Surrande ljudet] 696 00:40:25,611 --> 00:40:26,192 697 00:40:26,192 --> 00:40:27,108 BRIAN Scassellati: OK. 698 00:40:27,108 --> 00:40:30,110 699 00:40:30,110 --> 00:40:33,180 Dess svar är inte verbal. 700 00:40:33,180 --> 00:40:35,180 Och ändå gav dig både en tydlig bekräftelse 701 00:40:35,180 --> 00:40:39,680 att det hade hört vad du sa och även något sätt förstod det. 702 00:40:39,680 --> 00:40:40,530 OK? 703 00:40:40,530 --> 00:40:42,070 Steg tillbaka hit för en sekund. 704 00:40:42,070 --> 00:40:43,130 Tack. 705 00:40:43,130 --> 00:40:44,090 >> Rachel, om du vill. 706 00:40:44,090 --> 00:40:46,070 Nu, jag kommer att ge dig mycket hårdare jobb. 707 00:40:46,070 --> 00:40:48,361 Om du skulle stå här, säkerhetskopiera bara lite så 708 00:40:48,361 --> 00:40:50,280 Vi kan få dig på kamera och ser det här sättet. 709 00:40:50,280 --> 00:40:56,840 Jag kommer att be er att säga något verkligen menar och otäck till roboten. 710 00:40:56,840 --> 00:41:02,900 >> RACHEL: Vad du bara verkade att göra var helt absurt. 711 00:41:02,900 --> 00:41:03,840 >> [Brummande ljud] 712 00:41:03,840 --> 00:41:07,610 713 00:41:07,610 --> 00:41:09,030 >> Det var ännu mer absurt. 714 00:41:09,030 --> 00:41:10,120 Vad är det med dig? 715 00:41:10,120 --> 00:41:13,487 716 00:41:13,487 --> 00:41:16,207 Aw, inte må dåligt. 717 00:41:16,207 --> 00:41:17,040 Jag ska ge dig en kram. 718 00:41:17,040 --> 00:41:19,882 719 00:41:19,882 --> 00:41:21,090 BRIAN Scassellati: Okej. 720 00:41:21,090 --> 00:41:22,280 Tack, Rachel. 721 00:41:22,280 --> 00:41:24,565 Alfredo, Rachel, Tack killar mycket. 722 00:41:24,565 --> 00:41:26,840 >> [APPLÅDER] 723 00:41:26,840 --> 00:41:28,660 724 00:41:28,660 --> 00:41:34,470 >> Så denna typ av interaktion har i många sätt en del av samma regler 725 00:41:34,470 --> 00:41:36,950 och en del av samma struktur som vad vi 726 00:41:36,950 --> 00:41:39,950 kan ha i språklig interaktion. 727 00:41:39,950 --> 00:41:44,530 Det är både kommunikativ och tjänar ett viktigt syfte. 728 00:41:44,530 --> 00:41:48,590 Och att växelverkan, i många sätt, är utformad 729 00:41:48,590 --> 00:41:52,890 för att ha en viss effekt på person som interagerar med eller lyssna 730 00:41:52,890 --> 00:41:54,410 till roboten. 731 00:41:54,410 --> 00:41:56,450 >> Nu är jag turen att ha Jibo här i dag. 732 00:41:56,450 --> 00:42:00,550 Sam Spaulding är här hjälper oss med roboten. 733 00:42:00,550 --> 00:42:07,470 Och jag kommer att be Sam att ge oss en trevlig demo av Jibo dans 734 00:42:07,470 --> 00:42:09,720 att vi kan titta på slutet här. 735 00:42:09,720 --> 00:42:10,590 Så sätt igång, Jibo. 736 00:42:10,590 --> 00:42:11,550 >> SAM: OK, Jibo. 737 00:42:11,550 --> 00:42:14,430 Visa oss dina danssteg. 738 00:42:14,430 --> 00:42:17,310 >> [MUSIK SPELA] 739 00:42:17,310 --> 00:42:43,114 740 00:42:43,114 --> 00:42:44,780 BRIAN Scassellati: Okej, alla. 741 00:42:44,780 --> 00:42:46,865 Tack vare våra vänner på Jibo. 742 00:42:46,865 --> 00:42:49,426 >> [APPLÅDER] 743 00:42:49,426 --> 00:42:50,140 744 00:42:50,140 --> 00:42:54,990 >> Och tack vare våra vänner på IBM för att hjälpa ut i dag. 745 00:42:54,990 --> 00:42:57,300 Kommunikation är något att du kommer 746 00:42:57,300 --> 00:43:02,280 att se komma upp mer och mer som vi bygger mer komplexa gränssnitt. 747 00:43:02,280 --> 00:43:05,760 Nästa vecka kommer vi att prata om hur gränssnittet 748 00:43:05,760 --> 00:43:08,890 med datormotståndare i spel. 749 00:43:08,890 --> 00:43:12,950 Men om du har frågor om detta, Jag kommer att vara runt på kontorstid ikväll. 750 00:43:12,950 --> 00:43:17,610 Jag är glad att prata med dig om AI ämnen eller för att få in mer i detalj. 751 00:43:17,610 --> 00:43:18,927 Ha en bra helg. 752 00:43:18,927 --> 00:43:21,409 >> [APPLÅDER] 753 00:43:21,409 --> 00:43:21,909 754 00:43:21,909 --> 00:43:26,141 [MUSIK SPELA] 755 00:43:26,141 --> 00:46:42,879