[Muziek] DAVID MALAN: Dit is CS50. Dit is het einde van week 10. En jongen, hebben we een goede klasse voor u vandaag. We zijn zo enthousiast te nodigen twee van onze vrienden van Yale tot ons vandaag en te kijken naar de kruising van kunstmatige intelligentie, robotica, natuurlijke taalverwerking, en nog veel meer. En inderdaad, over de afgelopen weken, we hebben zeker besteed veel tijd, vooral in de eerdere psets, gericht op vrij laag niveau details. En het is heel gemakkelijk om het oog te verliezen van het bos door de bomen en opstaan ​​opgehangen aan loops en voorwaarden en wijzers zeker en dergelijke. Maar de realiteit is dat jullie nu de ingrediënten, waarmee u echt een aantal interessante problemen op te lossen, onder hen die onze vrienden aan de Yale werken gewoon verlegen van Cambridge. Dus laat mij eerst aan ons hoofd te introduceren assistent van Yale, Andy. [APPLAUS] ANDY: Allereerst, gewoon bedanken u voor het toestaan ​​van een paar Yalies tot pop naar beneden naar Cambridge vandaag. We hebben echt waarderen. Ten tweede, onze vrienden terug home-- Jason, bedankt voor het verblijf en loopt lezing. Hoop dat het allemaal goed in New Haven. Dus ja, ik ben super enthousiast om Scaz introduceren vandaag. Scaz loopt de robotica lab. Hij is een professor, zoals, vijf verschillende afdelingen aan de Yale. In zijn laboratorium, hij heeft vele, vele robots die hij graag spelen. Hij heeft, net als de coolste baan in de wereld. En hij krijgt van de soort rotzooi rond met alle dag lang en wat werk te doen, als goed. En dus hebben we eigenlijk brachten een Van hen neer met ons vandaag. Dus zonder verder oponthoud, Scaz is gaan om verder te gaan en de invoering van ons zijn robot vriend. [APPLAUS] BRIAN Scassellati: Bedankt, David. Bedankt, Andy. Het is zo geweldig te zijn hier met iedereen vandaag. Ik wil eerst heel duidelijk zijn dat de CS50 personeel hier in Cambridge heeft ongelooflijk gastvrij voor ons geweest. We zijn zo dankbaar voor alles ze hebben gedaan om ons te steunen. En dus we zouden willen kunnen naar de vriendelijkheid terug. Dus vandaag, krijgen we aan te kondigen dat we gaan naar een nieuwe hebben, one-of-a-kind CS50 event gebeurt in New Haven volgende week. En dit is de CS50 Research Expo. Dus we gaan worden uitnodigen everyone-- CS50 studenten, personeel van zowel Harvard en Yale-- aan naar beneden komen en bezoek ons ​​op vrijdag. We zullen een breed scala van meer dan hebben 30 verschillende mensen presenteren en exhibiting-- upperclassmen tonen een aantal van hun onderzoek producten. We zullen een aantal startups hebben, zelfs, op zoek voor een klein beetje van de nieuwe tech talent, startups van zowel Harvard en Yale. En we zullen een aantal groepen studenten hebben op zoek naar een aantal nieuwe leden. Het gaat om een ​​zeer spannende tijd. Hopelijk degenen onder u die naar beneden voor de Harvard-Yale spel staat om te stoppen zal zijn door een beetje vroeg, midden in het centrum van de campus, Sterling Memorial Library. We gaan een reeks van hebben exposities die variëren van autonome zeilboten aan manieren om software naar middeleeuwse handschriften bewaren. We gaan ad hebben hoc netwerken en mensen educatieve software codering in Kaapstad. We zullen computer muziek demonstraties. En we hebben natuurlijk meer robots. Dus we hopen dat u zult bij ons voor dit evenement. Er zij veel te leuk, een beetje eten, en veel interessante dingen om over te praten. Dus vandaag, we gaan praten over natuurlijke taalverwerking. En dit is de poging voor ons om een ​​nieuwe manier van interfacing bouwen met onze apparaten, omdat voor de laatste paar weken, je bent gericht op hoe het komt dat U kunt code schrijven, schrijf software dat is een manier om te kunnen zeggen een machine, dit is wat ik wil dat je doet. Maar we moeten niet te verwachten dat alles dat is er uit die wordt gebruikt door iedereen in de wereld gaat bedreven te zijn in dit soort instructie. Dus we een onderscheid maken tussen de computer talen en natuurlijke languages-- dat is, de dingen die gebruik mens communiceren met andere mensen. En we proberen interfaces die gebruik maken deze natuurlijke communicatie mechanismen. Nu, net als elk ander onderwerp dat we zijn begonnen met in CS50, we gaan beginnen met de eenvoudigste beetje van de natuurlijke taalverwerking dat we ons kunnen voorstellen. We gaan beginnen met de historische deel van de natuurlijke taal. En dan gaan we bouwen aan meer en meer recente systemen en hebben een aantal leuke demo's langs de weg. Dus we gaan beginnen met wat was waarschijnlijk de eerste natuurlijke taal verwerkingssysteem. Dit was een softwaresysteem geschreven in 1966 door Joseph Weizenbaum genoemd ELIZA. En ELIZA werd ontworpen om repliceren de aard van de interactie je zou hebben met een Rogeriaanse psychotherapeut. Nu, de Rogerians, hadden ze een idee dat psychotherapie betrokken kunnen terug spiegel aan een patiënt en met ze praten, in feite, slechts bij hen een klein beetje van de therapeut. Dat wil zeggen, alles dat de therapeut zei moest gewoon een weerspiegeling zijn van wat de patiënt vertelde hen. Dus laten we proberen deze demo. Hebben we een vrijwilliger die zou zijn bereid zijn om hun diepste delen, donkerste en / of valse geheimen met ELIZA? Tuurlijk, waarom kom je niet op maximaal. Fantastisch. En jouw naam? MILES: Miles. BRIAN Scassellati: Miles. Leuk je te ontmoeten, Miles. Als u wilt vasthouden dat. En we gaan een versie van ELIZA die we hebben gerepliceerd binnen de CS50 IDE. En we kijken naar de bron code om dit in een tijdje. Maar voor nu, we zijn gewoon gaan om het te roepen door het intikken van Eliza. En ELIZA zal je antwoorden te geven die zullen worden in alle hoofdsteden. En ga je een paar vragen stellen. En we zullen reageren en typ in reacties op ELIZA. Dus ELIZA heeft gezegd: "Hallo, ik ben ELIZA. Wat is je probleem?" Wat zou u graag willen ELIZA vertellen over vandaag? MILES: Ik kan alleen maar in slaap vallen als ik konijntjespantoffels op. BRIAN Scassellati: Oké. Prima. [GELACH] "Ik kan alleen maar in slaap vallen met bunny slippers op. " En ELIZA zegt: "Zeg, heb je nog psychische problemen? Misschien is dit een goede indicator. " OK. Dus wat wil je reageren? MILES: Ja. BRIAN Scassellati: Ja. Man van veel woorden. Ik geniet van dat. Eliza zegt: "Je lijkt heel positief." MILES: Nee, ik inderdaad een elektron. BRIAN Scassellati: "Nee. In feite ben ik een elektron. " "Heb je bij mij komen omdat je een elektron? " Nu kunnen we een aantal van zien de things-- Ik ga om u te onderbreken voor slechts een seconde, Miles. Ga niet overal. We zijn nog niet klaar met je. ELIZA is, in sommige opzichten, reageert op bepaalde dingen dat hij zegt, maar zonder een echt begrip. En het is ook terug wat napraten van de onderdelen van zijn straf. Dus we zeiden: "No. In feite ben ik een elektron. " Eliza antwoordde terug, "Kom je voor mij omdat je een elektron? " Prima. Laten we het nog een reactie hier. Geef het een goede, Miles. MILES: Good one? Ja, kunt u mij helpen. BRIAN Scassellati: "Ja. Kunt u mij helpen. '' Weet je het zeker? " MILES: No. BRIAN Scassellati: No. "Wat betekent dat voorstellen voor u?" MILES: Ik kan niet een elektron zijn. BRIAN Scassellati: "Ik kan een elektron zijn. " "Bedoel je dat geen enkel negatief zijn?" Prima. Dus Miles, dankuwel. MILES: Dank je wel. BRIAN Scassellati: Heel erg bedankt. [APPLAUS] Dus dit ELIZA programma, in vele opzichten, reageert alleen maar om de stukken dat we het verstrekken zonder diepe begrip van wat er hier gebeurt. Dit is een soort systeem genoemd patroonherkenning, waarbij we op zoek naar bepaalde stukjes tekst die we dan uit te gaan van de te nemen wat werd als input, converteren, potentieel in zekere zin, en geef het dan terug naar de gebruiker. Heeft iemand van jullie denken dat ELIZA eigenlijk presterende geldig psychoanalyse hier? Één persoon, misschien. PUBLIEK: [onverstaanbaar]. BRIAN Scassellati: En hoe maakt dat je je voelt? Ja, in feite doet. En we gaan om te zien, in feite, de broncode voor in slechts een moment. En dus je gaat worden precies kunnen doen. Nu Eliza is een vorm van wat zouden we vandaag de dag een praatje bot noemen. Het gaat gewoon door tekst die u verleent, geeft het absolute minimum van begrip of verwerking, papegaaien en het terug naar u. Dus laten we eens een kijkje nemen, conceptueel, en praten over wat is dat ELIZA eigenlijk doet. ELIZA neemt een sentence-- laten we zeggen: "Ik wil mijn baas te imponeren." En ELIZA zoekt door die zin en proberen te vinden en overeenkomen met bepaalde patronen. Dus, bijvoorbeeld één van de patronen dat ELIZA is op zoek naar de woorden "Ik wil." En elke keer is het iets ziet dat heeft "Ik wil" in het, formuleert een antwoord. En dat antwoord is een vaste string. In dit geval is het "waarom wil je? ' En ik zet een kleine ster op het einde, want dat is gewoon het begin van onze reactie. De ster geeft aan dat we gaan naar de rest utterance-- van de gebruiker "mijn baas te imponeren" - en we gaan te voegen dat op het einde van de string. Dus nu, in plaats van te zeggen, "waarom wil je mijn baas te imponeren, " er is een klein beetje extra verwerking die wij zullen doen. Dat wil zeggen, we moeten zetten enkele van de voornaamwoorden hier van "mijn baas" naar "je baas." En er misschien een paar andere zijn veranderingen die we nodig hebben om te maken. Dus in plaats van alleen maar steken zij direct op het einde, wat we zullen doen is zullen we de rest van de te nemen utterance-- gebruiker in wit hier-- en we nemen het een stuk op een tijd en zet elke snaar token, elk woord, in de zin. Dus we zullen het woord nemen "naar." Er is geen conversie die we nodig hebben om dat te doen. "Indruk." Er is geen conversie we moeten om daar te doen. "Mijn" om te zetten in "uw". En 'baas' We zullen gewoon laten zoals "baas." En uiteindelijk, alles die eindigt met een punt, we zullen het omzetten in een vraag. Deze zeer eenvoudige patroonherkenning is eigenlijk heel succesvol. En toen dit werd geïntroduceerd in 1966-- Joseph Weizenbaum geprogrammeerde dit op een computer. Nu, computers destijds waren niet desktop modellen. Ze werden gedeelde bronnen. En zijn studenten zou gaan en chatten met ELIZA. Uiteindelijk moest hij de toegang te beperken omdat zijn studenten waren niet krijgen van een werk. Ze waren gewoon kletsen met ELIZA. En in feite moest hij brand zijn assistent, die bracht al haar tijd in gesprek met ELIZA over haar diepe en zorgwekkende problemen. Iedereen die deze systemen gebruikt begon ze te vermenselijken. Ze begonnen te denken van hen als het zijn levende en echte mensen. Ze begonnen om een ​​aantal van te erkennen de dingen die ze zeiden kwamen terug naar hen. En zij werden uitzoeken dingen over zichzelf. En in feite zelfs deskundigen, zelfs de psychotherapeuten, begon te vrezen dat, in feite, Misschien ELIZA zou zijn deze te vervangen. En zelfs de computer wetenschappers bang dat we waren zo dicht bij het oplossen van natuurlijke taal. Nu, dat was nergens in de buurt van waar. Maar dat is hoe indrukwekkend deze systemen kan lijken. Dus laten we beginnen te kijken eronder en probeer een beetje een vraag krijgen waar deze code daadwerkelijk gebeurt. Dus we zullen deze code maken daarna beschikbaar. Dit is een zeer eenvoudige en directe port van de oorspronkelijke ELIZA uitvoering. Dus sommige van deze stilistische dingen die je hier ziet zijn niet stilistisch wat we zouden willen dat je doet of wat we hebben leer je te doen. Maar we hebben geprobeerd om hen te houden hetzelfde over de vele havens dat dit dus dat heeft gehad heeft de smaak van het origineel. Dus we gaan op te nemen een heleboel dingen, en dan zullen we een hebben set van zoekwoorden, dingen dat ELIZA herkent en direct reageren. Dus als je woorden als "kunt u" of "ik niet" of "nee" of "ja" of "droom" of "hello", dan ELIZA zal selectief reageren op die. We zullen ook een aantal dingen dat wij zullen ruilen, zoals omzetten van "mijn" naar "je." En dan zullen we een reeks van reacties hebben dat voor elk van deze categorieën, zullen we door middel van roteren deze verschillende reacties. Dus als ik zeg "ja" drie keer op een rij, ik zou kunnen krijgen drie verschillende reacties van ELIZA. De code is dus eigenlijk opmerkelijk eenvoudig. Als ik naar beneden scrollen verleden al deze reacties die we hebben geprogrammeerd en we krijgen omlaag naar onze, we gaan initialiseren een paar verschillende variabelen en doe een beetje van het huishouden in het begin. Maar dan is er absoluut een set van de code die je kunt begrijpen. Een groot terwijl de lus die zegt dat ik ben gaat dit over en herhalen. Ik las in een lijn, en ik zal winkel die in een input string. Ik zal controleren en te zien of het de speciale trefwoord "bye", die betekent dat het programma te verlaten. En dan zal ik controleren en zien of iemand zich slechts herhalen opnieuw en opnieuw. En ik zal schreeuwen tegen hen als ze dat doen. Ik zeg "jezelf niet te herhalen." Zolang geen van die gebeuren, zullen we vervolgens scannen door en lus door, op lijnen 308 om 313 hier, en controleren en te zien zijn elk van die trefwoord zinnen die in de input dat ik net was gegeven? Als er een match voor hen, ook dan zal ik die locatie herinneren. Ik herinner me dat zoekwoord. En ik zal in staat zijn om een ​​reactie te bouwen. Als ik niet vinden, wel dan, het laatste wat in mijn trefwoord scala zal mijn standaard antwoord, wanneer niets anders past. Ik zal vragen als: 'Waarom heb je kom hier? "of" Hoe kan ik u helpen? " dat zijn slechts gedeeltelijk geschikt ongeacht wat de ingang is. We zullen dan opbouwen reactie Eliza's. We zullen in staat zijn om te nemen dat base reactie, net zoals we deden in dat "mijn baas" voorbeeld. Als dat alles is dat er is-- als het slechts één string die ik moet respond-- Ik kan gewoon stuur het terug. Als het een sterretje bij het einde van het, dan zal ik verwerken elke individuele token in de rest van het antwoord van de gebruiker en voeg die in, het omwisselen van woord voor woord als ik moet. Dit alles is geheel iets dat je zou kunnen bouwen. En inderdaad, de manier waarop we hebben verwerkt command line argumenten, de manier waarop je hebt verwerkt via HTTP-verzoeken volgen dezelfde soort regels. Ze zijn patroonherkenning. Dus ELIZA had een relatief belangrijke impact op de natuurlijke taal want het leek het alsof het was een zeer haalbaar doel, zoals een of andere manier zouden we in staat om dit probleem direct oplossen. Nu, dat is niet te zeggen dat ELIZA doet alles wat we zouden willen doen. Zeker niet. Maar we moeten in staat zijn om iets meer te doen. Onze eerste stap om te gaan dan ELIZA gaat in staat zijn om naar te kijken niet tekst wordt ingevoerd in het toetsenbord, maar toespraak, daadwerkelijke spraak opgenomen in een microfoon. Dus als we kijken naar deze verschillende stukken, we zijn gaat te hebben om een ​​set van modellen op te bouwen. We gaan moeten kunnen te gaan van de low-level akoestische information-- toonhoogte, amplitude, frequency-- en zetten die in sommige eenheden dat we in staat zijn om gemakkelijker te manipuleren en tenslotte manipuleren in woorden en zinnen. Dus de meeste spraakherkenning systemen die er vandaag de dag volgt een statistische model waarin wij bouwen drie afzonderlijke representaties van wat dat audiosignaal bevat eigenlijk. We beginnen met een fonetische model dat praat over net de basis geluiden die ik produceer. Ben ik het produceren van iets dat B als in jongen of een D als in de hond? Hoe herken ik die twee verschillende telefoons als afzonderlijke en onderscheiden? Op de top van dat, zullen we dan bouwen een woord Uitspraak model, iets wat elkaar verbindt die individuele telefoons en combineert ze in een woord. En daarna gaan we de woorden te nemen en we zullen ze monteren met een taal model in een volledige zin. Nu, we gaan om te praten over elk deze los en afzonderlijk. Maar deze drie modellen zijn allemaal gewoon de statistieken zijn. En dat betekent dat wanneer we werken met hen, zullen we in staat zijn om te werken met ze allemaal tegelijk. Prima. Laten we beginnen met onze fonetische model. Dus fonetische modellen vertrouwen op een computationele techniek riep verborgen Markov modellen. Dit zijn grafische modellen waarin ik hebben en herkennen een toestand van de wereld zoals gekenmerkt door een reeks van functies. En dat staat beschreven ene deel van een actie die ik ben bezig met. Dus als ik denk aan het maken het geluid "ma" zo moeder, Er zijn verschillende componenten die geluid. Er is een gedeelte waar ik trek in de adem. En dan portemonnee ik mijn lippen. En ik rol mijn lippen een beetje terug beetje dat 'ma' geluid te maken. En dan is er nog een release. Mijn lippen komen uit elkaar. Lucht wordt uitgestoten. "Ma." Deze drie verschillende delen zou vertegenwoordigd door staten in deze graph-- het begin, het midden en het einde. En ik zou overgangen die stond me toe om te reizen van de ene staat het vervolgens met een bepaalde waarschijnlijkheid. Dus, bijvoorbeeld, dat M klinkt misschien een zeer hebben, zeer korte intake bij de beginning-- "mm" - en dan een langere, vibrerende fase waar ik met mijn lippen op elkaar en bijna humming-- "mmmm" - en vervolgens een zeer korte plosief waar ik verdrijven breath-- "ma." De verborgen Markov model is bedoeld om het feit te vangen dat de manier waarop die ik maak dat geluid "ma" gaat iets anders te zijn de timing, is de frequentie, en zijn functies dan de manier waarop je het te maken of de manier waarop ik zou maken wanneer ik praat over de verschillende toepassingen van de brief. "Moeder" en "kan ik" zal klinkt iets anders. Dus om een ​​herkennen bepaald geluid, zouden we bouwen Markov modellen, deze verborgen Markov modellen, van alle mogelijke telefoon die ik zou willen erkennen, alle mogelijke geluid, en dan kijken naar de akoestische gegevens die ik heb en bepalen statistisch welke de meest waarschijnlijke dit geluid te hebben geproduceerd. OK. Met dat model, dan zijn we beginnen te bouwen op de top van het. We nemen een uitspraak model. Nu, soms uitspraak modellen zijn eenvoudig en gemakkelijk want er is maar één manier om iets uit te spreken. Andere tijden, ze zijn een beetje meer ingewikkeld. Hier is een uitspraak gids voor dat de rode ding dat is een vrucht die je maakt ketchup uit. Mensen denk niet dat het een vrucht. Rechts? Nu zijn er vele manieren dat mensen dit woord zal uitspreken. Sommigen zullen zeggen "teen-mei-teen." Sommigen zullen zeggen "teen-mah-teen." En we kunnen vastleggen dat met één van deze grafische modellen waar nogmaals, overgangen vertegenwoordigen wij als een bepaalde waarschijnlijkheid en bijbehorende kans ermee. Dus in dit geval, als ik te volgen de top route door dit hele grafiek, Ik zou beginnen bij de letter op de uiterst links, de "ta" geluid. Ik zou de bovenste helft te nemen, de "oh," en dan een "ma" en dan een "a," en dan een "ta" en een "oh." "Toe-mei-teen." Als ik nam de bodem weg door dit krijg ik 'ta-mah-teen. " En als ik ging naar beneden en vervolgens up, ik zou krijgen "ta-mei-teen." Deze modellen vangen deze verschillen want als we zetten een van deze erkenning systemen, het zal moeten werken met veel verschillende soorten mensen, veel verschillende accenten, en zelfs verschillende toepassingen van dezelfde woorden. Tot slot, op de top van dat, zullen we iets op te bouwen dat ziet er echt ingewikkeld, riep de taal-model, maar in feite is het eenvoudigste de drie omdat deze werken wat worden genoemd n-gram modellen. En in dit geval, ik ben toont u een twee-delige n-gram model, een bigram. We gaan naar de fysieke het idee te maken die soms, sommige woorden vaker een volgen bepaald woord dan anderen. Als ik zei gewoon "weer," het volgende woord zou "vandaag" waarschijnlijk of zou kunnen zijn "het weer voorspellen morgen. " Maar het is onwaarschijnlijk dat "de weersvoorspelling artisjok. " Wat een taal model doet is het vangt die statistisch door tellen van een aantal zeer grote corpus, alle instances waarin één woord andere volgt. Dus als ik een groot corpus-- zoals elke Wall Street Journal die is geproduceerd sinds 1930, dat een van de standaard corpuses-- en ik kijk door alle die tekst, en ik reken up hoeveel keer na "voorspellen" zie ik "vandaag" en hoe vaak moet ik zie "voorspellen", gevolgd door "artisjok," het eerste gaat veel waarschijnlijker zijn. Het gaat om te verschijnen veel vaker. En dus zal het een hogere hebben waarschijnlijkheid gekoppeld. Als ik wil achterhalen van de waarschijnlijkheid van een gehele uiting, dan, ik breek het gewoon. Dus de kans gehoor de zin "de rat aten kaas" is de waarschijnlijkheid van het woord "de" starten van een zin, en de kans dat de woord "rat" volgt het woord "de" en de kans dat de woord "at" volgt "rat" en de waarschijnlijkheid dat "cheese" volgt "aten." Dit klinkt als een heleboel statistieken, veel kansen. En dat is alles wat het is. Maar het verbazingwekkende is als je dit doet met een voldoende groot monster van data, het werkt. En het werkt enorm goed. We weten allemaal dat deze technologieën. De meeste besturingssystemen komen met spraakherkenning op dit punt. We maken gebruik van Siri en Cortana en Echo. En deze dingen zijn gebaseerd op Dit type drielaags model-- fonetisch model bij de bodem, een Uitspraak model in het midden, en een taalmodel erbovenop. Nu hebben ze een beetje meer te doen dan dat om vragen te beantwoorden. Maar de erkenning van wat je bent gezegde hangt precies op dat. Dus laten we eens een voorbeeld hier. Dus ik heb mijn telefoon zitten hier onder de document camera. En we gaan vraagt Siri een paar vragen. Prima? Dus laten we wakker mijn telefoon hier. Siri, wat is het weer zoals in New Haven vandaag? SIRI: Hier is het weer voor New Haven, Connecticut vandaag. BRIAN Scassellati: OK. Dus eerst je zag dat Siri erkend elk van de afzonderlijke woorden en produceerde een reactie. We zullen praten over hoe die reactie komt in een klein beetje. Maar nu we weten dat dit enkel is gebaseerd de ruwe statistieken en dit patroonherkenning soort aanpak, kunnen we wat spelen met Siri. Dus ik kan het opnieuw proberen. Siri, wat is het weer nijlpaard New Haven, vandaag? SIRI: OK. Hier is het weer voor New Haven, Connecticut voor vandaag. BRIAN Scassellati: Siri's niet afgeschrikt door dat omdat het vond de pattern-- "weer", "vandaag", "New Haven." Dat is wat het reageert om, net als ELIZA. Prima. Laten we het nog eens belachelijker voorbeeld. Siri, weer artisjok gordeldier nijlpaard New Haven? SIRI: Laat me controleren dat. Hier is wat ik gevonden op het web voor wat zijn artisjokken armadillo nijlpaard New Haven. BRIAN Scassellati: OK. Dus als ik ver genoeg weg van dit model, Ik ben in staat om het te verwarren, omdat het geen langer overeenkomt met het patroon dat het. En dat statistische motor die zegt, wat is de kans dat je hebt de woorden nijlpaard en artisjok samen, en gordeldier? Dat moet iets nieuws zijn. Dus deze technologieën die we dagelijks gebruiken. Als we willen hen een stap verder, hoewel, als we eigenlijk willen in staat zijn om te praten over wat het is dat deze systemen reageren op, we spreken, wederom ongeveer meer fundamentele reeks vragen. En dat is een onderwerp in de communicatie dat noemen we vraag antwoordapparaat. Dat wil zeggen, we willen kunnen to-- ja? PUBLIEK: [onverstaanbaar]. BRIAN Scassellati: Krijgen we in semantische verwerking? Ja dus. Er zijn een heleboel dingen die zijn gebeurt onder de oppervlakte met Siri en in sommige van de voorbeelden Ik ga u de volgende tonen waar er nogal wat wat betreft de structuur van wat je zegt, dat is belangrijk. En, in feite, dat is een geweldig voorloper voor de volgende dia voor mij. Dus net zoals onze spraakherkenning opgebouwd uit meerdere lagen, als we willen begrijpen wat het is dat eigenlijk gezegd zijnde, zijn we weer gaan rekenen op een meerlaags analyse van de tekst dat wordt herkend. Dus als Siri is eigenlijk in staat om zeg, kijk ik vond deze woorden. Wat moet ik nu doen met hen? De eerste component is vaak ga door en probeer te analyseren de structuur van de zin. En in wat we hebben gezien op de lagere school, vaak, als een soort van diagrammen zinnen, we gaan dat bepaalde herkennen woorden hebben bepaalde rollen. Dit zijn zelfstandige naamwoorden. Deze zijn voornaamwoorden. Dit zijn werkwoorden. En we gaan herkennen voor een bepaald grammatica, In dit geval Engels grammatica er geldige manieren waarop ik ze kan combineren en andere manieren die niet geldig zijn. Dat de erkenning, dat de structuur, genoeg om te helpen gids ons zou kunnen zijn een klein beetje. Maar het is niet genoeg ons te kunnen verlenen elke betekenis aan wat hier gezegd wordt. Om dat te doen, zullen we moeten vertrouwen op bepaalde hoeveelheid semantische verwerking. Dat wil zeggen, we zullen moeten kijken bij onder wat elk van deze woorden feitelijk werkzaam als betekenis. En in de eenvoudigste manier om dit te doen, we gaan associëren met elk woord dat we weten een bepaalde functie, een zekere transformatie dat laat gebeuren. In dit geval zouden we het etiket van de Het woord "Jan" als een eigennaam, dat het met zich identiteit. En we kunnen bestempelen "Maria", zoals op dezelfde manier. Overwegende dat een werkwoord als "liefdes," dat vormt een bijzondere relatie dat we in staat zijn om te vertegenwoordigen. Nu, dat betekent niet dat dat we begrijpen wat liefde is, maar alleen dat we begrijpen in de vorm van een symbolische systeem. Dat wil zeggen, we kunnen bestempelen het en manipuleren. Bij elk van deze typen benaderingen elke vorm van semantische verwerking hier gaat om een ​​beetje vereisen beetje kennis en een hoop werk van onze kant. We zijn niet langer in het rijk waarbij gewoon statistieken gaan genoeg voor ons te zijn. Om nu te gaan vanaf dit punt aan het zijn in staat om te praten over de binnenkant van wat eigenlijk hier gebeurt, om dit te kunnen manipuleren structureren en begrijpen van een vraag en dan kunnen om uit te gaan en te zoeken, dat een vereist complexe cognitieve model. De wijze waarop deze systemen worden gebouwd is grotendeels zeer, zeer arbeidsintensief intensive. Het gaat om mensen besteden een groot deel tijd structureren van de manieren die dit soort zinnen kunnen worden vertegenwoordigd in bepaalde logica. Het wordt nog een beetje meer complexe, dat wel. Zelfs als we hebben behandeld met semantiek, zullen we nog steeds te kijken naar de pragmatiek van wat er wordt gezegd. Dat is, hoe kan ik vertellen de woorden dat ik moet iets fysiek uit er in de wereld of bij minste enige informatiebron dat ik kan manipuleren? Soms zijn deze leiden tot prachtige stukjes van ambiguïteit. "Rood-hete ster te astronoom trouwen." OK. Nu, dat als we lezen grappig soort kop dat we zouden zien op de late night tv omdat we niet "ster" te interpreteren zijn hemellichaam betekenis. We weten dat het betekent hoe gemeengoed acteur of actrice met grote hoeveelheden zichtbaarheid. "Squad helpt hond beet het slachtoffer." Is het dat de ploeg is eigenlijk daar het assisteren van een hond in rond te gaan en bijten slachtoffers? Of is het dat er een persoon die was gebeten door een hond die wat hulp nodig? Door alleen naar de syntaxis en de semantiek van de zinnen, kunnen we niet bepalen dat. "Helicopter aangedreven door menselijke vliegen." Zijn er in feite feitelijke kleine dingen vliegen rond dat zijn mensen met vleugels voeden helikopters voor het welzijn van de mensheid? Of is er een mechanisch apparaat dat zijn kracht ontleent aan een persoon? Wanneer we kijken naar vraag beantwoorden van systemen, Dit zijn de lagen die we moeten behandelen. Nu, de beste en de meest soort van heersende van deze systemen vandaag kunnen doen dingen op een niveau dat zijn veel verder dan wat we hadden 10 jaar geleden. Hier is een van de beste systemen dat is daar vandaag. Dit is een systeem IBM Watson genoemd. Dit is van onze vrienden bij IBM. Dit is Katherine banken, Jia Chen, en Priscilla Moraes geeft ons een demonstratie van Watson gisteren in IBM Yorktown. [VIDEO AFSPELEN] -Hoe gaat het met je? -Het gaat goed met me. Ik ben altijd blij als ik ben denken, vooral als ik kan koel in deze server kamers blijven. -Wie Is je favoriete actrice? -Mijn Favoriete actrice Angelina Jolie als Lara Croft in Tomb Raider, omdat haar oorspronkelijke vorm was als een virtueel personage zoals ik. -hoe Kan Watson patiënten helpen? -is Het plan voor patiënten hebben toegang tot Watson direct? Toegang tot Watson adviserende toepassingen zal verschillen per use case. Maar momenteel wordt alleen voorzien Watson mogelijke diagnose en behandeling opties medische professional. In voorkomend geval, patiënten kan informatie verstrekken Watson, wellicht via een portal webinterface, tablet, of zelfs een mobiele telefoon. Bijvoorbeeld kan een patiënt zijn gevraagd hun symptomen beschrijven in natuurlijke taal direct een Watson-oplossing, waardoor de arts te richten op diagnose en geen gegevensverzameling. -die Vermoord Abraham Lincoln? -John Wilkes Booth. -in Welk jaar heeft de Arizona Diamondbacks winnen van de World Series? -2001. [END AFSPELEN] BRIAN Scassellati: So dit soort systemen moeten vertrouwen op allereerst erkenning van de spraak; tweede, omzetten in een betekenisvolle interne vertegenwoordiging; en, ten derde, in staat om uit te gaan en vinden de informatiebron die laat hen toe om die vraag te beantwoorden. Dit niveau van complexiteit impliceert dezelfde soort dingen programmatische dat u bent geweest doet in probleem sets. We zijn in staat om HTTP-verzoeken te ontleden in hetzelfde type low-level patroon matching dat ELIZA kan doen. We zijn in staat om die te zetten tot een interne representatie, en vervolgens te gebruiken om wat te vragen externe database, eventueel met SQL. Alle systemen die worden gebouwd vandaag dit soort natuurlijke do taal communicatie worden gebouwd op dezelfde principes. Nu, zelfs een systeem als Watson is niet complex genoeg te kunnen beantwoorden willekeurige vragen over elk onderwerp. En inderdaad, ze moeten gestructureerd binnen een gegeven domein. Dus je kunt online gaan en je kunt vinden versies van Watson die goed werken binnen de medische informatica. Of er is een online dat alleen maar bezighoudt met hoe om goede aanbevelingen over te maken wat bier gaat die met voedsel. En binnen deze domeinen, het kan vragen te beantwoorden, vinden de informatie die zij nodig heeft. Maar je kunt niet mixen en matchen. Het systeem dat is opgeleid met de database van eten en bier werkt niet goed wanneer je plotseling zet het in de medische informatica database. Dus zelfs onze beste systemen van vandaag vertrouwen op een niveau van verwerking waarin we de hand codering en bouwen in de infrastructuur in orde dit systeem run te maken. Nu, het laatste onderwerp dat ik wil kunnen nu krijgen gaat over non-verbale communicatie. Een grote massa van de informatie die communiceren met elkaar komt niet tot stand door de individuele woorden die we toepassen. Het heeft te maken met zaken als nabijheid, blik, de toon van je stem, uw verbuiging. En dat de communicatie is ook iets dat veel verschillende interfaces zorg veel over. Het is niet wat Siri geeft. Ik kan Siri iets in een stem vragen of in een andere toon van de stem, en Siri gaat geef mij hetzelfde antwoord. Maar dat is niet wat we bouwen voor vele andere soorten interfaces. Ik wil je voorstellen nu één van de robots. Dit werd gebouwd door mijn oude vriend en collega Cynthia Breazeal en haar gezelschap Jibo. En dit robot-- we gaan om een ​​paar vrijwilligers komen om met deze. Dus heb ik twee mensen die bereid zijn om te spelen met de robot voor mij? Waarom kom je niet op maximaal, en waarom kom je niet op maximaal. Als je hier zou samen met mij, alsjeblieft. En als ik kon u kom rechts over hier. Met dank. Hoi. ALFREDO: Leuk je te ontmoeten. Alfredo. BRIAN Scassellati: Alfredo. RACHEL: Rachel. BRIAN Scassellati: Rachel. Leuk om jullie beiden te ontmoeten. Alfredo, ik ga moet je eerst gaan. Kom hier recht. Ik ga in te voeren je-- als ik dit kan uitstappen zonder kloppen de microphone-- een kleine robot genaamd Jibo. OK? Nu, Jibo is ontworpen interactief te zijn. En hoewel het je spraak kan geven, veel van de interactie met de robot is non-verbale. Alfredo, ik ga je vragen om zeg iets leuk en gratis naar de robot, alstublieft. Alfredo: Ik denk dat je schattig uitzien. [Gonzende geluid] BRIAN Scassellati: OK. Het antwoord is niet verbaal. En toch je gaf beiden een duidelijke erkenning wat je dat gehoord had gezegd en ook een of andere manier begreep dat. OK? Stap terug hier voor een seconde. Dankjewel. Rachel, als je dat zou doen. Nu, ik ga geven je veel harder werk. Als je hier zou staan, back-up van alleen een beetje zo kunnen wij u op de camera en kijk op deze manier. Ik ga je vragen om iets te zeggen echt betekent en smerig aan de robot. RACHEL: Wat je net leek doen was volkomen absurd. [Zoemend geluid] Dat was nog absurder. Wat is er met u aan de hand? Aw, voel me niet slecht. Ik geef je een knuffel te geven. BRIAN Scassellati: Oké. Bedankt, Rachel. Alfredo, Rachel, bedankt jongens heel veel. [APPLAUS] Dus dit soort interactie heeft in vele manieren enkele zelfde regels en een aantal van dezelfde structuur als wat we zou kunnen hebben in linguïstische interactie. Het is zowel communicatief en dient een belangrijk doel. En dat interactie, in vele manieren ontworpen om een ​​bepaald effect op hebben persoon interactie met of het luisteren de robot. Nu, ik ben gelukkig genoeg om Jibo hier vandaag. Sam Spaulding is hier helpen ons met de robot. En ik ga Sam vragen te geven ons een leuke demo van Jibo dansen dat we hier aan het einde kan kijken. Dus ga je gang, Jibo. SAM: OK, Jibo. Toon ons uw dansbewegingen. [Muziek] BRIAN Scassellati: Oké, iedereen. Met dank aan onze vrienden bij Jibo. [APPLAUS] En dankzij onze vrienden bij IBM voor het helpen van vandaag. Communicatie is iets dat je gaat om te zien komen steeds meer als wij bouwen meer complexe interfaces. Volgende week gaan we praten over hoe om te communiceren met computer tegenstanders in games. Maar als je vragen hebt over dit hebben, Ik kom rond op het kantoor uur vanavond. Ik ben blij om u te praten over AI onderwerpen of te krijgen in meer detail. Hebben een geweldig weekend. [APPLAUS] [Muziek]