LUCAS FREITAS: Hey. Menyambut semua orang. Nama saya Lucas Freitas. Aku junior di [Tak terdengar] belajar ilmu komputer dengan fokus di komputasi linguistik. Jadi sekunder saya adalah dalam bahasa dan teori linguistik. Aku benar-benar bersemangat untuk mengajar kalian sedikit tentang lapangan. Ini adalah daerah yang sangat menarik untuk belajar. Juga dengan banyak potensi untuk masa depan. Jadi, aku benar-benar senang bahwa kalian mempertimbangkan proyek-proyek dalam komputasi linguistik. Dan aku akan lebih dari senang untuk memberitahu salah satu dari Anda jika Anda memutuskan untuk mengejar salah satu dari mereka. Jadi pertama-tama apa komputasi linguistik? Jadi linguistik komputasi adalah persimpangan antara linguistik dan ilmu komputer. Jadi, apa linguistik? Apa ilmu komputer? Nah dari linguistik, apa kita ambil adalah bahasa. Jadi linguistik sebenarnya studi dari bahasa alami secara umum. Bahasa begitu alami - kita berbicara tentang bahasa yang kita benar-benar digunakan untuk berkomunikasi satu sama lain. Jadi kita tidak benar-benar berbicara tentang C atau Java. Kita bicara tentang bahasa Inggris dan Bahasa Cina dan lainnya yang kita gunakan untuk berkomunikasi satu sama lain. Hal menantang tentang itu adalah bahwa sekarang kami memiliki hampir 7.000 bahasa di dunia. Jadi ada cukup berbagai tinggi bahasa yang bisa kita pelajari. Dan kemudian Anda berpikir bahwa itu mungkin sangat sulit untuk dilakukan, misalnya, terjemahan dari satu bahasa ke lainnya, mengingat bahwa Anda memiliki hampir 7.000 dari mereka. Jadi, jika Anda berpikir untuk melakukan penerjemahan dari satu bahasa ke lain Anda hampir lebih dari satu juta kombinasi yang berbeda yang dapat Anda harus dari bahasa ke bahasa. Jadi itu benar-benar menantang untuk melakukan beberapa jenis sistem contoh terjemahan untuk setiap bahasa tunggal. Jadi, linguistik memperlakukan dengan sintaks, semantik, pragmatik. Kalian tidak benar-benar perlu untuk mengetahui apa yang mereka. Namun hal yang sangat menarik adalah bahwa sebagai penutur asli, ketika Anda belajar bahasa sebagai anak, Anda benar-benar belajar semua hal-hal - semantik sintaks dan pragmatik - sendiri. Dan tak seorangpun harus mengajarkan sintaks untuk Anda untuk memahami bagaimana kalimat yang terstruktur. Jadi, itu benar-benar menarik karena itu adalah sesuatu yang datang sangat intuitif. Dan apa yang Anda ambil dari ilmu komputer? Nah, hal yang paling penting bahwa kita memiliki dalam ilmu komputer pertama semua, kecerdasan buatan dan mesin belajar. Jadi, apa yang kita mencoba untuk melakukan komputasi linguistik adalah mengajar komputer Anda bagaimana melakukan sesuatu dengan bahasa. Jadi, misalnya, dalam mesin terjemahan. Saya mencoba untuk mengajarkan bagaimana komputer saya untuk mengetahui bagaimana transisi dari satu bahasa yang lain. Jadi, pada dasarnya suka mengajar komputer dua bahasa. Jika saya melakukan pengolahan bahasa alami, yang merupakan kasus untuk contoh Facebook Graph Search, Anda mengajar komputer Anda bagaimana memahami pertanyaan dengan baik. Jadi, jika Anda mengatakan "foto-foto saya teman-teman. "Facebook tidak memperlakukan bahwa secara keseluruhan string yang memiliki hanya sekelompok kata-kata. Ini benar-benar memahami relasi antara "foto" dan "teman-teman saya" dan memahami bahwa "foto" yang milik "teman-teman saya." Jadi, itu adalah bagian dari, misalnya, pengolahan bahasa alami. Itu mencoba untuk memahami apa yang adalah hubungan antara kata-kata dalam kalimat. Dan pertanyaan besar adalah, dapat Anda mengajarkan komputer bagaimana berbicara bahasa secara umum? Yang merupakan pertanyaan yang sangat menarik untuk berpikir, seolah-olah mungkin di masa depan, Anda akan dapat berbicara dengan ponsel Anda. Jenis seperti apa yang kita lakukan dengan Siri namun sesuatu yang lebih seperti, Anda benar-benar dapat mengatakan apa pun yang Anda inginkan dan telepon akan memahami segalanya. Dan itu dapat memiliki menindaklanjuti pertanyaan dan terus berbicara. Itu sesuatu yang benar-benar menarik, menurut pendapat saya. Jadi, sesuatu tentang bahasa alami. Sesuatu yang sangat menarik tentang bahasa alami adalah bahwa, dan ini adalah kredit kepada saya profesor linguistik, Maria Polinsky. Dia memberikan contoh dan saya pikir itu benar-benar menarik. Karena kita belajar bahasa dari ketika kita lahir dan kemudian ibu kita Bahasa semacam tumbuh pada kami. Dan pada dasarnya Anda belajar bahasa dari input minimal, kan? Anda hanya mendapatkan masukan dari Anda orang tua dari apa yang terdengar bahasa Anda suka dan Anda hanya mempelajarinya. Jadi, itu menarik karena jika Anda melihat pada kalimat-kalimat, misalnya. Anda lihat, "Mary memakai mantel setiap waktu dia meninggalkan rumah. " Dalam hal ini, sangat memungkinkan untuk memiliki kata "dia" merujuk kepada Mary, kan? Anda dapat mengatakan "Mary memakai mantel setiap kali Mary meninggalkan rumah. "jadi itu baik-baik saja. Tapi kemudian jika Anda melihat kalimat "Dia memakai mantel setiap kali Mary meninggalkan rumah. "Anda tahu itu mustahil untuk mengatakan bahwa "dia" adalah mengacu pada Mary. Tidak ada cara untuk mengatakan bahwa "Maria menempatkan mantel setiap kali Mary daun rumah. "Jadi menarik karena ini adalah jenis intuisi bahwa setiap penutur asli memiliki. Dan tidak ada yang mengajarkan bahwa ini adalah cara sintaks bekerja. Dan bahwa Anda hanya bisa memiliki "dia" mengacu Maria dalam kasus pertama ini, dan benar-benar dalam hal ini lain juga, tapi tidak dalam satu ini. Tapi semua orang semacam mendapat dengan jawaban yang sama. Semua orang setuju itu. Jadi itu benar-benar menarik bagaimana meskipun Anda tidak tahu semua aturan dalam bahasa Anda Anda jenis memahami bagaimana bahasa bekerja. Jadi hal yang menarik tentang alam bahasa adalah bahwa Anda tidak perlu mengetahui sintaks apapun untuk mengetahui apakah kalimat adalah tata bahasa atau gramatikal untuk kebanyakan kasus. Yang membuat Anda berpikir bahwa mungkin apa terjadi adalah bahwa melalui hidup Anda, Anda hanya terus mendapatkan lebih banyak dan lebih kalimat diberitahu untuk Anda. Dan kemudian Anda terus menghafal semua kalimat. Dan kemudian ketika seseorang memberitahu Anda sesuatu, Anda mendengar kalimat itu dan Anda melihat kosakata Anda kalimat dan melihat apakah kalimat yang ada. Dan jika ada Anda mengatakan itu tata bahasa. Jika tidak Anda mengatakan itu gramatikal. Jadi, dalam hal ini, Anda akan mengatakan, oh, sehingga Anda memiliki daftar besar semua mungkin kalimat. Dan kemudian ketika Anda mendengar kalimat, Anda tahu apakah itu tata bahasa atau tidak berdasarkan itu. Masalahnya adalah bahwa jika Anda melihat kalimat, misalnya, "The lima berkepala CS50 TF dimasak buta gurita menggunakan mug DAPA. "Ini pasti tidak kalimat bahwa Anda dengar sebelumnya. Tetapi pada saat yang sama Anda tahu itu cukup banyak tata bahasa, kan? Tidak ada kesalahan tata bahasa dan Anda dapat mengatakan bahwa itu adalah kalimat yang mungkin. Jadi itu membuat kita berpikir bahwa sebenarnya cara kita belajar bahasa tidak hanya dengan memiliki database besar mungkin kata atau kalimat, tetapi lebih dari memahami hubungan antara kata-kata dalam kalimat-kalimat. Apakah itu masuk akal? Jadi, maka pertanyaannya adalah, bisa komputer belajar bahasa? Bisakah kita mengajarkan bahasa komputer? Jadi, mari kita berpikir tentang perbedaan antara penutur asli bahasa dan komputer. Jadi, apa yang terjadi pada pembicara? Nah, penutur asli belajar a bahasa dari paparan itu. Biasanya masa kanak-kanak awal. Jadi, pada dasarnya, Anda hanya punya bayi, dan Anda terus berbicara untuk itu, dan itu hanya belajar bagaimana berbicara bahasa, kan? Jadi, pada dasarnya Anda memberi masukan untuk bayi. Jadi, maka Anda dapat mengatakan bahwa komputer dapat melakukan hal yang sama, kan? Anda hanya bisa memberikan bahasa sebagai masukan ke komputer. Seperti misalnya sekelompok file yang memiliki buku-buku dalam bahasa Inggris. Mungkin itulah salah satu cara yang Anda mungkin bisa mengajarkan komputer Inggris, kan? Dan pada kenyataannya, jika Anda berpikir tentang hal ini, Anda membutuhkan waktu mungkin beberapa hari untuk membaca buku. Untuk komputer dibutuhkan satu detik untuk melihat semua kata dalam sebuah buku. Sehingga Anda dapat berpikir bahwa mungkin hanya ini Argumen masukan dari sekitar Anda, itu tidak cukup untuk mengatakan bahwa itu sesuatu yang dapat Anda lakukan hanya manusia. Anda dapat menganggap komputer juga bisa mendapatkan masukan. Hal kedua adalah bahwa penutur asli juga memiliki otak yang memiliki kemampuan belajar bahasa. Tapi jika Anda berpikir tentang hal ini, otak adalah hal yang solid. Ketika Anda lahir, itu sudah diatur - ini adalah otak Anda. Dan ketika Anda tumbuh, Anda hanya mendapatkan lebih banyak input bahasa dan mungkin nutrisi dan hal-hal lain. Tapi cukup banyak otak Anda adalah hal yang solid. Jadi, Anda bisa mengatakan, baik, mungkin Anda bisa membangun sebuah komputer yang memiliki banyak fungsi dan metode yang hanya meniru kemampuan belajar bahasa. Jadi dalam hal ini, Anda bisa mengatakan, baik, saya dapat memiliki komputer yang memiliki semua hal yang saya perlu belajar bahasa. Dan hal terakhir adalah bahwa penduduk asli speaker belajar dari trial and error. Jadi pada dasarnya hal lain yang penting dalam pembelajaran bahasa adalah bahwa Anda jenis dari belajar hal-hal dengan membuat generalisasi dari apa yang Anda dengar. Jadi seperti Anda tumbuh Anda belajar bahwa beberapa kata yang lebih seperti kata benda, beberapa yang lainnya adalah kata sifat. Dan Anda tidak harus memiliki pengetahuan linguistik untuk memahami bahwa. Tapi kau hanya tahu ada beberapa kata diposisikan di beberapa bagian dari kalimat dan beberapa orang lain di lain bagian dari kalimat. Dan bahwa ketika Anda melakukan sesuatu yang seperti kalimat yang tidak benar - mungkin karena generalisasi atas misalnya. Mungkin ketika Anda tumbuh dewasa, Anda melihat bahwa jamak biasanya dibentuk dengan menempatkan S di akhir kata. Dan kemudian Anda mencoba untuk melakukan jamak dari "Rusa" sebagai "rusa" atau "gigi" sebagai "Tooths." Jadi orang tua atau seseorang mengoreksi Anda dan berkata, tidak, jamak dari "rusa" adalah "rusa," dan jamak dari "gigi" adalah "gigi." Dan kemudian Anda belajar hal-hal. Jadi, Anda belajar dari trial and error. Tapi Anda juga bisa melakukan itu dengan komputer. Anda dapat memiliki sesuatu yang disebut penguatan pembelajaran. Yang pada dasarnya adalah seperti memberikan komputer reward setiap kali melakukan sesuatu dengan benar. Dan memberikan kebalikan dari hadiah dan ketika itu terjadi sesuatu yang salah. Anda benar-benar dapat melihat bahwa jika Anda pergi ke Google Translate dan Anda mencoba untuk menerjemahkan kalimat, meminta Anda untuk umpan balik. Jadi jika Anda berkata, oh, ada yang lebih baik terjemahan untuk kalimat ini. Anda dapat mengetik itu dan kemudian jika banyak orang terus mengatakan bahwa adalah lebih baik terjemahan, itu hanya belajar bahwa hal itu harus menggunakan terjemahan yang bukan satu itu memberi. Jadi, itu adalah pertanyaan yang sangat filosofis untuk melihat apakah komputer akan menjadi mampu berbicara atau tidak di masa depan. Tapi aku punya harapan tinggi bahwa mereka dapat hanya didasarkan pada argumen-argumen. Tapi itu hanya lebih dari filosofis pertanyaan. Jadi sementara komputer masih belum bisa bicara, apa saja hal-hal yang bisa kita lakukan? Beberapa hal yang benar-benar keren klasifikasi data. Jadi, misalnya, kalian tahu bahwa layanan email lakukan, untuk Misalnya, penyaringan spam. Jadi, setiap kali Anda menerima spam, mencoba untuk menyaring ke kotak lain. Jadi bagaimana cara melakukan itu? Ini tidak seperti komputer hanya tahu alamat email apa yang mengirim spam. Jadi itu lebih didasarkan pada isi pesan, atau mungkin judul, atau mungkin beberapa pola yang Anda miliki. Jadi, pada dasarnya, apa yang dapat Anda lakukan adalah mendapatkan banyak data email yang spam, email yang bukan spam, dan mempelajari apa jenis pola yang Anda miliki di orang-orang yang spam. Dan ini adalah bagian dari komputasi linguistik. Ini disebut klasifikasi data. Dan kami benar-benar akan melihat contoh bahwa dalam slide berikutnya. Hal kedua adalah bahasa alami pengolahan yang merupakan hal yang Grafik Pencarian lakukan membiarkan Anda menulis kalimat. Dan itu mempercayai Anda memahami apa adalah makna dan memberikan Anda hasil yang lebih baik. Sebenarnya, jika Anda pergi ke Google atau Bing dan Anda mencari sesuatu seperti Lady Gaga tinggi, Anda benar-benar akan untuk mendapatkan 5 '1 "bukan informasi darinya karena benar-benar mengerti apa yang Anda bicarakan. Jadi itu bagian dari alam pengolahan bahasa. Atau juga ketika Anda menggunakan Siri, pertama Anda memiliki algoritma yang mencoba untuk menerjemahkan apa yang Anda katakan dalam kata-kata, dalam teks. Dan kemudian mencoba untuk menerjemahkan yang menjadi makna. Jadi itu semua adalah bagian dari alam pengolahan bahasa. Maka Anda memiliki terjemahan mesin - yang sebenarnya adalah salah satu favorit saya - yang hanya menerjemahkan dari suatu bahasa ke bahasa lain. Sehingga Anda dapat berpikir bahwa ketika Anda sedang melakukan mesin penerjemahan, Anda memiliki kemungkinan yang tidak terbatas dari kalimat. Jadi tidak ada cara untuk hanya menyimpan setiap terjemahan tunggal. Jadi, Anda harus datang dengan menarik algoritma untuk dapat menerjemahkan setiap satu kalimat dalam beberapa cara. Kalian memiliki pertanyaan sejauh ini? Tidak ada? OK. Jadi apa yang kita akan melihat hari ini? Pertama-tama, saya akan berbicara tentang masalah klasifikasi. Jadi salah satu yang saya katakan tentang spam. Apa yang akan saya lakukan adalah, mengingat lirik sebuah lagu, dapat Anda mencoba untuk mencari tahu dengan probabilitas tinggi siapa penyanyi? Mari kita mengatakan bahwa saya memiliki lagu-lagu dari Lady Gaga dan Katy Perry, jika saya memberi Anda lagu baru, Anda dapat mengetahui apakah itu Katy Perry atau Lady Gaga? Yang kedua, aku hanya akan berbicara tentang masalah segmentasi. Jadi saya tidak tahu apakah kalian tahu, tapi Cina, Jepang, Asia Timur lainnya bahasa, dan bahasa lainnya pada umumnya, tidak memiliki spasi di antara kata-kata. Dan kemudian jika Anda berpikir tentang cara yang jenis komputer Anda dari mencoba untuk memahami pengolahan bahasa alami, terlihat pada kata-kata dan mencoba untuk memahami hubungan di antara mereka, kan? Tapi kemudian jika Anda memiliki Cina, dan Anda memiliki nol ruang, itu benar-benar sulit untuk mencari tahu apa hubungan antara kata-kata, karena mereka tidak memiliki kata-kata pada awalnya. Jadi Anda harus melakukan sesuatu yang disebut segmentasi yang hanya berarti menempatkan spasi antara apa yang kita sebut kata-kata dalam bahasa-bahasa tersebut. Masuk akal? Dan kemudian kita akan berbicara tentang sintaks. Jadi hanya sedikit tentang alam pengolahan bahasa. Ini akan menjadi hanya gambaran. Jadi hari ini, pada dasarnya apa yang ingin saya lakukan adalah memberikan kalian sedikit dari dalam apa yang kemungkinan yang dapat Anda lakukan dengan komputasi linguistik. Dan kemudian Anda dapat melihat apa yang Anda pikirkan dingin antara hal-hal. Dan mungkin Anda bisa memikirkan proyek dan datang bicara padaku. Dan saya bisa memberikan nasihat tentang bagaimana untuk menerapkannya. Jadi sintaks akan menjadi sedikit tentang Grafik Cari dan mesin terjemahan. Aku hanya akan memberikan contoh bagaimana Anda bisa, misalnya, menerjemahkan sesuatu dari Portugis ke Inggris. Kedengarannya bagus? Jadi pertama, masalah klasifikasi. Saya akan mengatakan bahwa ini bagian dari seminar akan menjadi yang paling menantang satu hanya karena ada akan ada beberapa coding. Tapi itu akan menjadi Python. Aku tahu kalian tidak tahu Python, sehingga Aku hanya akan menjelaskan pada tinggi tingkat apa yang saya lakukan. Dan Anda tidak harus benar-benar peduli terlalu banyak tentang sintaks karena itulah sesuatu yang kalian bisa belajar. OK? Kedengarannya bagus. Jadi apa adalah masalah klasifikasi? Jadi Anda diberi beberapa lirik lagu, dan Anda ingin menebak yang menyanyikan lagu itu. Dan ini bisa untuk setiap jenis masalah lain. Jadi dapat, misalnya, Anda memiliki kampanye presiden dan Anda memiliki pidato, dan Anda ingin mencari apakah itu, misalnya, Obama atau Mitt Romney. Atau Anda dapat memiliki banyak email dan Anda ingin mencari tahu apakah mereka spam yang atau tidak. Jadi itu hanya mengelompokkan beberapa data berdasarkan kata-kata yang telah ada. Jadi untuk melakukan itu, Anda harus membuat beberapa asumsi. Jadi banyak tentang komputasi linguistik membuat asumsi, asumsi biasanya cerdas, sehingga Anda bisa mendapatkan hasil yang baik. Mencoba untuk membuat model untuk itu. Dan kemudian mencobanya dan melihat apakah ia bekerja, jika Anda memberikan presisi yang baik. Dan jika tidak, maka Anda mencoba untuk memperbaikinya. Jika tidak, Anda seperti, OK, mungkin aku harus membuat asumsi yang berbeda. Jadi asumsi bahwa kita akan membuat adalah bahwa seorang seniman biasanya bernyanyi tentang beberapa kali topik, dan mungkin menggunakan kata-kata beberapa kali hanya karena mereka terbiasa untuk itu. Anda hanya bisa memikirkan teman Anda. Saya yakin kalian semua memiliki teman yang mengatakan kalimat tanda tangan mereka, harfiah untuk setiap kalimat - seperti beberapa kata tertentu atau spesifik frase yang mereka katakan untuk setiap kalimat tunggal. Dan apa yang dapat Anda katakan adalah bahwa jika Anda melihat kalimat yang memiliki tanda tangan frase, Anda bisa menebak bahwa mungkin teman Anda adalah satu mengatakan itu, kan? Jadi Anda membuat asumsi itu dan kemudian itulah bagaimana Anda membuat model. Contoh yang akan saya berikan pada bagaimana Lady Gaga, misalnya, orang-orang mengatakan bahwa dia menggunakan "baby" untuk semua nya nomor satu lagu. Dan sebenarnya ini adalah video yang menunjukkan dia mengatakan kata "bayi" untuk lagu yang berbeda. [VIDEO PLAYBACK] - (Menyanyi) Baby. Baby. Baby. Baby. Baby. Babe. Baby. Baby. Baby. Baby. [END VIDEO PEMUTARAN- LUCAS FREITAS: Jadi ada, saya pikir, 40 lagu di sini di mana dia mengatakan kata "bayi." Jadi pada dasarnya anda bisa menebak bahwa jika Anda melihat sebuah lagu yang memiliki kata "bayi," ada beberapa tinggi probabilitas bahwa itu Lady Gaga. Tapi mari kita mencoba untuk mengembangkan ini lebih lanjut lebih formal. Jadi ini adalah lirik lagu dengan Lady Gaga dan Katy Perry. Jadi Anda melihat Lady Gaga, Anda melihat mereka memiliki banyak kejadian "bayi," a banyak kejadian-kejadian dari "jalan." Dan kemudian Katy Perry memiliki banyak kejadian "The," banyak kejadian "api." Jadi pada dasarnya apa yang kita ingin lakukan adalah, Anda mendapatkan sebuah lirik. Katakanlah bahwa Anda mendapatkan lirik untuk lagu yang "bayi," hanya "bayi." Jika Anda hanya mendapatkan kata "bayi," dan ini adalah semua data yang Anda miliki dari Lady Gaga dan Katy Perry, yang akan Anda menebak adalah orang yang menyanyikan lagu tersebut? Lady Gaga atau Katy Perry? Lady Gaga, kan? Karena dia satu-satunya yang mengatakan "Bayi." Ini terdengar bodoh, kan? OK, ini benar-benar mudah. Aku hanya melihat dua lagu dan Tentu saja, dia satu-satunya orang yang memiliki "Bayi." Tetapi bagaimana jika Anda memiliki banyak kata-kata? Jika Anda memiliki lirik yang sebenarnya, sesuatu seperti, "Sayang, aku hanya pergi untuk melihat [? CFT?] kuliah, "atau sesuatu seperti itu, dan maka Anda benar-benar harus mencari tahu - berdasarkan semua kata-kata - yang artis yang mungkin menyanyikan lagu ini? Jadi mari kita coba untuk mengembangkan ini sedikit lebih jauh. OK, jadi hanya didasarkan pada data yang kita punya, tampaknya Gaga mungkin penyanyi. Tapi bagaimana kita bisa menulis ini lebih formal? Dan ada akan menjadi sedikit sedikit statistik. Jadi jika Anda tersesat, hanya mencoba untuk memahami konsep. Tidak masalah jika Anda memahami persamaan dengan baik. Ini semua akan menjadi online. Jadi pada dasarnya apa yang saya menghitung adalah probabilitas bahwa lagu ini adalah dengan Lady Gaga mengingat bahwa - jadi bar ini berarti mengingat bahwa - Saya melihat kata "bayi." Apakah itu masuk akal? Jadi aku mencoba untuk menghitung probabilitas. Jadi ada teorema ini disebut Bayes teorema yang mengatakan bahwa probabilitas A diberikan B, adalah probabilitas B diberikan A, kali probabilitas A, atas probabilitas B. Ini adalah persamaan panjang. Tapi apa yang Anda harus memahami dari itu adalah bahwa ini adalah apa yang saya ingin menghitung, kan? Jadi probabilitas bahwa lagu itu adalah dengan Lady Gaga mengingat bahwa saya melihat kata "Bayi." Dan sekarang apa yang saya mendapatkan adalah probabilitas dari kata "bayi" yang diberikan bahwa saya memiliki Lady Gaga. Dan apa yang pada dasarnya? Apa itu artinya, apa yang probabilitas melihat kata "bayi" di Gaga lirik? Jika saya ingin menghitung bahwa dalam sangat cara sederhana, itu hanya jumlah kali saya melihat "bayi" di atas jumlah kata-kata dalam lirik Gaga, kan? Apa frekuensi yang saya lihat kata dalam karya Gaga? Masuk akal? Istilah kedua adalah probabilitas Gaga. Apa artinya? Itu pada dasarnya berarti, apa yang probabilitas mengelompokkan beberapa lirik sebagai Gaga? Dan itu agak aneh, tapi mari kita pikirkan sebuah contoh. Jadi mari kita mengatakan bahwa probabilitas memiliki "bayi" dalam sebuah lagu adalah sama untuk Gaga dan Britney Spears. Tapi Britney Spears memiliki dua kali lebih banyak lagu dari Lady Gaga. Jadi jika seseorang hanya secara acak memberi Anda lirik "bayi," hal pertama yang Anda lihat adalah, apa probabilitas memiliki "bayi" dalam sebuah lagu Gaga, "bayi" dalam sebuah lagu Britney? Dan itu hal yang sama. Jadi hal kedua yang akan Anda lihat adalah, baik, apa probabilitas lyric ini dengan sendirinya menjadi lyric Gaga, dan apa probabilitas menjadi lyric Britney? Jadi sejak Britney memiliki begitu banyak lagi lirik dari Gaga, Anda mungkin akan mengatakan, baik, ini mungkin lirik Britney. Jadi itulah sebabnya kami punya ini istilah di sini. Probability of Gaga. Masuk akal? Apakah itu? OK. Dan yang terakhir adalah hanya probabilitas dari "bayi" yang tidak benar-benar peduli bahwa banyak. Tapi itu probabilitas melihat "bayi" dalam bahasa Inggris. Kami biasanya tidak peduli bahwa banyak tentang istilah tersebut. Apakah itu masuk akal? Jadi kemungkinan Gaga disebut probabilitas sebelumnya dari Gaga kelas. Karena itu hanya berarti bahwa, apa yang kemungkinan memiliki kelas yang - yang merupakan Gaga - hanya secara umum, hanya tanpa kondisi. Dan kemudian ketika saya memiliki probabilitas Gaga diberikan "bayi," kita menyebutnya ditambah berlinang air probabilitas karena itu kemungkinan memiliki Gaga diberikan beberapa bukti. Jadi aku memberikan bukti bahwa aku melihat bayi kata dan lagu masuk akal? OK. Jadi Jika saya menghitung bahwa untuk setiap lagu untuk Lady Gaga, apa yang akan - ternyata, saya tidak bisa bergerak ini. Probabilitas Gaga akan sesuatu seperti, 2 lebih dari 24 kali 1/2, lebih dari 2 lebih dari 53. Tidak masalah jika Anda tahu apa angka-angka ini berasal. Tapi itu hanya nomor yang akan menjadi lebih dari 0, kan? Dan kemudian ketika saya melakukan Katy Perry, yang probabilitas "bayi" yang diberikan Katy adalah sudah 0, kan? Karena tidak ada "bayi" di Katy Perry. Jadi ini menjadi 0, dan Gaga menang, yang berarti bahwa Gaga adalah mungkin penyanyi. Apakah itu masuk akal? OK. Jadi jika saya ingin membuat lebih resmi ini, Aku benar-benar bisa melakukan model untuk beberapa kata. Jadi, mari kita mengatakan bahwa saya memiliki sesuatu seperti, "bayi, saya terbakar, "atau sesuatu. Sehingga memiliki beberapa kata. Dan dalam hal ini, Anda dapat melihat bahwa "bayi" di Gaga, tapi tidak di Katy. Dan "api" di Katy, namun itu tidak Gaga, kan? Jadi itu semakin rumit, kan? Karena tampaknya bahwa Anda hampir memiliki dasi antara keduanya. Jadi apa yang harus Anda lakukan adalah mengasumsikan independensi antara kata-kata. Jadi pada dasarnya apa yang berarti bahwa Aku hanya menghitung apa yang probabilitas melihat "bayi," apa yang kemungkinan melihat "Aku," dan "Am", dan "on", dan "api," semua secara terpisah. Lalu aku mengalikan semua dari mereka. Dan aku melihat apa probabilitas melihat seluruh kalimat. Masuk akal? Jadi pada dasarnya, jika saya memiliki hanya satu kata, apa yang ingin saya temukan adalah max arg, yang berarti, apa kelas yang memberi saya probabilitas tertinggi? Jadi apa adalah kelas yang memberikan saya probabilitas tertinggi untuk probabilitas kelas diberikan kata. Jadi dalam hal ini, Gaga diberikan "bayi." Atau Katy diberikan "bayi." Masuk akal? Dan hanya dari Bayes, yang persamaan yang saya menunjukkan, kita menciptakan fraksi ini. Satu-satunya hal adalah bahwa Anda melihat bahwa probabilitas kata diberi perubahan kelas tergantung di kelas, kan? Jumlah "baby" s yang saya miliki di Gaga berbeda dengan Katy. Probabilitas kelas juga perubahan karena hanya nomor lagu masing-masing memiliki. Tapi kemungkinan kata itu sendiri akan menjadi sama untuk semua seniman, kan? Jadi kemungkinan kata tersebut hanya, berapa probabilitas dari melihat kata itu di Bahasa Inggris? Jadi itu sama untuk mereka semua. Jadi karena ini adalah konstan, kita bisa hanya menjatuhkan ini dan tidak peduli tentang hal itu. Jadi ini akan menjadi benar-benar persamaan yang kita cari. Dan jika saya memiliki beberapa kata-kata, aku masih akan memiliki sebelum probabilitas di sini. Satu-satunya hal adalah bahwa aku mengalikan probabilitas semua kata-kata lain. Jadi aku mengalikan semua dari mereka. Masuk akal? Kelihatannya aneh tapi pada dasarnya berarti, menghitung sebelum kelas, dan kemudian kalikan dengan probabilitas masing-masing kata-kata berada di kelas itu. Dan Anda tahu bahwa probabilitas kata yang diberikan kelas akan menjadi berapa kali Anda melihat kata itu di kelas, dibagi dengan jumlah kata-kata yang Anda miliki dalam kelas pada umumnya. Masuk akal? Hanya saja bagaimana "bayi" adalah 2 lebih jumlah kata yang Aku punya dalam lirik. Jadi hanya frekuensi. Tapi ada satu hal. Ingat bagaimana saya menunjukkan bahwa probabilitas "bayi" menjadi lirik dari Katy Perry adalah 0 hanya karena Katy Perry tidak memiliki "bayi" sama sekali? Tapi kedengarannya sedikit keras untuk hanya hanya mengatakan bahwa lirik tidak dapat dari seorang seniman hanya karena mereka tidak memiliki kata khususnya setiap saat. Jadi Anda hanya bisa mengatakan, baik, jika Anda tidak memiliki kata-kata ini, aku akan memberikan kemungkinan lebih rendah, tapi aku hanya tidak akan memberikan 0 segera. Karena mungkin itu sesuatu seperti, "Api, api, api, api," yang Katy Perry benar-benar. Dan kemudian "bayi," dan itu hanya pergi untuk 0 segera karena ada satu "Bayi." Jadi pada dasarnya apa yang kita lakukan adalah sesuatu yang Laplace disebut smoothing. Dan ini hanya berarti bahwa aku memberikan beberapa kemungkinan bahkan dengan kata-kata yang tidak ada. Jadi apa yang saya lakukan adalah bahwa ketika saya menghitung ini, saya selalu menambahkan 1 sampai pembilang. Jadi, bahkan jika kata tersebut tidak ada, dalam kasus ini, jika ini adalah 0, aku masih menghitung ini sebagai 1 atas jumlah kata. Jika tidak, saya mendapatkan berapa banyak kata Saya miliki dan saya tambahkan 1. Jadi aku menghitung untuk kedua kasus. Masuk akal? Jadi sekarang mari kita melakukan coding. Aku akan harus melakukannya cukup cepat, tapi itu hanya penting bahwa Anda orang memahami konsep-konsep. Jadi apa yang kita coba lakukan adalah persis menerapkan ini hal yang saya hanya berkata - Saya ingin Anda untuk menempatkan lirik dari Lady Gaga dan Katy Perry. Dan program ini akan dapat mengatakan jika ini lirik baru dari Gaga atau Katy Perry. Masuk akal? OK. Jadi saya punya program ini saya akan untuk memanggil classify.py. Jadi ini adalah Python. Ini adalah bahasa pemrograman baru. Hal ini sangat mirip dalam beberapa cara untuk C dan PHP. Hal ini mirip karena jika Anda ingin belajar Python setelah mengetahui C, itu benar-benar tidak banyak tantangan hanya karena Python jauh lebih mudah dari C, pertama-tama. Dan banyak hal yang sudah diimplementasikan untuk Anda. Jadi bagaimana seperti PHP memiliki fungsi yang mengurutkan daftar, atau menambahkan sesuatu ke array, atau bla, bla, bla. Python memiliki semua dari mereka juga. Jadi aku hanya akan menjelaskan dengan cepat bagaimana kita bisa melakukan klasifikasi masalah bagi di sini. Jadi mari kita mengatakan bahwa dalam kasus ini, saya memiliki lirik dari Gaga dan Katy Perry. Cara yang saya miliki adalah bahwa lirik kata pertama dari lirik adalah nama artis, dan sisanya adalah lirik. Jadi, mari kita mengatakan bahwa saya memiliki daftar ini di yang pertama adalah lyrics by Gaga. Jadi di sinilah aku di jalur yang benar. Dan yang berikutnya adalah Katy, dan itu juga lirik. Jadi ini adalah bagaimana Anda mendeklarasikan variabel dalam Python. Anda tidak perlu memberikan tipe data. Anda hanya menulis "lirik," jenis seperti di PHP. Masuk akal? Jadi apa hal-hal yang saya harus menghitung untuk dapat menghitung probabilitas? Saya harus menghitung "prior" dari masing-masing yang berbeda kelas yang saya miliki. Saya harus menghitung "posteriors," atau cukup banyak probabilitas setiap kata yang berbeda yang Saya dapat memiliki untuk setiap artis. Jadi dalam Gaga, misalnya, aku akan untuk memiliki daftar berapa kali saya melihat setiap kata. Masuk akal? Dan akhirnya, aku hanya akan memiliki daftar yang disebut "kata" yang hanya akan memiliki berapa banyak kata I miliki untuk masing-masing seniman. Jadi untuk Gaga, misalnya, ketika saya melihat untuk lirik, saya, saya pikir, 24 kata-kata secara total. Jadi daftar ini hanya akan memiliki Gaga 24, dan Katy nomor lain. Masuk akal? OK. Jadi sekarang, sebenarnya, mari kita pergi ke coding. Jadi dengan Python, Anda benar-benar dapat kembali sekelompok berbeda hal dari fungsi. Jadi aku akan membuat fungsi ini disebut "bersyarat," yang akan untuk mengembalikan semua hal, yang "Prior," yang "probabilitas," dan "Kata-kata." Jadi "bersyarat," dan itu akan menelepon ke "lirik." Jadi sekarang saya ingin Anda untuk benar-benar menulis fungsi ini. Jadi cara yang saya bisa menulis ini fungsi saya hanya didefinisikan ini berfungsi dengan "def." Jadi saya melakukan "def bersyarat, "dan itu mengambil "Lirik." Dan apa ini yang akan dilakukan adalah, pertama-tama, saya memiliki prior saya bahwa saya ingin menghitung. Jadi cara yang dapat saya lakukan ini adalah membuat kamus dengan Python, yang cukup banyak hal yang sama seperti hash tabel, atau itu seperti berulang array dalam PHP. Ini adalah bagaimana saya menyatakan kamus. Dan pada dasarnya apa artinya ini adalah bahwa prior dari Gaga adalah 0.5, misalnya, jika 50% dari lirik berasal dari Gaga, 50% berasal dari Katy. Masuk akal? Jadi saya harus mencari tahu bagaimana untuk menghitung prior. Yang berikutnya yang harus saya lakukan, juga, adalah probabilitas dan kata-kata. Jadi probabilitas Gaga adalah daftar semua probabilitas yang saya memiliki untuk setiap kata-kata untuk Gaga. Jadi jika saya pergi ke probabilitas Gaga "Bayi," misalnya, itu akan memberi saya sesuatu seperti 2 lebih dari 24 dalam kasus itu. Masuk akal? Jadi aku pergi ke "probabilitas," pergi ke "Gaga" bucket yang memiliki daftar semua kata-kata Gaga, maka saya pergi ke "bayi," dan saya melihat probabilitas. Dan akhirnya saya punya ini "Kata" kamus. Jadi di sini, "probabilitas." Dan kemudian "Kata-kata." Jadi jika aku lakukan "kata-kata," "Gaga," apa yang akan terjadi adalah bahwa hal itu akan memberi saya 24, mengatakan bahwa saya memiliki 24 kata-kata dalam lirik dari Gaga. Masuk akal? Jadi di sini, "kata-kata" sama dah-dah-dah. Oke Jadi apa yang akan saya lakukan adalah saya akan iterate atas setiap lirik, sehingga masing-masing string yang Saya ada di daftar. Dan aku akan menghitung hal-hal untuk masing-masing calon. Masuk akal? Jadi saya harus melakukan untuk loop. Jadi dengan Python apa yang dapat saya lakukan adalah "untuk baris dalam lirik. "Hal yang sama sebagai "Untuk setiap" pernyataan PHP. Ingat bagaimana jika itu PHP aku bisa mengatakan "untuk setiap lirik sebagai line. "Masuk akal? Jadi aku mengambil setiap baris, dalam hal ini kasus, string ini dan berikutnya String sehingga untuk masing-masing baris apa yang saya akan lakukan adalah pertama, aku akan membagi baris ini ke dalam daftar kata dipisahkan oleh spasi. Jadi hal yang keren tentang Python adalah bahwa Anda bisa saja Google seperti "bagaimana saya bisa membagi string ke dalam kata-kata? "Dan itu akan memberitahu Anda bagaimana untuk melakukannya. Dan cara untuk melakukannya, itu hanya "baris = Line.split () "dan itu pada dasarnya akan memberi Anda daftar dengan setiap kata di sini. Masuk akal? Jadi sekarang bahwa saya melakukan itu saya ingin tahu yang adalah penyanyi dari lagu itu. Dan untuk melakukan itu saya hanya harus mendapatkan elemen pertama dari array, kan? Jadi saya hanya bisa mengatakan bahwa saya "penyanyi = Baris (0) "Masuk akal? Lalu apa yang harus saya lakukan adalah, pertama semua, aku akan memperbarui berapa banyak kata-kata yang saya miliki di bawah "Gaga." jadi aku hanya akan menghitung berapa banyak kata-kata saya ada dalam daftar ini, kan? Karena ini adalah berapa banyak kata yang saya miliki dalam lirik dan aku hanya akan menambahkannya ke "Gaga" array. Apakah itu masuk akal? Jangan terlalu berfokus pada sintaks. Pikirkan lebih lanjut tentang konsep-konsep. Itulah bagian yang paling penting. OK. Jadi apa yang saya bisa melakukannya jika "Gaga" adalah sudah ada dalam daftar itu, jadi "jika penyanyi di kata-kata "yang berarti bahwa saya sudah memiliki kata-kata oleh Gaga. Saya hanya ingin menambahkan tambahan kata-kata itu. Jadi apa yang saya lakukan adalah "kata-kata (penyanyi) + = Len (line) - 1 ". Dan kemudian aku hanya bisa melakukan panjang garis. Jadi berapa banyak elemen I memiliki dalam array. Dan saya harus melakukan dikurangi 1 hanya karena elemen pertama dari array hanya penyanyi dan orang-orang yang tidak lirik. Masuk akal? OK. "Lain," itu berarti bahwa saya ingin benar-benar memasukkan Gaga ke dalam daftar. Jadi saya hanya melakukan "kata (penyanyi) = Len (line) - 1, "maaf. Jadi satu-satunya perbedaan antara dua baris adalah bahwa yang satu ini, tidak ada lagi, jadi aku hanya memulainya. Yang satu ini aku benar-benar menambahkan. OK. Jadi ini menambah kata-kata. Sekarang saya ingin menambah prior. Jadi bagaimana cara menghitung prior? Para prior dapat dihitung oleh berapa kali. Jadi berapa kali Anda melihat penyanyi itu di antara semua penyanyi yang Anda memiliki, kan? Jadi untuk Gaga dan Katy Perry, dalam hal ini, saya melihat Gaga sekali, Katy Perry sekali. Jadi pada dasarnya prior untuk Gaga dan Katy Perry akan hanya menjadi satu, kan? Anda hanya berapa kali Saya melihat artis. Jadi ini sangat mudah untuk menghitung. Aku hanya bisa sesuatu yang mirip seperti seperti "jika penyanyi di prior, "aku hanya akan untuk menambahkan 1 ke kotak prior mereka. Jadi, "prior (menyanyi)" + = 1 "dan kemudian" lain " Aku akan melakukan "prior (penyanyi) = 1. "Masuk akal? Jadi jika tidak ada saya hanya menempatkan sebagai 1, kalau tidak saya hanya menambahkan 1. OK, jadi sekarang semua yang saya telah meninggalkan untuk melakukan juga menambahkan setiap kata ke probabilitas. Jadi saya harus menghitung berapa kali Saya melihat setiap kata. Jadi saya hanya perlu melakukan yang lain untuk loop di baris. Sehingga hal pertama yang akan saya lakukan adalah memeriksa apakah penyanyi sudah memiliki probabilitas array. Jadi aku memeriksa jika penyanyi tidak memiliki array probabilitas, aku hanya akan menginisialisasi satu untuk mereka. Ini bahkan array, maaf, itu kamus. Jadi probabilitas penyanyi akan menjadi kamus terbuka, jadi aku hanya menginisialisasi kamus untuk itu. OK? Dan sekarang aku benar-benar bisa melakukan untuk loop untuk menghitung setiap kata ' probabilitas. OK. Jadi apa yang dapat saya lakukan adalah untuk loop. Jadi aku hanya akan iterate atas array. Jadi cara yang dapat saya lakukan itu di Python adalah "for i in range." Dari 1 karena saya ingin memulai di kedua elemen karena yang pertama adalah nama penyanyi. Jadi dari satu sampai panjang garis. Dan ketika aku mulai benar-benar pergi dari seperti di sini dari 1 sampai len dari baris dikurangi 1. Jadi sudah tidak bahwa hal melakukan n dikurangi 1 untuk array yang sangat nyaman. Masuk akal? Jadi untuk masing-masing, apa yang akan saya lakukan adalah, seperti di yang lain, Aku akan memeriksa apakah kata dalam posisi di baris sudah di probabilitas. Dan kemudian seperti yang saya katakan di sini, probabilitas kata-kata, seperti dalam aku meletakkan "Probabilitas (penyanyi)". Jadi nama penyanyi. Jadi jika sudah di "Probabilit (penyanyi)", itu berarti bahwa saya ingin menambahkan 1 untuk itu, jadi saya akan melakukan "probabilitas (penyanyi)", dan kata disebut "garis (i)". Saya akan menambahkan 1 dan "lain" Aku hanya akan menginisialisasi ke 1. "Jalur (i)". Masuk akal? Jadi, saya menghitung semua array. Jadi, sekarang semua yang harus saya lakukan untuk satu ini hanya "kembali prior, probabilitas dan kata-kata. "Mari melihat apakah ada, OK. Tampaknya semuanya bekerja sejauh ini. Jadi, itu masuk akal? Dalam beberapa cara? OK. Jadi sekarang aku punya semua probabilitas. Jadi sekarang satu-satunya hal yang tersisa hanya untuk memiliki hal yang yang menghitung produk dari semua probabilitas ketika saya mendapatkan lirik. Jadi, mari kita mengatakan bahwa saya ingin sekarang panggilan fungsi ini "mengklasifikasikan ()" dan hal fungsi yang mengambil hanya sebuah argumen. Katakanlah "Baby, aku terbakar" dan itu akan mencari tahu apa yang probabilitas bahwa ini adalah Gaga? Berapa probabilitas bahwa ini adalah Katie? Kedengarannya bagus? Jadi aku hanya akan harus membuat fungsi baru yang disebut "mengklasifikasikan ()" dan itu akan mengambil beberapa lirik juga. Dan selain lirik saya juga harus mengirim prior, yang probabilitas dan kata-kata. Jadi aku akan mengirim lirik, prior, probabilitas, kata-kata. Jadi ini adalah mengambil lirik, prior, probabilitas, kata-kata. Jadi, apa gunanya? Hal ini pada dasarnya akan pergi melalui semua calon mungkin bahwa Anda memiliki sebagai penyanyi. Dan di mana para kandidat? Mereka Dalam prior, kan? Jadi saya memiliki semua orang di sana. Jadi aku akan memiliki kamus dari semua kandidat yang mungkin. Dan kemudian untuk setiap kandidat dalam prior, sehingga itu berarti bahwa itu akan menjadi Gaga, Katie jika aku punya lebih akan lebih. Aku akan mulai menghitung probabilitas ini. Kemungkinan seperti yang kita lihat dalam PowerPoint adalah kali sebelum yang produk dari masing-masing probabilitas lainnya. Jadi saya dapat melakukan hal yang sama di sini. Aku hanya bisa melakukan probabilitas awalnya hanya sebelumnya. Jadi prior calon. Benar? Dan sekarang aku harus iterate atas semua kata-kata yang saya miliki dalam lirik untuk menjadi mampu menambah probabilitas untuk masing-masing, OK? Jadi, "untuk kata dalam lirik" apa yang akan saya lakukan adalah, jika kata tersebut di "Probabilitas (calon)", yang berarti bahwa itu sebuah kata yang kandidat telah di lirik mereka - misalnya, "bayi" untuk Gaga - apa yang akan saya lakukan adalah bahwa probabilitas akan dikalikan dengan 1 ditambah probabilitas calon untuk kata itu. Dan itu disebut "kata". Ini dibagi dengan jumlah kata yang saya miliki untuk calon itu. Total jumlah kata yang saya miliki untuk penyanyi yang saya sedang melihat. "Lain." itu berarti itu kata baru sehingga akan menjadi seperti misalnya "Api" untuk Lady Gaga. Jadi aku hanya ingin melakukan lebih dari 1 "Kata (calon)". Jadi saya tidak ingin menempatkan istilah ini di sini. Jadi itu akan menjadi dasarnya menyalin dan menyisipkan ini. Tapi aku akan menghapus bagian ini. Jadi itu hanya akan menjadi 1 lebih dari itu. Kedengarannya bagus? Dan sekarang pada akhirnya, aku hanya akan mencetak nama kandidat dan kemungkinan yang Anda miliki dari memiliki S pada lirik mereka. Masuk akal? Dan aku benar-benar bahkan tidak membutuhkan kamus ini. Masuk akal? Jadi, mari kita lihat apakah ini benar-benar bekerja. Jadi jika saya menjalankan ini, tidak berhasil. Tunggu satu detik. "Kata-kata (calon)", "kata (calon)", itu nama array. OK Jadi, ia mengatakan ada beberapa bug untuk kandidat dalam prior. Mari saya hanya dingin sedikit. OK. Mari kita coba. OK. Sehingga memberikan Katy Perry memiliki ini probabilitas kali ini 10 ke minus 7, dan Gaga memiliki ini kali 10 sampai minus 6. Jadi Anda lihat itu menunjukkan bahwa Gaga memiliki probabilitas yang lebih tinggi. Jadi "Baby, aku on Fire" adalah mungkin lagu Gaga. Masuk akal? Jadi ini adalah apa yang kita lakukan. Kode ini akan diposting online, sehingga kalian bisa check it out. Mungkin menggunakan beberapa dari itu karena jika Anda ingin melakukan proyek atau sesuatu yang serupa. OK. Ini hanya untuk menunjukkan apa komputasi kode linguistik terlihat seperti. Tapi sekarang mari kita pergi ke lebih tingkat tinggi hal. OK. Jadi masalah lain saya bicarakan - masalah segmentasi adalah yang pertama dari mereka. Jadi Anda miliki di sini Jepang. Dan kemudian Anda melihat bahwa tidak ada spasi. Jadi ini pada dasarnya berarti bahwa itu bagian atas kursi, kan? Anda berbicara bahasa Jepang? Ini adalah atas kursi, kan? SISWA: Aku tidak tahu apa kanji di atas ada. LUCAS FREITAS: Ini [BERBICARA JEPANG] OK. Jadi pada dasarnya berarti kursi atas. Jadi jika Anda harus menempatkan spasi itu akan berada di sini. Dan kemudian Anda memiliki [? Ueda-san. ?] Yang pada dasarnya berarti Mr Ueda. Dan Anda melihat bahwa "Ueda" dan Anda memiliki ruang dan kemudian "san." Jadi, Anda melihat bahwa di sini Anda "Ue" seperti dengan sendirinya. Dan di sini memiliki karakter sebelahnya. Jadi tidak seperti dalam bahasa-bahasa karakter yang berarti kata sehingga Anda hanya menempatkan banyak ruang. Karakter berhubungan satu sama lain. Dan mereka bisa bersama-sama seperti dua, tiga, satu. Jadi Anda benar-benar harus membuat semacam cara menempatkan ruang-ruang tersebut. Dan hal ini adalah bahwa setiap kali Anda mendapatkan Data dari bahasa-bahasa Asia, semuanya datang unsegmented. Karena tidak ada orang yang menulis Jepang atau Cina menulis dengan spasi. Setiap kali Anda menulis Cina, Jepang Anda hanya menulis segala sesuatu tanpa spasi. Ia bahkan tidak masuk akal untuk menempatkan spasi. Jadi ketika Anda mendapatkan data dari beberapa Bahasa Asia Timur, jika Anda ingin benar-benar melakukan sesuatu dengan itu anda harus segmen pertama. Berpikir untuk melakukan contoh lirik tanpa spasi. Jadi satu-satunya lirik yang Anda miliki akan kalimat, kan? Dipisahkan dengan tanda titik. Tapi kemudian karena baru saja kalimat akan tidak benar-benar membantu untuk memberikan informasi dari yang mereka lirik adalah dengan. Benar? Jadi Anda harus menempatkan ruang pertama. Jadi bagaimana Anda bisa melakukan itu? Jadi maka muncullah ide bahasa Model yang merupakan sesuatu yang benar-benar penting bagi komputasi linguistik. Jadi model bahasa pada dasarnya adalah tabel probabilitas yang menunjukkan pertama-tama apa adalah probabilitas memiliki kata dalam bahasa? Jadi menunjukkan seberapa sering sebuah kata. Dan kemudian juga menunjukkan relasi antara kata-kata dalam sebuah kalimat. Jadi gagasan utama adalah, jika orang asing datang Anda dan mengatakan kalimat untuk Anda, apa probabilitas bahwa, untuk Misalnya, "ini adalah adikku [? GTF"?] adalah kalimat yang orang katakan? Jadi jelas beberapa kalimat yang lebih umum daripada yang lain. Misalnya, "Selamat pagi," atau "good malam, "atau" hey there, "jauh lebih umum daripada kebanyakan kalimat bahwa kita memiliki bahasa Inggris. Jadi mengapa kalimat-kalimat lebih sering? Pertama-tama, itu karena Anda memiliki kata-kata yang lebih sering. Jadi, misalnya, jika Anda mengatakan, anjing besar, dan anjing ini sangat besar, Anda biasanya mungkin mendengar anjing besar lebih sering karena "besar" lebih sering dalam bahasa Inggris dari "raksasa." Jadi, salah satu hal adalah frekuensi kata. Hal kedua yang benar-benar penting adalah hanya urutan kata-kata. Jadi, itu umum untuk mengatakan "kucing dalam kotak. "tetapi Anda tidak biasanya lihat di "box di dalam adalah kucing." jadi Anda melihat bahwa ada beberapa penting dalam urutan kata-kata. Anda tidak bisa hanya mengatakan bahwa kedua kalimat memiliki probabilitas yang sama hanya karena mereka memiliki kata-kata yang sama. Anda benar-benar harus peduli tentang urutan juga. Masuk akal? Jadi apa yang kita lakukan? Jadi apa yang saya mungkin akan mencoba untuk mendapatkan Anda? Saya mencoba untuk mendapatkan apa yang kita memanggil model n-gram. Jadi pada dasarnya model n-gram mengasumsikan bahwa untuk setiap kata yang Anda memiliki dalam sebuah kalimat. Ini kemungkinan memiliki bahwa kata ada tidak hanya bergantung pada frekuensi dari kata dalam bahasa, tetapi juga pada kata-kata yang yang mengelilinginya. Jadi misalnya, biasanya ketika Anda melihat sesuatu seperti pada atau Anda mungkin akan melihat noun setelah, kan? Karena ketika Anda memiliki sebuah preposisi biasanya dibutuhkan kata benda setelah. Atau jika Anda memiliki kata kerja yang transitif Anda biasanya akan memiliki frase kata benda. Jadi itu akan memiliki kata benda suatu tempat di sekitar itu. Jadi, pada dasarnya, apa yang dilakukannya adalah bahwa hal itu mempertimbangkan kemungkinan memiliki kata-kata di samping satu sama lain, ketika Anda menghitung kemungkinan kalimat. Dan itulah yang bahasa Model dasarnya. Hanya mengatakan apa probabilitas memiliki spesifik kalimat dalam bahasa? Jadi kenapa begitu berguna, pada dasarnya? Dan pertama-tama apa yang model n-gram, kemudian? Jadi model n-gram berarti bahwa setiap kata tergantung pada N berikutnya dikurangi 1 kata. Jadi, pada dasarnya, itu berarti bahwa jika saya melihat, misalnya, di TF CS50 ketika Aku menghitung probabilitas kalimat, Anda akan seperti " Kemungkinan memiliki kata "yang" kali kemungkinan memiliki " CS50 "kali kemungkinan memiliki "The CS50 TF." Jadi, pada dasarnya, saya menghitung semua cara yang mungkin peregangan itu. Dan kemudian biasanya ketika Anda melakukan hal ini, seperti dalam sebuah proyek, Anda meletakkan N menjadi nilai yang rendah. Jadi, biasanya memiliki bigrams atau trigram. Sehingga Anda hanya menghitung dua kata, a kelompok dari dua kata, atau tiga kata, hanya untuk masalah kinerja. Dan juga karena mungkin jika Anda memiliki sesuatu seperti "The CS50 TF." Bila Anda memiliki "TF," itu sangat penting bahwa "CS50" adalah di samping itu, kan? Kedua hal biasanya samping satu sama lain. Jika Anda berpikir tentang "TF," itu mungkin akan memiliki apa kelas itu TF'ing untuk. Juga "yang" benar-benar penting untuk CS50 TF. Tapi jika Anda memiliki sesuatu seperti "The CS50 TF pergi ke kelas dan memberi mereka siswa beberapa permen "" Permen ". dan" " tidak memiliki hubungan yang benar-benar, kan? Mereka begitu jauh dari satu sama lain yang itu tidak benar-benar peduli apa kata-kata yang Anda miliki. Jadi dengan melakukan bigram atau trigram, itu hanya berarti bahwa Anda membatasi diri Anda untuk beberapa kata yang ada di sekitar. Masuk akal? Jadi, ketika Anda ingin melakukan segmentasi, Pada dasarnya, apa yang ingin Anda lakukan adalah melihat apa semua cara yang mungkin yang Anda dapat segmen kalimat. Seperti yang Anda lihat apa yang probabilitas masing-masing kalimat yang ada dalam bahasa? Jadi apa yang Anda lakukan adalah seperti, baik, biarkan saya mencoba untuk menempatkan spasi di sini. Jadi, Anda menempatkan spasi di sana dan Anda melihat apa yang probabilitas kalimat itu? Kemudian Anda seperti, OK, mungkin itu tidak baik. Jadi saya menempatkan spasi di sana dan spasi ada, dan Anda menghitung probabilitas sekarang, dan Anda melihat bahwa itu adalah probabilitas yang lebih tinggi. Jadi ini adalah suatu algoritma yang disebut TANGO Algoritma segmentasi, yaitu sebenarnya sesuatu yang akan benar-benar keren untuk sebuah proyek, yang pada dasarnya mengambil teks yang unsegmented bisa Jepang atau Cina atau mungkin Inggris tanpa spasi dan mencoba untuk menempatkan spasi di antara kata-kata dan tidak bahwa dengan menggunakan model bahasa dan mencoba untuk melihat apa yang tertinggi probabilitas bisa Anda dapatkan. OK. Jadi ini adalah segmentasi. Sekarang sintaks. Jadi, sintaks yang digunakan untuk begitu banyak hal sekarang. Jadi untuk Graph Search, untuk Siri untuk cukup banyak jenis alam pengolahan bahasa yang Anda miliki. Jadi apa yang penting hal tentang sintaks? Jadi, kalimat pada umumnya memiliki apa yang kita sebut konstituen. Yang jenis seperti kelompok kata yang memiliki fungsi dalam kalimat. Dan mereka tidak bisa benar-benar terpisah dari satu sama lain. Jadi, jika saya berkata, misalnya, "Lauren mengasihi Milo. "Saya tahu bahwa" Lauren "adalah konstituen dan kemudian "cinta Milo "juga satu sama lain. Karena Anda tidak bisa mengatakan seperti "Lauren Milo mencintai "memiliki arti yang sama. Ini tidak akan memiliki arti yang sama. Atau aku tidak bisa mengatakan seperti "Milo Lauren mencintai. "Tidak semuanya sama berarti melakukan hal itu. Jadi dua hal yang lebih penting tentang sintaks adalah jenis leksikal yang pada dasarnya fungsi yang memiliki kata-kata sendiri. Jadi, Anda harus tahu bahwa "Lauren" dan "Milo" adalah kata benda. "Cinta" adalah kata kerja. Dan hal penting kedua adalah bahwa mereka jenis frase. Jadi, Anda tahu bahwa "mencintai Milo" sebenarnya ungkapan verbal. Jadi ketika saya mengatakan "Lauren," Saya tahu bahwa Lauren melakukan sesuatu. Apa yang dia lakukan? Dia mencintai Milo. Jadi itu adalah semuanya. Tapi komponennya kata benda dan kata kerja. Tetapi bersama-sama, mereka membuat frase kata kerja. Jadi, apa yang bisa kita benar-benar melakukan dengan komputasi linguistik? Jadi, jika saya memiliki sesuatu misalnya "Teman-teman dari Allison." Saya lihat jika saya hanya apakah pohon sintaksis saya akan tahu bahwa "Teman-teman" adalah ungkapan kata benda itu adalah kata benda dan kemudian "dari Allison" adalah frase preposisional di mana "dari" adalah proposisi dan "Allison" adalah kata benda. Apa yang saya bisa lakukan adalah mengajar komputer saya bahwa ketika saya memiliki satu frase kata benda dan maka frase preposisional. Jadi dalam hal ini, "teman-teman" dan kemudian "dari Milo "Saya tahu bahwa ini berarti bahwa NP2, yang kedua, memiliki NP1. Jadi saya bisa membuat beberapa jenis hubungan, beberapa jenis fungsi untuk itu. Jadi, setiap kali saya melihat struktur ini, yang sama persis dengan "teman-teman Allison, "Saya tahu bahwa Allison memiliki teman-teman. Jadi teman-teman adalah sesuatu Allison yang memiliki. Masuk akal? Jadi ini pada dasarnya adalah apa yang Grafik Pencarian tidak. Itu hanya menciptakan aturan untuk banyak hal. Jadi "teman dari Allison," "teman-teman saya yang tinggal di Cambridge, "" teman-teman saya yang pergi ke Harvard. "Ini menciptakan aturan untuk semua hal. Sekarang mesin terjemahan. Jadi, terjemahan mesin juga sesuatu statistik. Dan sebenarnya jika Anda terlibat dalam komputasi linguistik, banyak barang-barang Anda akan menjadi statistik. Jadi seperti yang saya lakukan contoh dengan banyak probabilitas bahwa saya menghitung, dan kemudian Anda mendapatkan ini jumlah yang sangat kecil itulah akhir probabilitas, dan itulah yang memberikan jawabannya. Terjemahan mesin juga menggunakan model statistik. Dan jika Anda ingin memikirkan mesin terjemahan dalam sederhana mungkin cara, apa yang dapat Anda pikirkan hanya menerjemahkan kata demi kata, kan? Ketika Anda belajar bahasa untuk pertama kalinya, yang biasanya apa Anda lakukan, kan? Jika Anda ingin Anda menerjemahkan kalimat dalam bahasa Anda ke bahasa Anda belajar, biasanya pertama, Anda menerjemahkan setiap kata individual, dan kemudian Anda mencoba untuk menempatkan kata-kata ke tempatnya. Jadi jika saya ingin menerjemahkan ini, [BERBICARA PORTUGUESE] yang berarti "kucing putih melarikan diri." Jika saya ingin menerjemahkannya dari Portugis ke Inggris, apa yang saya bisa lakukan adalah, pertama, saya hanya menerjemahkan kata demi kata. Jadi "o" adalah "," "gato," "kucing," "Branco," "putih," dan kemudian "fugio" adalah "Melarikan diri." Jadi kemudian aku memiliki semua kata-kata di sini, tapi mereka tidak dalam urutan. Ini seperti "putih kucing lari" yang tidak gramatikal. Jadi, maka saya dapat memiliki langkah kedua, yang yang akan menemukan ideal posisi untuk setiap kata. Jadi saya tahu bahwa saya benar-benar ingin memiliki "Kucing putih" bukan "kucing putih." Jadi apa yang bisa saya lakukan adalah, metode yang paling naif akan membuat semua kemungkinan permutasi dari kata-kata, posisi. Dan kemudian melihat mana yang memiliki probabilitas tertinggi menurut model bahasa saya. Dan kemudian ketika aku menemukan satu yang memiliki probabilitas tertinggi itu, yaitu mungkin "kucing putih melarikan diri," itu terjemahan saya. Dan ini adalah cara sederhana untuk menjelaskan bagaimana banyak terjemahan mesin algoritma bekerja. Apakah itu masuk akal? Ini juga sesuatu yang sangat menarik bahwa kalian mungkin dapat menjelajahi untuk tugas akhir, ya? MAHASISWA: Nah, Anda mengatakan hal itu cara naif, jadi apa cara non-naif? LUCAS FREITAS: Cara non-naif? OK. Jadi hal pertama yang buruk tentang metode ini adalah bahwa saya hanya diterjemahkan kata-kata, kata demi kata. Tapi kadang-kadang Anda memiliki kata-kata yang dapat memiliki beberapa terjemahan. Aku akan mencoba untuk berpikir sesuatu. Misalnya, "manga" dalam kaleng Portugis berupa "mangle" atau "lengan." Jadi ketika Anda mencoba untuk menerjemahkan kata dengan kata-kata, mungkin akan memberikan Anda sesuatu yang tidak masuk akal. Jadi Anda benar-benar ingin Anda melihat semua kemungkinan terjemahan kata-kata dan melihat, pertama-tama, apa pesanan. Kami sedang membicarakan permutating hal-hal? Untuk melihat semua perintah yang mungkin dan memilih salah satu dengan tertinggi probabilitas? Anda juga dapat memilih semua kemungkinan terjemahan untuk masing-masing kata dan kemudian melihat - dikombinasikan dengan permutasi - mana yang memiliki probabilitas tertinggi. Plus, Anda juga dapat melihat tidak hanya kata-kata tetapi frase. sehingga Anda dapat menganalisis hubungan antara kata-kata dan kemudian mendapatkan terjemahan yang lebih baik. Juga sesuatu yang lain, sehingga semester ini Aku benar-benar melakukan penelitian di Cina-Inggris terjemahan mesin, sehingga menerjemahkan dari Cina ke dalam bahasa Inggris. Dan sesuatu yang kita lakukan adalah, selain menggunakan model statistik, yang hanya melihat probabilitas melihat beberapa posisi dalam sebuah kalimat, aku sebenarnya juga menambahkan beberapa sintaks untuk saya Model, mengatakan, oh, jika saya melihat semacam ini konstruksi, ini adalah apa yang saya inginkan untuk mengubahnya ketika saya menerjemahkan. Jadi, Anda juga dapat menambahkan beberapa jenis elemen sintaks untuk membuat terjemahan yang lebih efisien dan lebih tepat. OK. Jadi bagaimana Anda bisa memulai, jika Anda ingin untuk melakukan sesuatu dalam komputasi linguistik? Pertama, Anda memilih sebuah proyek yang melibatkan bahasa. Jadi, ada begitu banyak di luar sana. Ada begitu banyak hal yang dapat Anda lakukan. Dan kemudian bisa memikirkan model yang dapat Anda gunakan. Biasanya itu berarti memikirkan asumsi, sebagai seperti, oh, ketika saya masih seperti berpikir lirik. Aku seperti, baik, jika saya ingin mencari keluar yang menulis ini, saya mungkin ingin untuk melihat kata-kata orang yang digunakan dan melihat siapa yang menggunakan kata yang sangat sering. Jadi cobalah untuk membuat asumsi dan mencoba memikirkan model. Dan kemudian Anda juga dapat mencari online untuk jenis masalah yang Anda miliki, dan itu akan menyarankan Anda model yang mungkin dimodelkan hal yang baik. Dan juga Anda selalu dapat email saya. me@lfreitas.com. Dan aku hanya bisa menjawab pertanyaan Anda. Kita bahkan bisa mungkin bertemu jadi saya bisa memberikan saran tentang cara-cara melaksanakan proyek Anda. Dan maksud saya jika Anda terlibat dengan komputasi linguistik, itu akan untuk menjadi besar. Anda akan melihat ada begitu banyak potensi. Dan industri ingin menyewa Anda begitu buruk karena itu. Jadi saya harap kalian menikmati ini. Jika kalian memiliki pertanyaan, Anda dapat bertanya kepada saya setelah ini. Tapi terima kasih.