[Música tocando] DAVID MALAN: Este é CS50. Este é o fim de semana 10. E o menino, que temos um classe boa para você hoje. Estamos tão animado para convidar dois nossos amigos de Yale até nós hoje e a olhar para a intersecção de inteligência artificial, robótica, processamento de linguagem natural, e muito mais. E, de fato, sobre o últimas semanas, temos certamente passou muito tempo, especialmente nas Série de Exercícios anteriores, concentrando-se em belos detalhes de baixo nível. E é muito fácil perder de vista da floresta para as árvores e ficam penduradas sobre loops e condições e ponteiros, com certeza, e assim por diante. Mas a realidade é que vocês têm agora a ingredientes com os quais você pode realmente resolver alguns problemas interessantes, entre eles os que os nossos amigos na Yale trabalhar em apenas tímido de Cambridge. Assim, permitam-me primeiro a introduzir a nossa cabeça assistente de ensino de Yale, Andy. [Aplausos] ANDY: Primeiro de tudo, apenas agradecer por permitir que um casal Yalies a estalar em baixo para Cambridge hoje. Nós realmente aprecio isso. Em segundo lugar, para nossos amigos volta casa-- Jason, Obrigado por ficar e correr palestra. Esperança é tudo de bom em New Haven. Então sim, eu estou super animado introduzir SCAZ hoje. SCAZ corre o laboratório de robótica. Ele é um professor de, como, cinco diferentes departamentos em Yale. Em seu laboratório, ele tem muitos, muitos robôs que ele gosta de jogar com. Ele tem, como, a mais legal emprego do mundo. E ele começa a tipo de confusão em torno de todo o dia com que longo e fazer algum trabalho, também. E assim nós, na verdade trouxe uma de-los para baixo com a gente hoje. Assim, sem mais delongas, é SCAZ indo para ir em frente e introduzir-nos ao seu amigo robô. [Aplausos] BRIAN Scassellati: Obrigado, David. Obrigado, Andy. É tão maravilhoso estar aqui com todo mundo hoje. Quero primeiro ser muito claro que a equipe CS50 aqui em Cambridge tem sido incrivelmente hospitaleiro para nós. Nós somos tão gratos por tudo eles fizeram para nos apoiar. E assim nós gostaríamos de ser capaz para retribuir a gentileza. Então, hoje, nós começamos a anunciar que nós vamos ter um novo, one-of-a-kind evento CS50 acontecendo em New Haven na próxima semana. E essa é a Research Expo CS50. Então, nós estamos indo para ser convidativo everyone-- CS50 alunos, funcionários de ambos Harvard e Yale-- para descer e visitar-nos na sexta-feira. Nós vamos ter uma grande variedade de mais de 30 pessoas diferentes que apresentam e upperclassmen exhibiting-- mostrando fora alguns de seus produtos de pesquisa. Nós vamos ter algumas startups, mesmo, à procura para um pouco de novos talentos tecnologia, startups de ambos Harvard e Yale. E nós vamos ter alguns grupos de estudantes procurando alguma nova associação. Vai ser um momento muito emocionante. Esperemos que aqueles de vocês que são descendo para o jogo Harvard-Yale será capaz de parar por um pouco mais cedo, mesmo no centro de campus, Sterling Memorial Library. Nós vamos ter um conjunto de exposições que vão desde autónoma veleiros para formas de utilização de software para preservar manuscritos medievais. Nós vamos ter de anúncios networking hoc e pessoas ensino de codificação de software em Cape Town. Teremos computador manifestações musicais. E nós vamos, naturalmente, mais robôs. Então, nós esperamos que você vai se juntar a nós para este evento. Ele deve ser um monte de divertimento, um pouco de comida, e um monte de interessante coisas para falar. Então, hoje, nós estamos indo falar cerca de processamento de linguagem natural. E esta é a tentativa para nós para construir uma nova forma de interagir com nossos dispositivos, pois para as últimas semanas, você foi focado em como é que você pode escrever código, escrever software que é uma maneira de ser capaz de dizer a um máquina, é isso que eu quero que você faça. Mas não devemos precisar esperar que tudo que está lá fora que é usado por todos no mundo vai ser proficiente neste tipo de instrução. Assim, podemos distinguir entre o computador linguagens e languages-- naturais isto é, coisas que os seres humanos usam para comunicar com outros seres humanos. E nós tentamos construir interfaces que usam estes mecanismos naturais de comunicação. Agora, como qualquer outro tópico que nós começamos com em CS50, vamos começar com o mais simples bit de processamento de linguagem natural que podemos imaginar. Nós vamos começar com a parte histórica da linguagem natural. E então nós vamos construir até sistemas mais e mais recentes e tem algumas demos de diversão ao longo do caminho. Então, vamos começar com o que foi provavelmente a primeira linguagem natural sistema de processamento. Este foi um sistema de software escrito em 1966 por Joseph Weizenbaum chamado ELIZA. E Eliza foi concebido para replicar o tipo de interação você teria com um Psicoterapeuta Rogerian. Agora, os Rogerians, tinham uma idéia que a psicoterapia envolvidos serem capazes de refletir de volta a um paciente e falar com eles, basicamente, de apenas dando-lhes um pouquinho do terapeuta. Isto é, tudo que o terapeuta disse era suposto ser apenas um reflexo da o que o paciente estava dizendo a eles. Então, vamos tentar e demonstrar isso. Será que temos um voluntário que seria dispostos a compartilhar seu mais profundo, mais escuros, e / ou segredos falsos com ELIZA? Claro, por que você não vem em cima. Fantástico. E o seu nome? MILES: Miles. BRIAN Scassellati: Miles. Prazer em conhecê-lo, Miles. Se você segurar isso. E nós estamos indo para usar uma versão de ELIZA que temos replicada dentro do IDE CS50. E nós vamos olhar para a fonte código para isso em pouco tempo. Mas, por agora, nós somos apenas indo para invocá-lo digitando eliza. ELIZA e vai dar-lhe as respostas que vão estar em todas as capitais. E vai lhe fazer algumas perguntas. E nós vamos responder e digite em respostas a ELIZA. Então ELIZA disse: "Oi, eu sou ELIZA. Qual o seu problema?" O que você gostaria de ELIZA dizer sobre hoje? MILES: Eu só posso adormecer se eu tenho pantufas de coelhinho diante. BRIAN Scassellati: Tudo bem. Tudo certo. [RISO] "Eu só posso adormecer com pantufas de coelhinho sobre ". ELIZA e diz: "Diga, você tem problemas psicológicos? Talvez este seja um bom indicador. " ESTÁ BEM. Então, o que você gostaria de responder? MILES: Sim. BRIAN Scassellati: Sim. Homem de muitas palavras. Eu gosto disso. Eliza diz: "Você parece bastante positiva." MILES: Não, eu sou, de fato, um elétron. BRIAN Scassellati: "No. Na verdade, eu sou um elétron. " "Você veio para me porque você é um elétron? " Agora, podemos ver alguns dos o coisas- eu vou para fazer uma pausa por apenas um segundo, Miles. Não ir a qualquer lugar. Nós não terminamos com você ainda. ELIZA é, em alguns aspectos, responder a certas coisas que ele está dizendo, mas sem qualquer entendimento real. E também está repetindo de volta alguns das partes da sua sentença. Por isso, disse, "No. Na verdade, eu sou um elétron. " Eliza respondeu de volta, "Você veio para mim, porque você é um elétron? " Tudo certo. Vamos dar mais uma resposta aqui. Dê-lhe uma boa, Miles. MILES: Good one? Sim, por favor me ajude. BRIAN Scassellati: "Sim. Por favor, me ajude. "" Você tem certeza? " MILES: Não. BRIAN Scassellati: Não. "O que isso sugere a você?" MILES: Eu não posso ser um elétron. BRIAN Scassellati: "Eu pode não ser um elétron. " "Você está dizendo que não apenas a ser negativo?" Tudo certo. Então, Miles, muito obrigado. MILES: Obrigado. BRIAN Scassellati: Muito obrigado. [Aplausos] Portanto, este programa ELIZA, de muitas maneiras, responde apenas às peças que estamos oferecendo, sem qualquer profundidade compreensão do que está acontecendo aqui. Este é um tipo de sistema chamado de correspondência de padrões, onde estamos à procura de certa pedaços de texto que estamos em seguida, vai levar para fora do que foi fornecida como entrada, convertê-lo, potencialmente, de alguma forma, e depois devolvê-lo para o usuário. Algum de vocês pensam ELIZA que é realmente realizando psicanálise válido aqui? Uma pessoa, talvez. AUDIÊNCIA: [inaudível]. BRIAN Scassellati: E como isso faz você se sentir? Sim, de fato, ele faz. E vamos ver, na verdade, a código-fonte para ele em apenas um momento. E assim você vai ser capaz de fazer exatamente isso. Agora, Eliza é uma forma daquilo que chamaríamos hoje de um bot de bate-papo. Ele só vai através do texto que você está fornecendo, fornece a quantidade mínimo de compreensão ou de transformação, e, em seguida, papagaios-lo de volta para você. Então, vamos dar uma olhada, conceitualmente, e falar sobre o que é que ELIZA está realmente fazendo. ELIZA está tomando um let sentence-- dizer: "Eu quero impressionar o meu chefe." E ELIZA está olhando através de que a sentença e tentando encontrar e coincidir com certos padrões. Assim, por exemplo, um dos padrões ELIZA que está procurando são as palavras "Eu quero." E a qualquer momento se vê algo que tem "eu quero" nele, formula uma resposta. E essa resposta é uma string fixa. Neste caso, é "por que você quer?" E eu coloquei uma pequena estrela na o fim, porque isso é apenas o início da nossa resposta. E o asterisco indica que vamos levar o resto de utterance-- do usuário "para impressionar o meu patrão" - e nós estamos indo para acrescentar que para o final dessa seqüência. Então, agora, ao invés de dizer, "por você quer impressionar o meu chefe ", há um pouco de adicional processamento que nós vamos fazer. Ou seja, nós vamos ter que converter alguns dos pronomes aqui a partir de "meu chefe" para "seu chefe." E pode haver alguns outros mudanças que precisamos fazer. Então, ao invés de apenas furando- diretamente para o final, o que vamos fazer é que vamos levar o resto do utterance-- do usuário em branco aqui-- e nós vamos levá-lo uma peça de um tempo e converter cada seqüência forma, cada palavra, na sentença. Então, vamos tomar a palavra "para". Não há nenhuma conversão que temos de fazer isso. "Impressionar." Não há nenhuma conversão o que precisamos fazer lá. "Meu" irá converter para "seu". E "chefe" vamos deixar como "chefe". E, em seguida, finalmente, nada que termina com um período, vamos convertê-lo em uma pergunta. Este padrão de correspondência muito simples é realmente muito bem sucedido. E quando este foi introduzido em 1966-- Joseph Weizenbaum programado isso em um computador. Agora, os computadores naquela época não eram modelos desktop. Eles estavam de recursos compartilhados. E seus alunos seria ir e conversar com ELIZA. Eventualmente, ele teve que restringir o acesso a ele porque seus alunos não eram recebendo todo o trabalho feito. Eles estavam apenas conversando com ELIZA. E, de fato, ele teve que disparar sua assistente, que gastou todo o seu tempo conversando com ELIZA sobre seus problemas profundos e preocupantes. Todos os que usaram estes sistemas começou a antropomorfizar-los. Eles começaram a pensar neles como sendo animado e pessoas reais. Eles começaram a reconhecer alguns dos as coisas que eles estavam dizendo estavam voltando para eles. E eles foram descobrindo coisas sobre si mesmos. E, na verdade, até mesmo os especialistas, mesmo os psicoterapeutas, começou a se preocupar que, de fato, talvez ELIZA seria substituí-los. E até mesmo o computador cientistas preocupados que estávamos tão perto de resolver linguagem natural. Agora, isso não foi em qualquer lugar perto de verdade. Mas isso é como impressionante estes sistemas podem parecer. Então, vamos começar a olhar por baixo e tentar para obter um pouco de uma pergunta de onde esse código realmente acontece. Então, vamos fazer este código disponível depois. E este é um muito porta simples e direta da implementação original ELIZA. Assim, alguns destes estilística coisas que você verá aqui não são o que estilisticamente nós queremos que você faça ou o que estamos ensinando-lhe para fazer. Mas nós tentamos mantê-los o mesmo em muitos portos que este teve de modo que ele tem o sabor do original. Então, nós estamos indo para incluir um monte de coisas, e então nós vamos ter um conjunto de palavras-chave, as coisas ELIZA que irá reconhecer e responder aos diretamente. Então se você tem palavras como "pode ​​você" ou "eu não" ou "não" ou "sim" ou "sonho" ou "Olá", então ELIZA irá responder selectivamente para aqueles. Também vamos ter um certo número de coisas que vamos trocar, como converter "meu" para "seu". E então nós vamos ter um conjunto de respostas que, para cada uma dessas palavras-chave, nós vamos girar através estas diferentes respostas. Então, se eu dizer "sim" três vezes consecutivas, I pode ter três diferentes respostas de ELIZA. Nosso código, então, é na verdade, extremamente simples. Se eu rolar para baixo após todos estes respostas que temos programados em e nós chegar até a página, nós estamos indo para inicializar um par de variáveis ​​diferentes e fazer um pouco de arrumação no começo. Mas então não há absolutamente um conjunto de código que você pode entender. Um loop while grande que diz que eu sou vai repetir isso mais e mais. Vou ler em uma linha, e eu vou armazenar isso em uma seqüência de entrada. Vou verificar e ver se é o palavra-chave especial "bye", que significa sair do programa. E então eu vou verificar e ver se alguém está apenas repetindo-se de novo e de novo. E eu vou gritar com eles se eles fazem. Eu vou dizer "não repetir-se." Enquanto nenhum desses acontecer, vamos em seguida, a varredura através de e loop através, em linhas 308 a 313 aqui, e verificar e ver são aqueles de qualquer palavra-chave frases contidas na entrada que eu estava acabado de dar? Se houver uma correspondência para eles, bem então, eu vou lembrar desse local. Vou me lembrar dessa palavra-chave. E eu vou ser capaz de construir uma resposta. Se eu não encontrar um, bem, então, a última coisa na minha matriz palavra-chave sereis minhas respostas padrão, quando nada mais jogos. Eu vou fazer perguntas como "Por que você fez vir aqui? "ou" Como posso ajudá-lo? " que são apenas parcialmente adequado não importa o que a entrada é. Vamos, então, construir-se a resposta de ELIZA. Nós vamos ser capazes de tomar que a resposta de base, assim como fizemos em que exemplo "meu chefe". Se isso é tudo o que há é-- se é apenas um string que eu deveria respond-- Eu só posso enviá-lo de volta para fora. Se ele tem um asterisco no o fim de tudo, então eu vou processar cada símbolo individual na o resto da resposta do utilizador e adicionar aqueles que, trocando para fora palavra por palavra como eu preciso. Tudo isto é absolutamente algo que você pode construir. E, de fato, as maneiras pelas quais nós ter argumentos de linha de comando processados, a maneira em que você tem processadas através de solicitações HTTP siga os mesmos tipos de regras. Eles são a correspondência de padrão. Assim ELIZA tinha um relativamente importante impacto sobre a linguagem natural porque ele fez parecer como se fosse um meta muito atingível, como de alguma forma estaríamos ser capaz de resolver este problema diretamente. Agora, isso não quer dizer que faz ELIZA tudo o que gostaria de fazer. Certamente não. Mas devemos ser capazes para fazer algo mais. Nosso primeiro passo para ir além ELIZA vai para ser capaz de olhar não o texto inserido no teclado, mas discurso, real discurso gravado em um microfone. Assim, quando olhamos para estes peças diferentes, nós somos vai ter que construir um conjunto de modelos. Nós vamos ter que ser capaz para ir do baixo nível acústico arremesso information--, amplitude, frequency-- e convertê-lo em algumas unidades que estamos capaz de manipular mais facilmente e, finalmente, manipulá-los em palavras e frases. Assim, a maioria de reconhecimento de fala sistemas que estão lá fora hoje siga uma estatística modelo no qual nós construímos três representações separadas de que que o sinal de áudio contem na realidade. Começamos com um modelo de fonética que fala sobre apenas a base Parece que eu estou produzindo. Estou produzindo algo que é um B como no menino ou uma D como no cão? Como posso reconhecer os dois diferentes telefones como separada e distinta? Em cima disso, nós vamos, então, construir uma pronúncia modelo palavra, algo que une os telefones individuais e as combina em uma palavra. E depois disso, vamos dar as palavras e nós vamos montá-las com uma linguagem modelar em uma frase completa. Agora, vamos falar sobre cada destes independentemente e separadamente. Mas estes três modelos são todos só vai ser estatísticas. E isso significa que quando nós trabalhar com eles, vamos ser capaz de trabalhar com todas elas ao mesmo tempo. Tudo certo. Vamos começar com o nosso modelo de fonética. Assim, modelos fonéticos dependem uma técnica computacional chamados de modelos ocultos de Markov. Estes são modelos gráficos em que eu ter e reconhecer um estado do mundo como sendo caracterizada por um conjunto de características. E esse estado descreve uma parte de uma ação que eu estou envolvido em. Então, se eu pensar em fazer o som de "ma" como mãe, existem diferentes componentes para que o som. Há uma parte onde eu desenhar no ar. E então eu franzir os lábios. E eu rolo meus lábios um pouco para trás pouco para fazer aquele som "ma". E depois há uma liberação. Meus lábios se separam. O ar é expelido. "Ma". Estas três partes diferentes seria representado por estados neste graph-- o início, o meio eo fim. E eu teria transições que me permitiu viajar de um estado para o próximo, com uma certa probabilidade. Assim, por exemplo, que a M som pode ter um muito, ingestão de muito curto no beginning-- "mm" - e, em seguida, uma mais longa, fase vibratória onde eu estou segurando a minha lábios e quase humming-- "mmmm" - e depois de um curto Plosive onde eu expulsar breath-- "ma". O modelo oculto de Markov é concebido para capturar o facto que a maneira que eu faço que o som de "ma" vai para ser ligeiramente diferente em o seu calendário, é a freqüência, e seus recursos do que a maneira que você faz ou a maneira que eu poderia torná-lo quando estou falando sobre os diferentes usos da carta. "Mãe" e "may I" vontade soar um pouco diferente. Assim, para reconhecer um em particular som, faríamos construir modelos de Markov, estes Markov oculto modelos, de cada telefone possível que eu pode querer reconhecer, cada som possível, e depois olhar para o dados acústicos que eu tenho e determinar estatisticamente qual é o mais provável ter produzido esse som. ESTÁ BEM. Com esse modelo, em seguida, começar a construir em cima dela. Tomamos um modelo de pronúncia. Agora, às vezes pronúncia modelos são simples e fáceis porque só há uma maneira de pronunciar algo. Outras vezes, eles são um pouco mais complicado. Aqui está um guia de pronúncia para essa coisa que é vermelho uma fruta que você faz fora de ketchup. As pessoas não acho que é uma fruta. Certo? Agora, há muitas maneiras diferentes que as pessoas vão pronunciar esta palavra. Alguns dirão "toe-may-dedo do pé." Alguns dirão "toe-mah-dedo do pé." E nós podemos capturar essa com um destes modelos gráficos onde, novamente, nós representam transições como tendo uma certa probabilidade e a probabilidade associada com eles. Portanto, neste caso, se eu fosse para seguir topo rota através deste gráfico inteiro, Eu estaria começando na carta na extrema esquerda, a "ta" som. Gostaria de ter a metade superior, o "oh," e, em seguida, um "ma" e, em seguida, um "a", e, em seguida, um "ta", e um "oh". "Toe-may-dedo do pé." Se eu pegasse o caminho através do fundo este, vou conseguir "ta-mah-dedo do pé." E se eu fui para baixo e, em seguida, acima, gostaria de obter "ta-may-dedo do pé." Estes modelos capturar estes diferenças porque sempre que implantar um destes sistemas de reconhecimento, ele vai ter que trabalhar com lotes de diferentes tipos de pessoas, lotes de diferentes sotaques, e mesmo diferentes usos das mesmas palavras. Finalmente, em cima disso, vamos construir algo que parece muito complicado, chamado o modelo de linguagem, mas, de facto, é o mais simples de a três porque estes operam sobre o que são chamados de modelos n-gram. E, neste caso, eu estou mostrando-lhe um modelo de n-grama de duas partes, uma bigram. Nós vamos fazer física a idéia que, por vezes, certas palavras são mais propensos a seguir um determinada palavra do que outros. Se eu apenas disse: "previsão do tempo", a próxima palavra poderia provavelmente ser "hoje" ou poderia ser "o tempo Previsão do amanhã. " Mas é pouco provável que seja "o previsão do tempo alcachofra. " O que um modelo de linguagem faz é que capta os estatisticamente por contagem, de algum muito grande corpus, todas as instâncias em que uma palavra se segue a outra. Então, se eu tomar uma grande corpus-- como cada Wall Street Journal que foi produzido desde 1930, que é um dos corpuses-- padrão e eu olhar através de todos esse texto, e eu conto -se quantas vezes depois "previsão" eu vejo "hoje" e quantas vezes eu vejo "previsão" seguido de "alcachofra", o primeiro vai ser muito mais provável. Vai aparecer com muito mais freqüência. E por isso vai ter uma maior probabilidade associada com ele. Se eu quiser descobrir a probabilidade de um enunciado inteiro, então, eu só quebrá-lo. Assim, a probabilidade de audição a frase "o rato comeu queijo" é a probabilidade de a palavra "a" iniciar uma frase, e, em seguida, a probabilidade de que o palavra "rato" segue a palavra "a", e a probabilidade de que o palavra "comeu" segue "rato" e a probabilidade de que "queijo" segue "comeu". Isso soa como um monte de estatísticas, um monte de probabilidades. E isso é tudo que ele é. Mas o mais incrível é se você fizer isso com uma amostra suficientemente grande de dados, Isso funciona. E funciona tremendamente bem. Nós todos sabemos que essas tecnologias. A maioria dos sistemas operacionais vêm com reconhecimento de voz neste momento. Nós usamos Siri e Cortana e Echo. E estas coisas são baseadas em este tipo de três camadas model-- um modelo fonética na parte inferior, uma modelo de pronúncia no meio, e um modelo de linguagem em cima deles. Agora, eles têm que fazer um pouco mais do que isso, a fim de responder a perguntas. Mas o reconhecimento do que você é provérbio depende exatamente sobre isso. Então, vamos dar um exemplo aqui. Então, eu tenho o meu telefone que senta-se aqui debaixo da câmera de documentos. E nós vamos pede Siri algumas perguntas. Tudo certo? Então, vamos acordar meu telefone aqui. Siri, que é o tempo como em New Haven hoje? SIRI: Aqui está o tempo para New Haven, Connecticut hoje. BRIAN Scassellati: OK. Então, primeiro você viu que Siri reconhecido cada uma das palavras individuais e, em seguida, produziu uma resposta. Vamos falar sobre como essa resposta acontece em um pouco. Mas agora que sabemos que este é apenas baseado sobre as estatísticas crus e esta Tipo de correspondência padrão de abordagem, podemos jogar alguns jogos com Siri. Então, eu posso tentar novamente. Siri, que é o tempo hipopótamo New Haven, hoje? SIRI: OK. Aqui está o tempo para New Haven, Connecticut para hoje. BRIAN Scassellati: Siri da não intimide com que porque ele é encontrado o pattern-- "clima", "Hoje", "New Haven." Isso é o que ele está respondendo para, assim como ELIZA. Tudo certo. Vamos dar-lhe mais um mesmo exemplo mais ridículo. Siri, tempo de alcachofra tatu hipopótamo New Haven? SIRI: Deixe-me verificar. Aqui está o que eu encontrei na web para o que são alcachofras tatu hipopótamo New Haven. BRIAN Scassellati: OK. Então, se eu ir longe o suficiente distância a partir deste modelo, Eu sou capaz de confundi-lo porque ele não já não corresponde ao padrão que ele tem. E essa estatística motor que está dizendo, qual é a probabilidade de que você tem o Hippopotamus das palavras e alcachofra juntos, e tatu? Isso tem que ser algo novo. Assim, estas tecnologias que usamos todos os dias. Se queremos levá-los um passo Além disso, porém, se nós realmente quero ser capaz de falar sobre o que é que estes sistemas estão a responder a, temos de falar, novamente, sobre um conjunto mais fundamental das perguntas. E isso é um tópico em comunicação que chamamos questão de atendimento. Isto é, nós queremos ser capazes a-- sim? AUDIÊNCIA: [inaudível]. BRIAN Scassellati: Obtemos em processamento de semântica latente? Então sim. Há um monte de coisas que são acontecendo abaixo da superfície com Siri e em alguns dos exemplos Eu vou mostrar para você próximo onde há um pouco em termos da estrutura do que você está dizendo isso é importante. E, de fato, isso é um grande precursor para o próximo slide para mim. Assim, da mesma maneira que o nosso reconhecimento de fala foi construído de múltiplas camadas, se quisermos compreender o que é que, na verdade, Dito isto, vamos novamente depender de uma análise multi-camada do texto que está sendo reconhecido. Assim, quando Siri é realmente capaz de digamos, olha eu encontrei estas palavras. Agora o que eu faço com eles? O primeiro componente é muitas vezes a passar e tentar analisar a estrutura da frase. E no que temos visto na escola, muitas vezes, como uma espécie de diagramação frases, vamos de reconhecer que certos palavras têm certos papéis. Estes são substantivos. Estes são pronomes. Estes são verbos. E nós estamos indo para reconhecer que, para uma gramática particular, neste caso Inglês gramática, existem formas válidas em que eu posso combiná-los e outras formas que não são válidos. Este reconhecimento, essa estrutura, pode ser suficiente para ajudar a guiar-nos um pouco. Mas não é o bastante para que sejamos capazes de dar qualquer significado para o que está sendo dito aqui. Para fazer isso, nós vamos ter que confiar em uma certa quantidade de processamento semântico. Ou seja, nós vamos ter que olhar em baixo o que cada uma dessas palavras realmente carrega como um significado. E da forma mais simples de fazer isso, nós estamos indo para associar com cada palavra que sabemos que uma determinada função, uma certa transformação que ele permite que isso aconteça. Neste caso, poderíamos rotular o palavra "John", como sendo um nome próprio, que traz consigo uma identidade. E poderíamos rotular "Mary" como o mesmo caminho. Considerando um verbo como "ama", que constitui uma relação particular que somos capazes de representar. Agora, isso não significa que que entendemos que é o amor, mas apenas que nós compreendemos -lo na forma de um sistema simbólico. Ou seja, podemos rotular lo e manipulá-lo. Com cada um destes tipos de abordagens, qualquer tipo de processamento semântico aqui vai exigir um pouco pouco de conhecimento e um monte de trabalho da nossa parte. Não estamos mais no reino onde as estatísticas apenas simples vai ser o suficiente para nós. Agora, a fim de ir a partir deste ponto para ser capaz de falar sobre o interior o que está realmente acontecendo aqui, para ser capaz de manipular este estruturar e compreender uma pergunta e, em seguida, ser capaz para sair e procurar, que requer um mais modelo cognitivo complexo. A forma em que estes sistemas são construídos é, na maior parte muito, muito trabalho intensiva. Elas envolvem seres humanos gastar uma grande quantidade tempo de estruturar as formas de que esses tipos de frases pode ser representada em alguns lógica. Ele fica ainda um pouco mais complexo, no entanto. Mesmo uma vez que lidei com a semântica, vamos ainda tem que olhar para o pragmática do que está sendo dito. Isto é, como faço para relacionar as palavras que eu tenho que algo fisicamente para fora há no mundo, ou pelo menos alguma fonte de informação que eu possa manipular? Às vezes, estes levar a pedaços maravilhosas de ambiguidade. "Red-quente estrela de casar astrônomo." ESTÁ BEM. Agora, lemos que, como o Tipo engraçado de headline que gostaríamos de ver em TV tarde da noite porque nós não interpretar "estrela" para ter o seu significado corpo celeste. Sabemos que isso significa que a mais ator ou atriz comum com quantidades elevadas de visibilidade. "Tropa de ajuda mordida de cão vítima." Será que o plantel é realmente lá fora, assistindo um cão em ir ao redor e mordendo vítimas? Ou será que não havia um indivíduo que era mordido por um cão que precisava de alguma ajuda? Só de olhar para a sintaxe e a semântica das sentenças, não podemos determinar isso. "Helicóptero alimentado por moscas humanos." Há, de fato, real pequenas coisas que voam ao redor são pessoas com asas alimentar helicópteros para o bem da humanidade? Ou há um dispositivo mecânico que deriva sua energia de uma pessoa? Quando olhamos para a questão sistemas de atendimento, estes são as camadas que temos de lidar com eles. Agora, o melhor eo mais sorte de prevalente destes sistemas hoje são capazes de fazer as coisas a um nível que são muito além do que tínhamos há 10 anos. Aqui está um dos melhores sistemas que está lá fora hoje. E este é um sistema da IBM chamado Watson. Esta é a partir de nossos amigos da IBM. Esta é Katherine bancos, Jia Chen, e Priscila Moraes dando-nos uma demonstração de Watson ontem, em Yorktown IBM. [REPRODUÇÃO DE VÍDEO] -Como você está? -Estou bem. Eu estou sempre feliz quando estou pensar, especialmente quando eu pode ficar legal nessas salas de servidores. -Quem É sua atriz favorita? -Meu Atriz favorita Angelina Jolie como Lara Croft em Tomb Raider porque sua origem forma era como um personagem virtual como eu. -Como Pode Watson ajudar os pacientes? -É O plano para os pacientes para têm acesso a Watson diretamente? O acesso a Watson consultivo aplicações variam de acordo com caso de uso. Mas actualmente, Watson só fornecerá possível diagnóstico e tratamento opções para profissional médico. Se for caso disso, os pacientes pode fornecer informações a Watson, talvez através de um interface web portal, tablet, ou mesmo um telefone celular. Por exemplo, um paciente pode ser solicitados a descrever seus sintomas em linguagem natural directamente numa solução Watson, permitindo ao médico focar diagnóstico e não a coleta de dados. -Quem Assassinado Abraham Lincoln? -João Wilkes Booth. -Em Que ano fez o Arizona Diamondbacks vencer a World Series? -2001. [FIM DE REPRODUÇÃO] BRIAN Scassellati: Então, estes tipos de sistemas tem que confiar em primeiro lugar reconhecer o discurso; segundo, convertendo-a em uma interna significativa representação; e, em seguida, em terceiro lugar, ser capaz de sair e encontrar a fonte de informação que lhes permite responder a essa pergunta. Este nível de complexidade envolve os mesmos tipos de coisas programáticas que você tem sido fazendo em conjuntos de problemas. Somos capazes de analisar as solicitações HTTP em o mesmo tipo de padrão de baixo nível ELIZA correspondente que pode fazer. Somos capazes de converter os em uma representação interna, e então usá-los para consultar alguns banco de dados externo, possivelmente usando SQL. Todos os sistemas que estão sendo construídas hoje para fazer este tipo de catástrofes naturais comunicação língua estão sendo construídas em cima esses mesmos princípios. Agora, até mesmo um sistema como Watson não é suficiente complexo para ser capaz de responder arbitrária perguntas sobre qualquer assunto. E, de fato, eles têm que ser estruturada dentro de um determinado domínio. Então você pode ir online e você pode encontrar versões de Watson que operam bem dentro de informática médica. Ou há uma linha que apenas trata de como fazer boas recomendações sobre o que a cerveja vai com que o alimento. E dentro desses domínios, ele pode responder a perguntas, encontrar a informação de que necessita. Mas você não pode misturar e combinar-los. O sistema que foi treinado com o banco de dados de alimentos e cerveja não funciona bem quando você de repente colocá-lo em com a informática médica banco de dados. Assim, mesmo os nossos melhores sistemas de hoje dependem de um nível de processamento em que estamos codificação manual e construção da infra-estrutura, a fim para fazer este sistema funcionar. Agora, o último tópico que eu quero para ser capaz de obter a hoje é sobre comunicação não-verbal. Uma grande massa de informações que nós nos comunicamos uns com os outros não acontece através do palavras individuais que estamos aplicando. Tem a ver com coisas como proximidade, olhar, seu tom de voz, sua inflexão. E que a comunicação é também algo que muitas interfaces diferentes importam muito sobre. Não é o que se preocupa com Siri. Eu posso pedir Siri algo em uma só voz ou em um tom de voz diferente, e Siri vai me dar a mesma resposta. Mas não é isso que nós construímos para muitos outros tipos de interfaces. Eu quero apresentar-lhe Agora, a um dos robôs. Este foi construído pelo meu de longa data amigo e colega Cynthia Breazeal e sua empresa Jibo. E este robot-- vamos para ter um par de voluntários chegar a interagir com isso. Então eu posso ter duas pessoas dispostas jogar com o robô para mim? Por que você não vem para cima, e por que você não vem em cima. Se você quiser se juntar a mim aqui em cima, por favor. E se eu pudesse ter você vir bem aqui. Obrigado. Oi. ALFREDO: Prazer em conhecê-lo. Alfredo. BRIAN Scassellati: Alfredo. RACHEL: Rachel. BRIAN Scassellati: Rachel. Prazer em conhecê-los. Alfredo, eu vou ter de ir primeiro. Venha até aqui. Eu estou indo para introduzir você-- se eu posso tirar isso sem bater o microphone-- para um pequeno robô chamado Jibo. ok? Agora, Jibo é projetado para ser interativo. E embora possa dar-lhe a fala, tanto da interacção com o robô é não-verbal. Alfredo, eu vou pedir para você dizer algo agradável e cortesia para o robô, por favor. ALFREDO: Eu acho que você olhar bonito. [Zumbido] BRIAN Scassellati: OK. Sua resposta não é verbal. E ainda lhe deu tanto um claro reconhecimento que ele tinha ouvido falar que você disse e também entendeu que de alguma forma. ok? Passo para a direita de volta aqui por um segundo. Obrigado. Rachel, se você faria. Agora, eu vou dar- lhe o trabalho muito mais difícil. Se você ficar aqui, backup de apenas um pouco assim que você pode obter na câmera e olhe para este lado. Vou pedir-lhe para dizer alguma coisa realmente significa e desagradável para o robô. RACHEL: O que você apenas parecia a fazer era completamente absurda. [ZUMBIDO SOUND] Isso era ainda mais absurdo. O que está acontecendo com você? Ah, não se sinta mal. Vou te dar um abraço. BRIAN Scassellati: Tudo bem. Obrigado, Rachel. Alfredo, Rachel, graças eles muito. [Aplausos] Portanto, este tipo de interação tem em muitas maneiras algumas das mesmas regras e alguns dos mesmos estrutura como o que nós pode ter na interação lingüística. É tanto comunicativa e serve a um propósito importante. E que a interação, em muitas maneiras, é concebido ter um efeito particular sobre a pessoa interagindo com ou escuta para o robô. Agora, eu tenho a sorte ter Jibo aqui hoje. Sam Spaulding está aqui ajudando nos com o robô. E eu vou perguntar a Sam para dar nos um bom demo de Jibo dança que podemos ver no final aqui. Então vá em frente, Jibo. SAM: OK, Jibo. Mostre-nos seus movimentos de dança. [Música tocando] BRIAN Scassellati: Tudo bem, todo mundo. Graças aos nossos amigos em Jibo. [Aplausos] E graças aos nossos amigos na IBM para ajudar para fora hoje. A comunicação é algo que você está indo para ver chegando cada vez mais como nós construir interfaces mais complexas. Na próxima semana, vamos estar falando sobre como fazer a interface com adversários controlados pelo computador em jogos. Mas se você tiver dúvidas sobre isso, Eu vou estar em torno de hoje à noite o horário de expediente. Estou feliz em falar com você sobre AI tópicos ou para entrar em mais detalhes. Tenha um bom final de semana. [Aplausos] [Música tocando]