[MUSIC PLAYING] DAVID Malan: Ini adalah CS50. Ini adalah akhir pekan 10. Dan anak laki-laki, kita memiliki kelas yang baik untuk Anda hari ini. Kami sangat bersemangat untuk mengundang dua teman-teman kita dari Yale hingga kami hari ini dan untuk melihat di persimpangan kecerdasan buatan, robotika, pengolahan bahasa alami, dan banyak lagi. Dan memang, selama beberapa minggu terakhir, kami telah tentu menghabiskan banyak waktu, terutama di psets sebelumnya, berfokus pada cukup detail tingkat rendah. Dan itu sangat mudah untuk melupakan dari hutan untuk pohon dan terpaku pada loop dan kondisi dan pointer, tentu, dan sejenisnya. Tetapi kenyataannya adalah kalian sekarang memiliki bahan yang Anda benar-benar dapat memecahkan beberapa masalah yang menarik, antara mereka orang-orang yang teman-teman kita di Yale bekerja pada hanya malu dari Cambridge. Jadi izinkan saya pertama memperkenalkan kepala kita mengajar asisten dari Yale, Andy. [TEPUK TANGAN] ANDY: Pertama-tama, hanya terima Anda untuk memungkinkan beberapa Yalies pop pada ke Cambridge hari ini. Kami benar-benar menghargai itu. Kedua, untuk teman-teman kita kembali home-- Jason, terima kasih untuk tinggal dan menjalankan kuliah. Berharap itu semua baik di New Haven. Jadi ya, aku super bersemangat memperkenalkan Scaz hari ini. Scaz menjalankan laboratorium robotika. Dia seorang profesor, seperti, lima departemen yang berbeda di Yale. Di laboratorium, ia memiliki banyak, banyak robot yang dia suka bermain dengan. Dia memiliki, seperti, yang pekerjaan paling keren di dunia. Dan dia bisa agak berantakan sekitar dengan itu sepanjang hari panjang dan melakukan beberapa pekerjaan, juga. Dan jadi kita benar-benar membawa satu Dari mereka turun dengan kami hari ini. Jadi tanpa basa-basi, Scaz adalah akan pergi ke depan dan memperkenalkan kami ke teman robot nya. [TEPUK TANGAN] BRIAN SCASSELLATI: Terima kasih, David. Terima kasih, Andy. Hal ini begitu indah untuk menjadi di sini dengan semua orang hari ini. Saya ingin pertama menjadi sangat jelas bahwa staf CS50 di sini di Cambridge telah sangat ramah kepada kami. Kami sangat berterima kasih untuk semuanya mereka lakukan untuk mendukung kami. Dan jadi kami ingin dapat untuk kembali kebaikan. Jadi hari ini, kami bisa mengumumkan bahwa kita akan memiliki baru, satu-of-a-kind acara CS50 terjadi di New Haven pekan depan. Dan ini adalah CS50 Penelitian Expo. Jadi kita akan mengundang everyone-- CS50 siswa, Staf dari kedua Harvard dan Yale-- untuk turun dan mengunjungi dengan kami pada hari Jumat. Kami akan memiliki berbagai macam lebih 30 orang yang berbeda menyajikan dan upperclassmen exhibiting-- menunjukkan off beberapa produk penelitian mereka. Kami akan memiliki beberapa startups, bahkan, mencari untuk sedikit bakat teknologi baru, startups dari kedua Harvard dan Yale. Dan kami akan memiliki beberapa kelompok mahasiswa mencari beberapa anggota baru. Ini akan menjadi waktu yang sangat menarik. Mudah-mudahan Anda yang berada turun untuk pertandingan Harvard-Yale akan dapat menghentikan oleh sedikit lebih awal, tepat di pusat kampus, Sterling Memorial Library. Kita akan memiliki satu set pameran yang berkisar dari otonom perahu layar untuk cara menggunakan perangkat lunak untuk melestarikan naskah abad pertengahan. Kita akan memiliki iklan jaringan hoc dan orang-orang mengajar software coding di Cape Town. Kami akan memiliki komputer demonstrasi musik. Dan kami akan tentu saja memiliki lebih robot. Jadi kami berharap Anda akan bergabung dengan kami untuk acara ini. Ini harus banyak menyenangkan, sedikit makanan, dan banyak menarik hal untuk dibicarakan. Jadi hari ini, kita akan berbicara tentang pengolahan bahasa alami. Dan ini adalah upaya untuk kita untuk membangun cara baru berinteraksi dengan perangkat kami karena selama beberapa minggu terakhir, Anda telah difokuskan pada bagaimana itu adalah bahwa Anda dapat menulis kode, menulis perangkat lunak itu adalah cara untuk bisa mengatakan ke mesin, ini adalah apa yang saya ingin Anda lakukan. Tapi kita tidak perlu berharap bahwa segala sesuatu yang ada di luar sana yang digunakan oleh semua orang di dunia akan menjadi mahir dalam jenis instruksi. Jadi kita membedakan antara komputer bahasa dan languages-- alami yaitu, hal-hal yang manusia digunakan untuk berkomunikasi dengan manusia lainnya. Dan kami mencoba untuk membangun interface yang menggunakan mekanisme komunikasi alami ini. Sekarang, sama seperti setiap topik lainnya bahwa kita sudah mulai dengan di CS50, kita akan mulai dengan sederhana sedikit pengolahan bahasa alami bahwa kita bisa bayangkan. Kita akan mulai dengan bagian sejarah bahasa alami. Dan kemudian kita akan membangun hingga sistem yang lebih dan lebih baru-baru ini dan memiliki beberapa demo menyenangkan sepanjang jalan. Jadi kita akan mulai dengan apa yang mungkin bahasa alami pertama sistem pengolahan. Ini adalah sebuah sistem perangkat lunak yang ditulis dalam 1966 oleh Joseph Weizenbaum disebut ELIZA. Dan ELIZA dirancang untuk meniru jenis interaksi Anda akan memiliki dengan Psikoterapis Rogerian. Sekarang, Rogerians, mereka memiliki sebuah ide yang psikoterapi terlibat mampu mencerminkan kembali untuk pasien dan berbicara dengan mereka, pada dasarnya, dengan hanya memberikan mereka sedikit kecil dari terapis. Artinya, segala sesuatu bahwa terapis mengatakan seharusnya hanya refleksi dari apa pasien menceritakan kepada mereka. Jadi mari kita coba dan demo ini. Apakah kita memiliki relawan yang akan bersedia untuk berbagi terdalam mereka, tergelap, dan / atau rahasia palsu dengan ELIZA? Tentu, kenapa tidak Anda datang ke atas. Fantastis. Dan namamu? MILES: Miles. BRIAN SCASSELLATI: Miles. Senang bertemu Anda, Miles. Jika Anda akan memegang itu. Dan kita akan menggunakan versi ELIZA bahwa kita telah direplikasi dalam IDE CS50. Dan kita akan melihat sumber kode untuk ini dalam beberapa saat. Tapi untuk sekarang, kami hanya akan memanggil dengan mengetik eliza. Dan ELIZA akan memberikan tanggapan yang akan berada di semua ibukota. Dan akan mengajukan beberapa pertanyaan. Dan kami akan merespon dan ketik di tanggapan ELIZA. Jadi ELIZA mengatakan, "Hai, saya ELIZA. Apa masalah Anda?" Apa yang ingin Anda memberitahu ELIZA tentang hari ini? MILES: Saya hanya bisa tertidur jika saya memiliki sandal kelinci di. BRIAN SCASSELLATI: Baiklah. Baiklah. [TAWA] "Saya hanya bisa tertidur dengan sandal kelinci di. " Dan ELIZA mengatakan, "Katakanlah, apakah Anda memiliki masalah psikologis? Mungkin ini adalah indikator yang baik. " OKE. Jadi apa yang Anda ingin menanggapi? MILES: Ya. BRIAN SCASSELLATI: Ya. Man of banyak kata. Saya menikmati itu. Eliza mengatakan, "Anda tampaknya cukup positif." MILES: Tidak, saya, pada kenyataannya, sebuah elektron. BRIAN SCASSELLATI: "Tidak. Bahkan, saya elektron. " "Apakah kau datang padaku karena Anda elektron? " Sekarang, kita bisa melihat beberapa yang things-- aku akan untuk menghentikan sementara Anda sesaat, Miles. Jangan pergi ke mana pun. Kami tidak dilakukan dengan Anda belum. ELIZA adalah, dalam beberapa hal, menanggapi hal-hal tertentu bahwa dia mengatakan tetapi tanpa pemahaman yang benar. Dan itu juga menirukan kembali beberapa bagian dari hukumannya. Jadi kita berkata, "Tidak Bahkan, saya elektron. " Eliza menjawab kembali, "Apakah kau datang untuk saya karena Anda adalah elektron? " Baiklah. Mari kita memberikan satu lebih respon sini. Memberikan yang baik, Miles. MILES: Baik satu? Ya, tolong bantu saya. BRIAN SCASSELLATI: "Ya. Tolong bantu saya. "" Apakah Anda yakin? " MILES: No. BRIAN SCASSELLATI: No. "Apa yang menyarankan untuk Anda?" MILES: Saya mungkin tidak menjadi elektron. BRIAN SCASSELLATI: "Aku mungkin tidak menjadi elektron. " "Apakah Anda mengatakan tidak hanya menjadi negatif?" Baiklah. Jadi Miles, terima kasih banyak. MILES: Terima kasih. BRIAN SCASSELLATI: Terima kasih banyak. [TEPUK TANGAN] Sehingga program ELIZA ini, dalam banyak hal, merespons hanya untuk potongan bahwa kita memberikan tanpa mendalam pemahaman tentang apa yang terjadi di sini. Ini adalah jenis sistem disebut pencocokan pola, di mana kita cari tertentu bit teks yang kita kemudian akan mengambil dari apa diberikan sebagai masukan, mengubahnya, berpotensi, dalam beberapa cara, dan kemudian memberikannya kembali ke pengguna. Apakah ada di antara kalian berpikir yang ELIZA sebenarnya melakukan psikoanalisis valid di sini? Satu orang, mungkin. AUDIENCE: [tidak terdengar]. BRIAN SCASSELLATI: Dan bagaimana apakah itu membuat Anda merasa? Ya, pada kenyataannya, itu tidak. Dan kita akan lihat, sebenarnya, kode sumber untuk itu hanya dalam beberapa saat. Dan sehingga Anda akan menjadi mampu melakukan hal ini. Sekarang, ELIZA merupakan salah satu bentuk apa kita sebut hari ini chat bot. Itu hanya pergi melalui teks yang Anda menyediakan, memberikan jumlah minimal pemahaman atau pengolahan, dan kemudian beo kembali kepada Anda. Jadi mari kita lihat, konseptual, dan berbicara tentang apa itu adalah bahwa ELIZA benar-benar melakukan. ELIZA adalah mengambil let sentence-- ini mengatakan, "Saya ingin mengesankan bos saya." Dan ELIZA mencari melalui kalimat yang dan mencoba untuk menemukan dan sesuai pola-pola tertentu. Jadi, misalnya, salah satu pola yang ELIZA mencari kata-kata "Saya ingin." Dan setiap saat ia melihat sesuatu yang memiliki "Saya ingin" di dalamnya, itu merumuskan tanggapan. Dan respon yang adalah string tetap. Dalam hal ini, itu "kenapa kau inginkan?" Dan saya menaruh bintang kecil di akhir karena itu hanya awal respon kita. Dan bintang menunjukkan bahwa kita akan mengambil sisanya dari utterance-- pengguna "untuk mengesankan bos saya" - dan kita akan menambahkan bahwa ke akhir string ini. Jadi sekarang, daripada mengatakan, "mengapa Anda ingin mengesankan bos saya, " ada sedikit tambahan pengolahan yang akan kita lakukan. Artinya, kita harus mengkonversi beberapa kata ganti sini dari "bos saya" untuk "bos Anda." Dan mungkin ada beberapa lainnya perubahan yang kita butuhkan untuk membuat. Jadi bukan hanya menempel langsung ke akhirnya, apa yang akan kita lakukan adalah kita akan mengambil sisa utterance-- pengguna di sini-putih dan kami akan mengambilnya satu per satu waktu dan mengkonversi setiap string Token, setiap kata, dalam kalimat. Jadi kita akan mengambil kata "untuk." Tidak ada konversi yang perlu kita lakukan itu. "Mengesankan." Tidak ada konversi yang perlu kita lakukan di sana. "Saya" akan dikonversi ke "Anda." Dan "bos" kita akan hanya meninggalkan sebagai "bos." Dan akhirnya, apa pun yang berakhir dengan periode, kita akan mengubahnya menjadi sebuah pertanyaan. Pencocokan ini pola yang sangat sederhana sebenarnya cukup sukses. Dan ketika ini diperkenalkan di 1966-- Joseph Weizenbaum diprogram ini pada komputer. Sekarang, komputer pada waktu itu tidak model desktop. Mereka sumber daya bersama. Dan murid-muridnya akan pergi dan chatting dengan ELIZA. Akhirnya, ia harus membatasi akses ke sana karena murid-muridnya tidak mendapatkan pekerjaan yang dilakukan. Mereka hanya mengobrol dengan ELIZA. Dan, pada kenyataannya, ia harus api asistennya, yang menghabiskan semua waktunya berbicara dengan ELIZA tentang masalah yang mendalam dan mengkhawatirkan. Setiap orang yang menggunakan sistem ini mulai anthropomorphize mereka. Mereka mulai menganggap mereka sebagai menjadi bernyawa dan orang-orang yang nyata. Mereka mulai mengenali beberapa hal-hal yang mereka katakan datang kembali kepada mereka. Dan mereka mencari tahu hal tentang diri mereka sendiri. Dan, pada kenyataannya, bahkan para ahli, bahkan psikoterapis, mulai khawatir bahwa, pada kenyataannya, mungkin ELIZA akan menggantikan mereka. Dan bahkan komputer ilmuwan khawatir bahwa kami begitu dekat dengan pemecahan bahasa alami. Sekarang, itu tidak berada dekat dengan benar. Tapi itulah cara mengesankan sistem ini bisa. Jadi mari kita mulai melihat bawah dan mencoba untuk mendapatkan sedikit pertanyaan dari mana kode ini benar-benar terjadi. Jadi kita akan membuat kode ini tersedia setelah itu. Dan ini adalah sangat pelabuhan sederhana dan langsung pelaksanaan asli ELIZA. Jadi beberapa dari gaya hal-hal yang akan Anda lihat di sini tidak Gaya apa kami ingin Anda lakukan atau apa yang kita telah mengajar Anda lakukan. Tapi kami sudah mencoba untuk menjaga mereka sama di banyak port bahwa ini telah sehingga memiliki rasa aslinya. Jadi kita akan mencakup banyak hal, dan kemudian kita akan memiliki set kata kunci, hal yang ELIZA akan mengenali dan menanggapi secara langsung. Jadi jika Anda memiliki kata-kata seperti "Anda bisa" atau "Saya tidak" atau "tidak" atau "ya" atau "mimpi" atau "halo," kemudian ELIZA akan merespon selektif untuk mereka. Kami juga akan memiliki sejumlah hal bahwa kita akan bertukar, seperti mengkonversi "saya" untuk "Anda." Dan kemudian kita akan memiliki satu set tanggapan bahwa untuk setiap kata kunci tersebut, kami akan memutar melalui ini respon yang berbeda. Jadi jika saya mengatakan "ya" tiga kali berturut-turut, saya mungkin mendapatkan tiga berbeda tanggapan dari ELIZA. Kode kita, kemudian, adalah sebenarnya sangat sederhana. Jika saya gulir ke bawah melewati semua ini tanggapan yang telah kita diprogram dalam dan kami turun ke utama kami, kita akan menginisialisasi beberapa variabel yang berbeda dan melakukan sedikit rumah tangga pada awalnya. Tapi kemudian ada benar-benar set kode yang dapat Anda mengerti. Satu while besar yang bilang aku akan mengulangi ini berulang-ulang. Saya akan membaca di garis, dan aku akan menyimpan bahwa dalam string masukan. Aku akan memeriksa dan melihat apakah itu adalah kata kunci khusus "bye," yang berarti keluar dari program. Dan kemudian aku akan memeriksa dan melihat apakah seseorang hanya mengulang sendiri lagi dan lagi. Dan aku akan berteriak pada mereka jika mereka lakukan. Aku akan mengatakan "tidak mengulangi diri sendiri." Selama tidak satupun dari mereka terjadi, kita akan kemudian memindai melalui dan loop melalui, pada baris 308-313 di sini, dan memeriksa dan melihat adalah salah satu kata kunci yang frase yang terdapat pada input bahwa saya hanya diberikan? Jika ada yang cocok bagi mereka, baik kemudian, saya akan ingat lokasi tersebut. Aku akan ingat kata kunci tersebut. Dan aku akan mampu membangun respon. Jika saya tidak menemukan satu, baik itu, hal terakhir dalam array kata kunci saya akan tanggapan default saya, ketika tidak ada yang lain cocok. Saya akan mengajukan pertanyaan seperti "Mengapa Anda datang ke sini? "atau" Bagaimana saya bisa membantu Anda? " yang hanya sebagian yang tepat tidak peduli apa input. Kami kemudian akan membangun respon ELIZA ini. Kami akan dapat mengambil bahwa respon dasar, seperti yang kita lakukan dalam "bos saya" misalnya. Jika itu yang ada is-- jika itu hanya satu string yang seharusnya saya respond-- Saya hanya dapat mengirim kembali keluar. Jika memiliki tanda bintang di akhir itu, maka aku akan memproses setiap token individu dalam sisa respon pengguna dan menambahkan mereka yang, menukar kata demi kata yang saya butuhkan untuk. Semua ini benar-benar sesuatu yang Anda bisa membangun. Dan pada kenyataannya, cara di mana kita memiliki diproses argumen baris perintah, cara di mana Anda memiliki diproses melalui permintaan HTTP mengikuti jenis yang sama dari aturan. Mereka pencocokan pola. Jadi ELIZA memiliki relatif penting berdampak pada bahasa alami karena membuatnya tampak seperti itu adalah tujuan yang sangat dicapai, seperti entah bagaimana kami akan dapat memecahkan masalah ini secara langsung. Sekarang, yang bukan untuk mengatakan bahwa ELIZA tidak segala sesuatu yang kita ingin lakukan. Tentu tidak. Tapi kita harus bisa untuk melakukan sesuatu yang lebih. Langkah pertama kami untuk pergi luar ELIZA akan untuk dapat melihat tidak teks yang dimasukkan ke keyboard tetapi pidato, yang sebenarnya pidato direkam ke dalam mikrofon. Jadi seperti yang kita lihat ini bagian yang berbeda, kami akan harus membangun satu set model. Kita akan harus mampu untuk pergi dari akustik tingkat rendah lapangan information--, amplitudo, frequency-- dan mengkonversikan menjadi beberapa unit yang kami dapat lebih mudah memanipulasi dan, akhirnya, memanipulasi mereka dalam kata-kata dan kalimat. Jadi paling pengenalan suara sistem yang di luar sana hari ini mengikuti statistik model di mana kita membangun tiga representasi terpisah dari apa yang bahwa sinyal audio sebenarnya mengandung. Kita mulai dengan model fonetik yang berbicara tentang hanya dasar terdengar bahwa aku memproduksi. Saya memproduksi sesuatu yang a seperti pada anak laki-laki atau D seperti pada anjing? Bagaimana cara mengenali dua yang berbeda ponsel sebagai terpisah dan berbeda? Di atas semua itu, kita kemudian akan membangun model pengucapan kata, sesuatu yang menghubungkan bersama-sama mereka ponsel individu dan menggabungkan mereka ke dalam sebuah kata. Dan setelah itu, kami akan mengambil kata-kata dan kami akan mengumpulkan mereka dengan bahasa memodelkan menjadi kalimat lengkap. Sekarang, kita akan berbicara tentang setiap ini secara independen dan terpisah. Tapi tiga model ini semua hanya akan menjadi statistik. Dan itu berarti ketika kita bekerja dengan mereka, kita akan dapat bekerja dengan mereka semua secara bersamaan. Baiklah. Mari kita mulai dengan model yang fonetik kami. Jadi model fonetik mengandalkan teknik komputasi disebut model Markov tersembunyi. Ini adalah model grafis di mana saya memiliki dan mengakui negara dunia sebagai yang ditandai oleh satu set fitur. Dan negara yang menggambarkan salah satu bagian dari suatu tindakan yang saya terlibat dalam. Jadi jika saya berpikir tentang membuat suara "ma" seperti ibu, ada yang berbeda komponen untuk suara. Ada bagian di mana aku menarik napas. Dan kemudian saya mengerutkan bibir. Dan Aku memutar bibirku kembali sedikit bit untuk membuat "ma" suara. Dan kemudian ada sebuah rilis. Bibirku datang terpisah. Air dikeluarkan. "Ma." Ketiga bagian yang berbeda akan diwakili oleh negara-negara di graph-- ini timbulnya, tengah, dan akhir. Dan saya akan memiliki transisi yang memungkinkan saya untuk melakukan perjalanan dari satu negara ke depan dengan probabilitas tertentu. Jadi, misalnya, bahwa M terdengar mungkin memiliki sangat, asupan yang sangat singkat di beginning-- yang "mm" - dan kemudian lagi, fase getaran di mana aku memegang saya bibir bersama-sama dan hampir humming-- "mmmm" - dan kemudian sangat singkat plosif mana saya mengusir breath-- "ma." Model Markov tersembunyi adalah dirancang untuk menangkap fakta bahwa cara yang saya buat suara "ma" akan menjadi sedikit berbeda di waktu, adalah frekuensi, dan fitur-fiturnya dari cara yang Anda membuatnya atau cara yang saya mungkin membuatnya ketika saya sedang berbicara tentang perbedaan penggunaan surat itu. "Ibu" dan "mungkin saya" akan terdengar sedikit berbeda. Jadi untuk mengenali suara tertentu, kita akan membangun model Markov, ini tersembunyi Markov model, setiap telepon mungkin bahwa saya mungkin ingin mengenali, setiap suara yang mungkin, dan kemudian melihat Data akustik yang saya miliki dan menentukan statistik yang satu adalah yang paling mungkin telah menghasilkan suara ini. OKE. Dengan model yang, kita kemudian mulai membangun di atasnya. Kami mengambil model pengucapan. Sekarang, kadang-kadang pengucapan model sederhana dan mudah karena hanya ada satu cara untuk mengucapkan sesuatu. Kali lain, mereka yang sedikit lebih rumit. Berikut adalah panduan pengucapan untuk itu hal merah yang buah yang Anda buat kecap dari. Orang tidak berpikir itu buah. Kanan? Sekarang, ada banyak cara yang berbeda bahwa orang akan mengucapkan kata ini. Beberapa akan mengatakan "toe-Mei-toe." Beberapa akan mengatakan "toe-mah-toe." Dan kita bisa menangkap bahwa dengan salah satu model ini grafis di mana, lagi, kami mewakili transisi sebagai memiliki probabilitas tertentu dan terkait probabilitas dengan mereka. Jadi dalam hal ini, jika saya mengikuti rute atas melalui seluruh grafik ini, Saya akan mulai dari huruf di paling kiri, yang "ta" suara. Saya akan mengambil bagian atas, yang "oh," dan kemudian "ma," dan kemudian "a," dan kemudian "ta," dan "oh." "Toe-may-toe." Jika saya mengambil jalan bawah melalui ini, saya akan mendapatkan "ta-mah-toe." Dan jika saya turun dan kemudian up, saya akan mendapatkan "ta-may-toe." Model ini menangkap ini perbedaan karena setiap kali kami menyebarkan salah satu dari ini sistem pengenalan, itu akan harus bekerja dengan banyak berbagai jenis orang, banyak aksen yang berbeda, dan bahkan perbedaan penggunaan kata-kata yang sama. Akhirnya, di atas itu, kita akan membangun sesuatu yang terlihat benar-benar rumit, disebut model bahasa, tetapi sebenarnya adalah yang paling sederhana tiga karena ini beroperasi pada apa yang disebut model n-gram. Dan dalam hal ini, saya menunjukkan Anda model n-gram dua bagian, bigram a. Kita akan membuat fisik ide bahwa kadang-kadang, kata-kata tertentu yang lebih mungkin untuk mengikuti diberikan kata daripada yang lain. Jika saya hanya berkata "cuaca," kata berikutnya mungkin bisa menjadi "hari ini" atau bisa menjadi "cuaca diperkirakan besok. " Tapi itu tidak mungkin menjadi " cuaca artichoke. " Apa model bahasa yang dilakukan adalah menangkap mereka secara statistik dengan menghitung, dari beberapa yang sangat besar corpus, semua contoh di mana satu kata berikut lain. Jadi jika saya mengambil corpus-- besar seperti setiap Wall Street Journal yang telah diproduksi sejak tahun 1930, yang merupakan salah satu corpuses-- standar dan saya melihat melalui semua teks itu, dan saya menghitung up berapa kali setelah "perkiraan" saya melihat "hari ini" dan berapa kali saya melihat "perkiraan" diikuti dengan "artichoke," yang pertama akan menjadi jauh lebih mungkin. Ini akan muncul jauh lebih sering. Dan sehingga akan memiliki lebih tinggi probabilitas yang terkait dengan itu. Jika saya ingin mengetahui probabilitas seluruh ucapan, kemudian, saya hanya istirahat itu. Jadi probabilitas pendengaran kalimat "tikus makan keju" adalah probabilitas kata "yang" mulai kalimat, dan kemudian probabilitas bahwa Kata "tikus" berikut kata "itu," dan probabilitas bahwa Kata "makan" berikut "tikus," dan probabilitas bahwa "keju" berikut "makan." Ini terdengar seperti banyak statistik, banyak probabilitas. Dan itulah yang itu. Tapi hal yang menakjubkan adalah jika Anda melakukan hal ini dengan sampel yang cukup besar data, berhasil. Dan bekerja sangat baik. Kita semua tahu teknologi ini. Sebagian besar sistem operasi datang dengan pengenalan suara pada saat ini. Kami menggunakan Siri dan Cortana dan Echo. Dan hal-hal ini didasarkan pada jenis tiga lapis model-- model fonetik di bagian bawah, sebuah Model pengucapan di tengah, dan model bahasa di atas mereka. Sekarang, mereka harus melakukan sedikit lebih Selain itu dalam rangka untuk menjawab pertanyaan. Tapi pengakuan apa yang Anda pepatah tergantung persis pada itu. Jadi mari kita mengambil contoh di sini. Jadi saya memiliki telepon saya duduk di sini di bawah kamera dokumen. Dan kita akan meminta Siri beberapa pertanyaan. Baiklah? Jadi mari kita bangun telepon saya di sini. Siri, apa cuaca seperti di New Haven hari ini? SIRI: Berikut cuaca untuk New Haven, Connecticut hari ini. BRIAN SCASSELLATI: OK. Jadi pertama Anda melihat bahwa Siri diakui setiap kata-kata individu dan kemudian menghasilkan tanggapan. Kami akan berbicara tentang bagaimana respon yang datang sekitar dalam sedikit. Tapi sekarang kita tahu bahwa ini hanya berdasarkan pada statistik mentah dan ini Jenis pencocokan pola pendekatan, kita bisa memainkan beberapa game dengan Siri. Sehingga saya bisa mencoba lagi. Siri, apa cuaca kuda nil New Haven, hari ini? SIRI: OK. Berikut cuaca untuk New Haven, Connecticut untuk hari ini. BRIAN SCASSELLATI: Siri tidak gentar dengan yang karena itu ditemukan pattern-- yang "cuaca," "hari ini," "New Haven." Itulah yang itu menanggapi untuk, hanya ingin ELIZA. Baiklah. Mari kita memberikan satu lebih bahkan lebih contoh konyol. Siri, artichoke cuaca armadillo kuda nil New Haven? SIRI: Biarkan aku memeriksa itu. Inilah yang saya temukan di web untuk apa yang artichoke armadillo kuda nil New Haven. BRIAN SCASSELLATI: OK. Jadi jika saya pergi cukup jauh jauh dari model ini, Aku bisa membingungkan karena itu tidak ada lagi sesuai dengan pola yang telah. Dan bahwa statistik Mesin itu mengatakan, apa kemungkinan bahwa Anda punya kata-kata kuda nil dan artichoke bersama-sama, dan armadillo? Itu harus menjadi sesuatu yang baru. Jadi teknologi ini kita gunakan setiap hari. Jika kita ingin membawa mereka satu langkah lebih lanjut, meskipun, jika kita benar-benar ingin dapat berbicara tentang apa adalah bahwa sistem ini menanggapi, kita harus bicara, lagi, tentang set yang lebih mendasar dari pertanyaan. Dan itu topik dalam komunikasi yang kita sebut pertanyaan penjawab. Artinya, kita ingin dapat to-- ya? AUDIENCE: [tidak terdengar]. BRIAN SCASSELLATI: Apakah kita mendapatkan dalam pengolahan semantik laten? Jadi iya. Ada banyak hal-hal yang terjadi di bawah permukaan dengan Siri dan di beberapa contoh Aku akan menunjukkan kepada Anda berikutnya di mana ada cukup sedikit dalam hal struktur dari apa yang Anda katakan itu penting. Dan, pada kenyataannya, itu adalah besar prekursor untuk slide berikutnya bagi saya. Jadi dengan cara yang sama yang kami pengenalan suara dibangun dari beberapa lapisan, jika kita ingin memahami apa yang sebenarnya dikatakan, kita akan lagi mengandalkan analisis multi-layer dari teks yang diakui. Jadi ketika Siri sebenarnya mampu mengatakan, melihat saya menemukan kata-kata ini. Sekarang apa yang harus saya lakukan dengan mereka? Komponen pertama adalah sering pergi melalui dan mencoba untuk menganalisis struktur kalimat. Dan dalam apa yang telah kita lihat di sekolah dasar, sering, sebagai semacam diagram kalimat, kita akan untuk mengakui bahwa tertentu kata memiliki peran tertentu. Ini adalah kata benda. Ini adalah kata ganti. Ini adalah kata kerja. Dan kita akan mengenali bahwa untuk tata bahasa tertentu, dalam hal ini bahasa Inggris tata bahasa, ada cara valid di mana saya dapat menggabungkan mereka dan cara-cara lain yang tidak valid. Pengakuan bahwa, struktur itu, mungkin cukup untuk membantu membimbing kita sedikit. Tapi itu tidak cukup bagi kita untuk dapat memberikan makna untuk apa yang dikatakan di sini. Untuk melakukan itu, kita harus mengandalkan beberapa jumlah pengolahan semantik. Artinya, kita akan harus melihat di bawah apa yang masing-masing kata-kata ini benar-benar membawa sebagai makna. Dan dengan cara yang paling sederhana untuk melakukan hal ini, kita akan mengasosiasikan dengan setiap kata yang kita tahu fungsi tertentu, transformasi tertentu yang memungkinkan terjadi. Dalam hal ini, kita mungkin label kata "John" sebagai nama yang tepat, bahwa itu disertai dengan identitas. Dan kita mungkin label "Mary" sebagai cara yang sama. Sedangkan kata kerja seperti "cinta," yang merupakan hubungan tertentu bahwa kami dapat mewakili. Sekarang, itu tidak berarti kita mengerti apa itu cinta tetapi hanya bahwa kita mengerti itu di jalan sistem simbolik. Artinya, kita dapat label dan memanipulasinya. Dengan masing-masing jenis pendekatan, jenis pengolahan semantik di sini akan membutuhkan sedikit sedikit pengetahuan dan banyak pekerjaan pada bagian kami. Kita tidak lagi di alam di mana statistik sekadar akan menjadi cukup bagi kita. Sekarang, dalam rangka untuk pergi dari titik ini menjadi mampu berbicara tentang bagian dalam apa yang sebenarnya terjadi di sini, untuk dapat memanipulasi ini struktur dan memahami pertanyaan dan kemudian mampu untuk pergi keluar dan mencari, yang membutuhkan lebih Model kognitif yang kompleks. Cara di mana sistem ini dibangun adalah untuk sebagian besar sangat, sangat padat intensif. Mereka melibatkan manusia menghabiskan banyak waktu penataan cara yang jenis-kalimat dapat diwakili dalam beberapa logika. Ia mendapat bahkan sedikit lebih kompleks, meskipun. Bahkan setelah kami sudah berurusan dengan semantik, kita akan masih harus melihat pragmatik apa yang dikatakan. Artinya, bagaimana cara berhubungan dengan kata-kata bahwa saya harus sesuatu yang secara fisik keluar ada di dunia atau di setidaknya beberapa sumber informasi bahwa saya bisa memanipulasi? Kadang-kadang, ini menyebabkan bit indah ambiguitas. "Red-hot bintang untuk menikah astronom." OKE. Sekarang, kita membaca bahwa sebagai Jenis lucu judul bahwa kita akan melihat pada larut malam TV karena kita tidak menafsirkan "bintang" memiliki arti benda angkasa tersebut. Kita tahu bahwa itu berarti lebih Aktor biasa atau aktris dengan jumlah tinggi visibilitas. "Skuad membantu korban gigitan anjing." Apakah itu skuad sebenarnya di luar sana membantu anjing di terjadi di sekitar dan menggigit korban? Atau bahwa ada seorang individu yang digigit anjing yang membutuhkan bantuan? Hanya dari melihat sintaks dan semantik kalimat, kita tidak bisa menentukan itu. "Helikopter didukung oleh lalat manusia." Apakah ada, pada kenyataannya, sebenarnya hal-hal kecil yang terbang di sekitar adalah orang-orang dengan sayap powering helikopter untuk kebaikan umat manusia? Atau ada satu perangkat mekanik yang berasal kekuatannya dari seseorang? Ketika kita melihat pertanyaan sistem menjawab, ini adalah lapisan yang kita perlu berurusan dengan. Sekarang, yang terbaik dan paling semacam dari umum dari sistem ini hari ini mampu melakukan hal-hal di tingkat yang jauh melampaui apa yang kita miliki 10 tahun yang lalu. Berikut ini salah satu sistem terbaik yang ada di luar sana hari ini. Dan ini adalah suatu sistem dari IBM yang disebut Watson. Ini adalah dari teman-teman kita di IBM. Ini adalah bank Katherine, Jia Chen, dan Priscilla Moraes memberikan kita demonstrasi Watson kemarin di IBM Yorktown. [VIDEO PLAYBACK] -Apa kabar? -Saya baik. Saya selalu senang ketika saya berpikir, terutama ketika saya dapat tetap dingin di ruang server ini. -Siapa Aktris favorit Anda? Aktris favorit -My Angelina Jolie sebagai Lara Croft di Tomb Raider karena aslinya bentuk adalah sebagai karakter virtual seperti saya. -Bagaimana Watson dapat membantu pasien? -Apakah Rencana bagi pasien untuk memiliki akses ke Watson langsung? Akses ke Watson penasehat aplikasi akan bervariasi dengan menggunakan kasus. Tapi saat ini, Watson hanya akan memberikan diagnosis dan pengobatan mungkin pilihan untuk profesional medis. Apabila diperlukan, pasien dapat memberikan informasi Watson, mungkin melalui antarmuka web portal, tablet, atau bahkan ponsel. Sebagai contoh, pasien mungkin diminta untuk menggambarkan gejala mereka dalam bahasa alami langsung menjadi solusi Watson, memungkinkan dokter untuk fokus pada diagnosis dan tidak pengumpulan data. -Siapa Dibunuh Abraham Lincoln? -John Wilkes Booth. -Dalam Tahun berapa melakukan Arizona Diamondbacks memenangkan World Series? -2001. [END PLAYBACK] BRIAN SCASSELLATI: Jadi jenis-jenis sistem harus mengandalkan pertama-tama mengenali pidato; kedua, mengubahnya menjadi internal yang bermakna perwakilan; dan kemudian, ketiga, bisa pergi keluar dan menemukan sumber informasi yang memungkinkan mereka untuk menjawab pertanyaan itu. Tingkat kompleksitas melibatkan jenis yang sama hal program bahwa Anda telah lakukan di masalah set. Kami dapat mengurai permintaan HTTP di jenis yang sama dari pola tingkat rendah pencocokan yang ELIZA dapat dilakukan. Kami dapat mengkonversikan menjadi representasi internal, dan kemudian menggunakannya untuk query beberapa database eksternal, mungkin menggunakan SQL. Semua sistem yang yang sedang dibangun saat ini untuk melakukan hal ini jenis alami komunikasi bahasa sedang dibangun di atas prinsip-prinsip yang sama. Sekarang, bahkan sistem seperti Watson tidak cukup kompleks untuk dapat menjawab sewenang-wenang pertanyaan tentang topik apapun. Dan pada kenyataannya, mereka harus terstruktur dalam domain tertentu. Sehingga Anda dapat pergi online dan Anda dapat menemukan versi Watson yang beroperasi dengan baik dalam informatika medis. Atau ada satu secara online yang hanya berkaitan dengan bagaimana untuk membuat rekomendasi yang baik tentang apa bir akan pergi dengan yang makanan. Dan dalam domain-domain, dapat menjawab pertanyaan, menemukan informasi yang dibutuhkan. Tetapi Anda tidak dapat mencampur dan mencocokkan mereka. Sistem yang telah dilatih dengan database makanan dan bir tidak bekerja dengan baik ketika Anda tiba-tiba memasukkannya ke dalam dengan informatika medis Database. Jadi bahkan sistem yang terbaik hari ini mengandalkan tingkat pengolahan di mana kita coding tangan dan membangun infrastruktur dalam rangka untuk membuat sistem ini berjalan. Sekarang, topik terakhir yang ingin saya untuk bisa sampai ke hari ini adalah tentang komunikasi nonverbal. Sebuah massa besar informasi yang kita berkomunikasi satu sama lain tidak terjadi melalui kata-kata individu bahwa kita menerapkan. Ini ada hubungannya dengan hal-hal seperti kedekatan, tatapan, nada suara, infleksi Anda. Dan komunikasi yang juga sesuatu yang banyak antarmuka yang berbeda peduli banyak tentang. Itu bukan apa Siri peduli. Saya dapat meminta Siri sesuatu dalam satu suara atau dengan nada yang berbeda dari suara, dan Siri akan memberikan jawaban yang sama. Tapi itu bukan apa yang kita membangun untuk jenis lain dari interface. Saya ingin memperkenalkan Anda sekarang untuk salah satu robot. Ini dibangun oleh lama saya teman dan kolega Cynthia Breazeal dan perusahaannya Jibo. Dan robot-- ini kita akan untuk memiliki beberapa relawan datang untuk berinteraksi dengan ini. Jadi bisa saya memiliki dua orang yang bersedia bermain dengan robot untuk saya? Mengapa Anda tidak datang ke atas, dan mengapa tidak melakukan Anda datang ke atas. Jika Anda ingin bergabung dengan saya di sini, silakan. Dan jika aku bisa memiliki Anda datang tepat di sini. Terima kasih. Hai. ALFREDO: Senang bertemu Anda. Alfredo. BRIAN SCASSELLATI: Alfredo. RACHEL: Rachel. BRIAN SCASSELLATI: Rachel. Senang bertemu Anda berdua. Alfredo, aku akan memiliki Anda pergi dulu. Datang tepat di sini. Aku akan memperkenalkan you-- jika saya bisa mendapatkan ini dari tanpa mengetuk microphone-- yang untuk robot kecil bernama Jibo. OKE? Sekarang, Jibo dirancang untuk menjadi interaktif. Dan meskipun dapat memberikan pidato Anda, banyak interaksi robot dengan adalah nonverbal. Alfredo, aku akan meminta Anda untuk mengatakan sesuatu yang menyenangkan dan gratis untuk robot, silakan. ALFREDO: Saya pikir Anda terlihat manis. [Berputar SUARA] BRIAN SCASSELLATI: OK. Responnya tidak verbal. Namun itu memberi Anda berdua pengakuan yang jelas bahwa mereka telah mendengar apa yang Anda katakan dan juga entah bagaimana memahami bahwa. OKE? Langkah tepat kembali ke sini untuk satu detik. Terima kasih. Rachel, jika Anda akan. Sekarang, saya akan memberikan Anda pekerjaan jauh lebih sulit. Jika Anda akan berdiri di sini, cadangan hanya sedikit sehingga kita bisa mendapatkan Anda pada kamera dan terlihat seperti ini. Aku akan meminta Anda untuk mengatakan sesuatu benar-benar berarti dan jahat untuk robot. RACHEL: Apa yang baru saja Anda tampak lakukan adalah benar-benar tidak masuk akal. [Bersenandung SUARA] Itu bahkan lebih masuk akal. Kamu kenapa? Aw, jangan merasa buruk. Saya akan memberikan pelukan. BRIAN SCASSELLATI: Baiklah. Terima kasih, Rachel. Alfredo, Rachel, thanks guys sangat banyak. [TEPUK TANGAN] Jadi jenis interaksi memiliki di banyak cara beberapa aturan yang sama dan beberapa yang sama struktur seperti apa yang kita mungkin dalam interaksi linguistik. Hal ini baik dan komunikatif melayani tujuan yang penting. Dan interaksi itu, di banyak cara, dirancang memiliki efek tertentu pada orang berinteraksi dengan atau mendengarkan untuk robot. Sekarang, aku cukup beruntung memiliki Jibo di sini hari ini. Sam Spaulding sini membantu kami dengan robot. Dan aku akan meminta Sam untuk memberikan kami salah satu demo yang bagus dari Jibo menari bahwa kita dapat menonton di akhir di sini. Jadi silakan, Jibo. SAM: OK, Jibo. Menunjukkan kepada kita gerakan tarian Anda. [MUSIC PLAYING] BRIAN SCASSELLATI: Baiklah, semua orang. Terima kasih kepada teman-teman kita di Jibo. [TEPUK TANGAN] Dan terima kasih kepada teman-teman kita di IBM untuk membantu keluar hari ini. Komunikasi adalah sesuatu yang bahwa Anda akan untuk melihat datang lebih banyak dan lebih sebagai kita membangun interface yang lebih kompleks. Minggu depan, kita akan berbicara tentang bagaimana antarmuka dengan lawan komputer di game. Tapi jika Anda memiliki pertanyaan tentang hal ini, Saya akan berada di sekitar di jam kantor malam ini. Saya senang untuk berbicara dengan Anda tentang AI topik atau untuk mendapatkan ke detail lebih lanjut. Selamat berakhir pekan. [TEPUK TANGAN] [MUSIC PLAYING]