1 00:00:00,000 --> 00:00:08,364 2 00:00:08,364 --> 00:00:08,870 >> LUCAS FREITAS: Hey. 3 00:00:08,870 --> 00:00:09,980 Sejam bem-vindos. 4 00:00:09,980 --> 00:00:11,216 Meu nome é Lucas Freitas. 5 00:00:11,216 --> 00:00:15,220 Eu sou um júnior na [inaudível], estudando ciência da computação com foco em 6 00:00:15,220 --> 00:00:16,410 lingüística computacional. 7 00:00:16,410 --> 00:00:19,310 Assim, a minha secundário é em língua ea teoria linguística. 8 00:00:19,310 --> 00:00:21,870 Estou muito animado para ensinar vocês um pouco sobre o campo. 9 00:00:21,870 --> 00:00:24,300 É uma área muito interessante para estudar. 10 00:00:24,300 --> 00:00:27,260 Também com um grande potencial para o futuro. 11 00:00:27,260 --> 00:00:30,160 Então, eu estou realmente animado que vocês estão considerando projetos em 12 00:00:30,160 --> 00:00:31,160 lingüística computacional. 13 00:00:31,160 --> 00:00:35,460 E eu serei mais do que feliz para aconselhar qualquer um de vocês, se você decidir 14 00:00:35,460 --> 00:00:37,090 perseguir um desses. 15 00:00:37,090 --> 00:00:40,010 >> Então, primeiro de tudo o que são computacional lingüística? 16 00:00:40,010 --> 00:00:44,630 Então lingüística computacional é o intersecção entre lingüística e 17 00:00:44,630 --> 00:00:46,390 ciência da computação. 18 00:00:46,390 --> 00:00:47,415 Então, o que é lingüística? 19 00:00:47,415 --> 00:00:48,490 O que é a ciência da computação? 20 00:00:48,490 --> 00:00:51,580 Bem da lingüística, o que tomamos são as línguas. 21 00:00:51,580 --> 00:00:54,960 Assim, a linguística é realmente o estudo da linguagem natural em geral. 22 00:00:54,960 --> 00:00:58,330 Linguagem tão natural - falamos linguagem que realmente usar a 23 00:00:58,330 --> 00:00:59,770 comunicar uns com os outros. 24 00:00:59,770 --> 00:01:02,200 Portanto, não estamos falando exatamente sobre C ou Java. 25 00:01:02,200 --> 00:01:05,900 Nós estamos falando mais sobre Inglês e Chinês e outras línguas que 26 00:01:05,900 --> 00:01:07,780 usar para comunicar uns com os outros. 27 00:01:07,780 --> 00:01:12,470 >> A coisa difícil sobre isso é que agora temos quase 7.000 28 00:01:12,470 --> 00:01:14,260 línguas do mundo. 29 00:01:14,260 --> 00:01:19,520 Então, há um alto variedade de idiomas que podemos estudar. 30 00:01:19,520 --> 00:01:22,600 E então você pensa que é, provavelmente, muito difícil de fazer, por exemplo, 31 00:01:22,600 --> 00:01:26,960 tradução de uma língua para a outro, considerando que você tem 32 00:01:26,960 --> 00:01:28,240 quase 7.000 deles. 33 00:01:28,240 --> 00:01:31,450 Então, se você pensar em fazer a tradução de uma língua para a outra você 34 00:01:31,450 --> 00:01:35,840 tem quase mais de um milhão combinações diferentes que você pode 35 00:01:35,840 --> 00:01:37,330 tem de língua para língua. 36 00:01:37,330 --> 00:01:40,820 Então, é realmente um desafio para fazer alguma tipo de sistema de exemplo para tradução 37 00:01:40,820 --> 00:01:43,540 cada língua única. 38 00:01:43,540 --> 00:01:47,120 >> Assim, a lingüística trata com sintaxe, semântica, pragmática. 39 00:01:47,120 --> 00:01:49,550 Vocês não exatamente precisa para saber o que eles estão são. 40 00:01:49,550 --> 00:01:55,090 Mas a coisa muito interessante é que como um falante nativo, quando você aprende 41 00:01:55,090 --> 00:01:59,010 linguagem como criança, você realmente aprender Todas essas coisas - semântica sintaxe 42 00:01:59,010 --> 00:02:00,500 e pragmática - 43 00:02:00,500 --> 00:02:01,430 por si mesmo. 44 00:02:01,430 --> 00:02:04,820 E ninguém tem que te ensinar sintaxe para você entender como as sentenças são 45 00:02:04,820 --> 00:02:05,290 estruturada. 46 00:02:05,290 --> 00:02:07,980 Então, é realmente interessante porque é algo que vem muito 47 00:02:07,980 --> 00:02:10,389 intuitivamente. 48 00:02:10,389 --> 00:02:13,190 >> E o que você está tirando a ciência da computação? 49 00:02:13,190 --> 00:02:16,700 Bem, a coisa mais importante que nós ter em ciência da computação é, antes de 50 00:02:16,700 --> 00:02:19,340 tudo, a inteligência artificial e aprendizagem de máquina. 51 00:02:19,340 --> 00:02:22,610 Então, o que nós estamos tentando fazer lingüística computacional é ensinar 52 00:02:22,610 --> 00:02:26,990 o computador como fazer alguma coisa com a linguagem. 53 00:02:26,990 --> 00:02:28,630 >> Assim, por exemplo, na máquina tradução. 54 00:02:28,630 --> 00:02:32,490 Estou tentando ensinar meu computador como para saber como fazer a transição de um 55 00:02:32,490 --> 00:02:33,310 língua para a outra. 56 00:02:33,310 --> 00:02:35,790 Então, basicamente gosta de ensinar um computador duas línguas. 57 00:02:35,790 --> 00:02:38,870 Se eu fizer processamento de linguagem natural, que é o caso por exemplo de 58 00:02:38,870 --> 00:02:41,810 Do Facebook Graph Search, você ensinar o computador como entender 59 00:02:41,810 --> 00:02:42,730 consultas bem. 60 00:02:42,730 --> 00:02:48,130 >> Então, se você diz "as fotos da minha amigos. "Facebook não tratar esse 61 00:02:48,130 --> 00:02:51,130 como toda uma série que tem apenas um monte de palavras. 62 00:02:51,130 --> 00:02:56,020 Ele realmente entende a relação entre "Fotos" e "meus amigos" e 63 00:02:56,020 --> 00:02:59,620 entende que "fotos" são propriedade de "meus amigos". 64 00:02:59,620 --> 00:03:02,350 >> Então, isso é parte de, por exemplo, processamento de linguagem natural. 65 00:03:02,350 --> 00:03:04,790 Ele está tentando entender o que é a relação entre 66 00:03:04,790 --> 00:03:07,520 as palavras em uma frase. 67 00:03:07,520 --> 00:03:11,170 E a grande questão é, não é ensinar um computador a falar 68 00:03:11,170 --> 00:03:12,650 uma linguagem em geral? 69 00:03:12,650 --> 00:03:17,810 Que é uma pergunta muito interessante acho que, como se talvez no futuro, 70 00:03:17,810 --> 00:03:19,930 você vai ser capaz de fale com o seu telefone celular. 71 00:03:19,930 --> 00:03:23,290 Mais ou menos como o que fazemos com Siri, mas algo mais parecido, você pode realmente 72 00:03:23,290 --> 00:03:25,690 dizer o que quiser e telefone vai entender tudo. 73 00:03:25,690 --> 00:03:28,350 E pode ter acompanhamento perguntas e continuar a falar. 74 00:03:28,350 --> 00:03:30,880 Isso é algo realmente emocionante, na minha opinião. 75 00:03:30,880 --> 00:03:33,070 >> Então, algo sobre línguas naturais. 76 00:03:33,070 --> 00:03:36,220 Algo realmente interessante sobre línguas naturais é que, e este é 77 00:03:36,220 --> 00:03:38,470 crédito para o meu professor de linguística, Maria Polinsky. 78 00:03:38,470 --> 00:03:40,830 Ela dá um exemplo e eu acho que é realmente interessante. 79 00:03:40,830 --> 00:03:47,060 Porque aprender a linguagem a partir de quando nascemos e então nossa nativa 80 00:03:47,060 --> 00:03:49,170 tipo de linguagem cresce em nós. 81 00:03:49,170 --> 00:03:52,570 >> E basicamente você aprender a língua de entrada mínima, certo? 82 00:03:52,570 --> 00:03:56,700 Você só está recebendo entrada de seu pais de que seu idioma soa 83 00:03:56,700 --> 00:03:58,770 gosta e que você acabou de aprender. 84 00:03:58,770 --> 00:04:02,240 Então, é interessante porque se você olhar a essas frases, por exemplo. 85 00:04:02,240 --> 00:04:06,980 Você olha, "Maria coloca um casaco de cada vez que ela sai de casa. " 86 00:04:06,980 --> 00:04:10,650 >> Neste caso, é possível ter a palavra "ela" refere-se a Maria, certo? 87 00:04:10,650 --> 00:04:13,500 Você pode dizer "Maria coloca um casaco cada vez que deixa o Maria 88 00:04:13,500 --> 00:04:14,960 casa. "de modo que é bom. 89 00:04:14,960 --> 00:04:19,370 Mas, então, se você olhar para a sentença "Ela coloca um casaco de cada vez que Maria 90 00:04:19,370 --> 00:04:22,850 sai de casa. "você sabe que é impossível dizer que "ela" é 91 00:04:22,850 --> 00:04:24,260 referindo-se a Maria. 92 00:04:24,260 --> 00:04:27,070 >> Não há nenhuma maneira de dizer que "Maria coloca um casaco de cada vez que Mary deixa 93 00:04:27,070 --> 00:04:30,790 a casa. "Então, é interessante porque este é o tipo de intuição 94 00:04:30,790 --> 00:04:32,890 que todo falante nativo tem. 95 00:04:32,890 --> 00:04:36,370 E ninguém foi ensinado que este é a maneira que a sintaxe funciona. 96 00:04:36,370 --> 00:04:41,930 E que você só pode ter esse "ela" referindo-se a Maria neste primeiro caso, 97 00:04:41,930 --> 00:04:44,260 e, na verdade, nesta outra também, mas não neste. 98 00:04:44,260 --> 00:04:46,500 Mas todo mundo fica tipo de para a mesma resposta. 99 00:04:46,500 --> 00:04:48,580 Todos concordam com isso. 100 00:04:48,580 --> 00:04:53,280 Então, é realmente interessante como apesar de você não sabe todas as regras 101 00:04:53,280 --> 00:04:55,575 em seu idioma que tipo de compreender como a linguagem funciona. 102 00:04:55,575 --> 00:04:59,020 103 00:04:59,020 --> 00:05:01,530 >> Então, a coisa interessante sobre naturais linguagem é que você não tem que 104 00:05:01,530 --> 00:05:06,970 conheço nenhuma sintaxe de saber se uma sentença é gramatical ou não gramatical para 105 00:05:06,970 --> 00:05:08,810 maior parte dos casos. 106 00:05:08,810 --> 00:05:13,220 O que faz você pensar que talvez o que acontece é que, através de sua vida, você 107 00:05:13,220 --> 00:05:17,410 estão a ficar cada vez mais sentenças disse para você. 108 00:05:17,410 --> 00:05:19,800 E então você manter memorização todas as sentenças. 109 00:05:19,800 --> 00:05:24,230 E então, quando alguém lhe diz alguma coisa, você ouve essa frase e 110 00:05:24,230 --> 00:05:27,040 você olha para o seu vocabulário de sentenças e ver se 111 00:05:27,040 --> 00:05:28,270 essa frase está lá. 112 00:05:28,270 --> 00:05:29,830 E se ele está lá você dizer que é gramatical. 113 00:05:29,830 --> 00:05:31,740 Se não é você dizer que é ungrammatical. 114 00:05:31,740 --> 00:05:35,150 >> Então, nesse caso, você diria: oh, então você tem uma lista enorme de tudo 115 00:05:35,150 --> 00:05:36,140 possíveis sentenças. 116 00:05:36,140 --> 00:05:38,240 E então, quando você ouve uma frase, você sabe se é gramatical ou 117 00:05:38,240 --> 00:05:39,450 não com base nisso. 118 00:05:39,450 --> 00:05:42,360 A coisa é que se você olhar para uma frase, por exemplo, "O 119 00:05:42,360 --> 00:05:47,540 cinco cabeças CS50 TFs cozido cegos polvo usando uma caneca DAPA ". É 120 00:05:47,540 --> 00:05:49,630 definitivamente não é uma sentença que você já ouviu antes. 121 00:05:49,630 --> 00:05:52,380 Mas, ao mesmo tempo, você sabe que é praticamente gramatical, certo? 122 00:05:52,380 --> 00:05:55,570 Não há erros gramaticais e você pode dizer que 123 00:05:55,570 --> 00:05:57,020 é uma possível sentença. 124 00:05:57,020 --> 00:06:01,300 >> Por isso, faz-nos pensar que, na verdade, a maneira que nós aprender a língua não é apenas 125 00:06:01,300 --> 00:06:07,090 por ter uma enorme base de dados de possíveis palavras ou frases, mas mais de 126 00:06:07,090 --> 00:06:11,490 compreender a relação entre palavras essas frases. 127 00:06:11,490 --> 00:06:14,570 Será que isso faz sentido? 128 00:06:14,570 --> 00:06:19,370 Assim, então, a pergunta é, pode computadores aprender línguas? 129 00:06:19,370 --> 00:06:21,490 Podemos ensinar a língua para computadores? 130 00:06:21,490 --> 00:06:24,230 >> Então, vamos pensar na diferença entre um falante nativo de uma língua 131 00:06:24,230 --> 00:06:25,460 e um computador. 132 00:06:25,460 --> 00:06:27,340 Então, o que acontece com o orador? 133 00:06:27,340 --> 00:06:30,430 Bem, o falante nativo aprende uma linguagem da exposição ao produto. 134 00:06:30,430 --> 00:06:34,200 Normalmente os seus anos de infância. 135 00:06:34,200 --> 00:06:38,570 Então, basicamente, você só tem um bebê, e você continuar a falar com ele, e ele 136 00:06:38,570 --> 00:06:40,540 só aprende a falar a linguagem, certo? 137 00:06:40,540 --> 00:06:42,660 Então, você está basicamente dando entrada para o bebê. 138 00:06:42,660 --> 00:06:45,200 Então, você pode argumentar que um computador pode fazer a mesma coisa, certo? 139 00:06:45,200 --> 00:06:49,510 Você pode apenas dar-língua como entrada para o computador. 140 00:06:49,510 --> 00:06:53,410 >> Como por exemplo, um monte de arquivos que têm livros em Inglês. 141 00:06:53,410 --> 00:06:56,190 Talvez essa seja uma maneira que você poderia ensinar uma 142 00:06:56,190 --> 00:06:57,850 computador Inglês, certo? 143 00:06:57,850 --> 00:07:01,000 E, na verdade, se você pensar sobre isso, é preciso que você talvez um par 144 00:07:01,000 --> 00:07:02,680 dias para ler um livro. 145 00:07:02,680 --> 00:07:05,760 Para um computador que leva um segundo para olhar para todas as palavras em um livro. 146 00:07:05,760 --> 00:07:10,810 Assim, você pode pensar que pode ser apenas isso argumento de entrada a partir de sua volta, 147 00:07:10,810 --> 00:07:15,440 isso não é suficiente para dizer que isso é algo que só os humanos podem fazer. 148 00:07:15,440 --> 00:07:17,680 Você pode pensar computadores também pode obter entrada. 149 00:07:17,680 --> 00:07:21,170 >> A segunda coisa é que os falantes nativos também têm um cérebro que tem 150 00:07:21,170 --> 00:07:23,870 capacidade de aprendizagem de línguas. 151 00:07:23,870 --> 00:07:27,020 Mas se você pensar sobre isso, um cérebro é uma coisa sólida. 152 00:07:27,020 --> 00:07:30,450 Quando você nasce, já está definido - 153 00:07:30,450 --> 00:07:31,320 este é o seu cérebro. 154 00:07:31,320 --> 00:07:34,660 E, como você crescer, você fica mais entrada da linguagem e talvez nutrientes 155 00:07:34,660 --> 00:07:35,960 e outras coisas. 156 00:07:35,960 --> 00:07:38,170 Mas muito bonito o seu cérebro é uma coisa sólida. 157 00:07:38,170 --> 00:07:41,290 >> Assim, você pode dizer, bem, talvez você possa construir um computador que tem um monte de 158 00:07:41,290 --> 00:07:45,890 funções e métodos que apenas imitam capacidade de aprendizagem de línguas. 159 00:07:45,890 --> 00:07:49,630 Então, nesse sentido, pode-se dizer, bem, eu pode ter um computador que tem todo o 160 00:07:49,630 --> 00:07:52,270 coisas que eu preciso aprender a língua. 161 00:07:52,270 --> 00:07:56,200 E a última coisa é que um nativo falante aprende com tentativa e erro. 162 00:07:56,200 --> 00:08:01,090 Então, basicamente, outra coisa importante no a aprendizagem de línguas é que você meio 163 00:08:01,090 --> 00:08:05,340 de aprender as coisas, fazendo generalizações sobre o que você ouve. 164 00:08:05,340 --> 00:08:10,280 >> Então, como você está crescendo você aprende que algumas palavras são mais como substantivos, 165 00:08:10,280 --> 00:08:11,820 algumas outras são adjetivos. 166 00:08:11,820 --> 00:08:14,250 E você não tem que ter qualquer conhecimento da lingüística 167 00:08:14,250 --> 00:08:15,040 entender isso. 168 00:08:15,040 --> 00:08:18,560 Mas você só sabe que há algumas palavras estão posicionados em alguma parte do 169 00:08:18,560 --> 00:08:22,570 sentença e alguns outros em outro partes da sentença. 170 00:08:22,570 --> 00:08:26,110 >> E que quando você faz algo que é como uma frase que não é correto - 171 00:08:26,110 --> 00:08:28,770 talvez por causa de uma generalização sobre por exemplo. 172 00:08:28,770 --> 00:08:32,210 Talvez quando você está crescendo, você percebe que o plural é geralmente 173 00:08:32,210 --> 00:08:35,809 formado por colocar um S no o fim da palavra. 174 00:08:35,809 --> 00:08:40,042 E então você tenta fazer o plural de "veado" como "veados" ou "dente" como 175 00:08:40,042 --> 00:08:44,780 "tooths". Então seus pais ou alguém corrige e diz, não, o 176 00:08:44,780 --> 00:08:49,020 plural de "veado" é "veado", eo plural de "dente" é "dentes". E então 177 00:08:49,020 --> 00:08:50,060 você aprender essas coisas. 178 00:08:50,060 --> 00:08:51,520 Então você aprender com tentativa e erro. 179 00:08:51,520 --> 00:08:53,100 >> Mas você também pode fazer isso com um computador. 180 00:08:53,100 --> 00:08:55,310 Você pode ter uma coisa chamada aprendizado por reforço. 181 00:08:55,310 --> 00:08:58,560 Que é basicamente como dar um computador uma recompensa sempre que ele faz 182 00:08:58,560 --> 00:08:59,410 algo corretamente. 183 00:08:59,410 --> 00:09:04,710 E dando-lhe o oposto de uma recompensa e quando ele faz algo errado. 184 00:09:04,710 --> 00:09:07,410 Você pode realmente ver que se você ir para o Google Translate e tentar 185 00:09:07,410 --> 00:09:10,220 traduzir uma frase, pede-lhe para o gabarito. 186 00:09:10,220 --> 00:09:13,240 Então, se você diz, oh, há uma melhor tradução para esta frase. 187 00:09:13,240 --> 00:09:18,140 Você pode digitá-lo e, em seguida, se um monte de as pessoas continuam a dizer que é a melhor 188 00:09:18,140 --> 00:09:21,560 tradução, ele apenas aprende que deve usá-la em vez de tradução 189 00:09:21,560 --> 00:09:22,960 aquele que estava dando. 190 00:09:22,960 --> 00:09:28,830 >> Então, é uma pergunta muito filosófica para ver se os computadores vão ser 191 00:09:28,830 --> 00:09:30,340 capaz de falar ou não no futuro. 192 00:09:30,340 --> 00:09:34,440 Mas eu tenho grandes esperanças de que eles podem apenas com base nesses argumentos. 193 00:09:34,440 --> 00:09:38,570 Mas é apenas mais um filosófica pergunta. 194 00:09:38,570 --> 00:09:43,460 >> Assim, enquanto os computadores ainda não pode falar, quais são as coisas que nós podemos fazer? 195 00:09:43,460 --> 00:09:47,070 Algumas coisas muito legais são classificação de dados. 196 00:09:47,070 --> 00:09:53,210 Assim, por exemplo, vocês sabem que os serviços de e-mail fazer, para 197 00:09:53,210 --> 00:09:55,580 exemplo, filtragem de spam. 198 00:09:55,580 --> 00:09:59,070 Assim, sempre que você receber spam, tenta filtrar a outra caixa. 199 00:09:59,070 --> 00:10:00,270 Então, como ele faz isso? 200 00:10:00,270 --> 00:10:06,080 Não é como se o computador só sabe endereços de e-mail que está enviando spam. 201 00:10:06,080 --> 00:10:09,130 Portanto, é mais baseado no conteúdo de da mensagem, ou talvez o título, ou 202 00:10:09,130 --> 00:10:11,310 talvez algum padrão que você tem. 203 00:10:11,310 --> 00:10:15,690 >> Então, basicamente, o que você pode fazer é obter um grande quantidade de dados de e-mails que são spam, 204 00:10:15,690 --> 00:10:19,980 e-mails que não são spam, e assim aprender o que tipo de padrões que você tem no 205 00:10:19,980 --> 00:10:21,000 aquelas que são spam. 206 00:10:21,000 --> 00:10:23,260 E isso faz parte do computacional lingüística. 207 00:10:23,260 --> 00:10:24,720 Chama-se a classificação de dados. 208 00:10:24,720 --> 00:10:28,100 E nós estamos indo realmente para ver uma exemplo de que, nos próximos slides. 209 00:10:28,100 --> 00:10:32,910 >> A segunda coisa é a linguagem natural processamento que é a coisa que o 210 00:10:32,910 --> 00:10:36,580 Gráfico Pesquisa está fazendo de deixar você escrever uma frase. 211 00:10:36,580 --> 00:10:38,690 E confia em você entender o que é o sentido e dá 212 00:10:38,690 --> 00:10:39,940 um resultado melhor. 213 00:10:39,940 --> 00:10:43,880 Na verdade, se você vai para o Google ou o Bing e você busca algo como Lady 214 00:10:43,880 --> 00:10:47,060 Altura de Gaga, na verdade você está indo para obter 5 '1 "em vez de informação 215 00:10:47,060 --> 00:10:50,170 dela, porque ele realmente entende o que você está falando. 216 00:10:50,170 --> 00:10:52,140 Então, isso é parte de recursos naturais processamento da linguagem. 217 00:10:52,140 --> 00:10:57,000 >> Ou também quando você estiver usando o Siri, primeiro você tem um algoritmo que tenta 218 00:10:57,000 --> 00:11:01,130 traduzir o que você está dizendo em palavras, em texto. 219 00:11:01,130 --> 00:11:03,690 E então ele tenta traduzir que em sentido. 220 00:11:03,690 --> 00:11:06,570 Então, isso é tudo parte de recursos naturais processamento da linguagem. 221 00:11:06,570 --> 00:11:08,320 >> Então você tem de tradução automática - 222 00:11:08,320 --> 00:11:10,300 que na verdade é um dos meus favoritos - 223 00:11:10,300 --> 00:11:14,060 que é apenas a tradução de uma língua para outra. 224 00:11:14,060 --> 00:11:17,950 Assim, você pode pensar que, quando você está fazendo tradução automática, você tem 225 00:11:17,950 --> 00:11:19,750 infinitas possibilidades de sentenças. 226 00:11:19,750 --> 00:11:22,960 Portanto, não há nenhuma maneira de armazenar apenas cada tradução única. 227 00:11:22,960 --> 00:11:27,440 Então você tem que chegar a interessante algoritmos para poder 228 00:11:27,440 --> 00:11:30,110 traduzir cada sentença de alguma forma. 229 00:11:30,110 --> 00:11:32,483 >> Vocês têm alguma dúvida até agora? 230 00:11:32,483 --> 00:11:34,450 Não? 231 00:11:34,450 --> 00:11:34,830 OK. 232 00:11:34,830 --> 00:11:36,900 >> Então, o que vamos ver hoje? 233 00:11:36,900 --> 00:11:39,300 Primeiro de tudo, eu vou falar sobre o problema de classificação. 234 00:11:39,300 --> 00:11:41,440 Então, o que eu estava dizendo sobre spam. 235 00:11:41,440 --> 00:11:46,820 O que eu vou fazer é, dadas as letras uma música, você pode tentar descobrir 236 00:11:46,820 --> 00:11:49,810 com elevada probabilidade quem é o cantor? 237 00:11:49,810 --> 00:11:53,590 Vamos dizer que eu tenho músicas de Lady Gaga e Katy Perry, se eu lhe der um 238 00:11:53,590 --> 00:11:58,130 nova canção, você pode descobrir se é Katy Perry ou Lady Gaga? 239 00:11:58,130 --> 00:12:01,490 >> O segundo, eu só vou falar sobre o problema de segmentação. 240 00:12:01,490 --> 00:12:05,780 Então, eu não sei se vocês sabem, mas Chinês, japonês, outro do Leste Asiático 241 00:12:05,780 --> 00:12:08,090 idiomas, e outros idiomas em geral, não têm 242 00:12:08,090 --> 00:12:09,830 espaços entre as palavras. 243 00:12:09,830 --> 00:12:13,540 E então, se você pensar sobre a maneira que o seu tipo de computador de tentativas para 244 00:12:13,540 --> 00:12:18,600 compreender processamento de linguagem natural, ele olha para as palavras e 245 00:12:18,600 --> 00:12:21,500 tenta compreender as relações entre eles, certo? 246 00:12:21,500 --> 00:12:25,440 Mas, então, se você tiver chinês, e você ter zero espaços, é realmente difícil 247 00:12:25,440 --> 00:12:28,360 descobrir o que é a relação entre palavras, porque eles não têm qualquer 248 00:12:28,360 --> 00:12:29,530 palavras em primeiro lugar. 249 00:12:29,530 --> 00:12:32,600 Então você tem que fazer algo chamado segmentação que significa apenas colocar 250 00:12:32,600 --> 00:12:36,490 espaços entre o que nós chamaríamos palavras nessas línguas. 251 00:12:36,490 --> 00:12:37,740 Faz sentido? 252 00:12:37,740 --> 00:12:39,680 253 00:12:39,680 --> 00:12:41,540 >> E então nós vamos falar sobre sintaxe. 254 00:12:41,540 --> 00:12:44,050 Então, basta um pouco sobre naturais processamento da linguagem. 255 00:12:44,050 --> 00:12:45,420 Vai ser apenas uma visão geral. 256 00:12:45,420 --> 00:12:50,700 Então, hoje, basicamente o que eu quero fazer é dar a vocês um pouco de uma 257 00:12:50,700 --> 00:12:53,930 dentro do que são as possibilidades que você pode fazer com computacional 258 00:12:53,930 --> 00:12:54,960 lingüística. 259 00:12:54,960 --> 00:13:00,410 E então você pode ver o que você pensa é legal entre essas coisas. 260 00:13:00,410 --> 00:13:02,270 E talvez você possa pensar em um projeto e vem falar comigo. 261 00:13:02,270 --> 00:13:05,260 E eu posso lhe dar conselhos sobre a forma de implementá-lo. 262 00:13:05,260 --> 00:13:09,060 >> Então sintaxe vai ser um pouco Pesquisa sobre Graph e máquina 263 00:13:09,060 --> 00:13:09,670 tradução. 264 00:13:09,670 --> 00:13:13,650 Eu só vou dar um exemplo de como você poderia, por exemplo, traduzir 265 00:13:13,650 --> 00:13:16,020 algo de Português para Inglês. 266 00:13:16,020 --> 00:13:17,830 Parece bom? 267 00:13:17,830 --> 00:13:19,293 >> Então, primeiro, o problema de classificação. 268 00:13:19,293 --> 00:13:23,590 Eu vou dizer que esta parte do seminário vai ser o maior desafio 269 00:13:23,590 --> 00:13:27,560 um só porque não vai ser alguma codificação. 270 00:13:27,560 --> 00:13:29,470 Mas vai ser Python. 271 00:13:29,470 --> 00:13:34,380 Eu sei que vocês não conhecem Python, por isso, Eu só vou explicar sobre a alta 272 00:13:34,380 --> 00:13:35,750 nível que eu estou fazendo. 273 00:13:35,750 --> 00:13:40,900 E você não tem que realmente se preocupam demais muito sobre a sintaxe, porque isso é 274 00:13:40,900 --> 00:13:42,140 algo que vocês possam aprender. 275 00:13:42,140 --> 00:13:42,540 OK? 276 00:13:42,540 --> 00:13:43,580 Parece bom. 277 00:13:43,580 --> 00:13:46,020 >> Então, qual é o problema de classificação? 278 00:13:46,020 --> 00:13:49,140 Então, você está dado algumas letras para uma música, e você quer adivinhar 279 00:13:49,140 --> 00:13:50,620 quem está cantando. 280 00:13:50,620 --> 00:13:54,045 E isto pode ser para qualquer tipo de outros problemas. 281 00:13:54,045 --> 00:13:59,980 Assim pode ser, por exemplo, você tem um campanha presidencial e você tem um 282 00:13:59,980 --> 00:14:02,610 fala, e você quer encontrar se era, por exemplo, 283 00:14:02,610 --> 00:14:04,470 Obama ou Mitt Romney. 284 00:14:04,470 --> 00:14:07,700 Ou você pode ter um monte de e-mails e você quer descobrir se eles são 285 00:14:07,700 --> 00:14:08,890 spam ou não. 286 00:14:08,890 --> 00:14:11,440 Então é só classificando algumas dados com base nas palavras 287 00:14:11,440 --> 00:14:13,790 que você tem lá. 288 00:14:13,790 --> 00:14:16,295 >> Então, para fazer isso, você tem que fazer algumas suposições. 289 00:14:16,295 --> 00:14:20,570 Então, um monte sobre a linguística computacional está fazendo suposições, 290 00:14:20,570 --> 00:14:24,100 pressupostos geralmente inteligentes, de modo que você pode obter bons resultados. 291 00:14:24,100 --> 00:14:26,670 Tentando criar um modelo para ele. 292 00:14:26,670 --> 00:14:31,290 E, em seguida, testá-lo e ver se ele funciona, se lhe dá uma boa precisão. 293 00:14:31,290 --> 00:14:33,940 E se isso acontecer, então você tentar melhorá-lo. 294 00:14:33,940 --> 00:14:37,640 Se não, você é como, OK, talvez eu deve fazer uma suposição diferente. 295 00:14:37,640 --> 00:14:44,030 >> Assim, a suposição de que vamos fazer é que um artista normalmente canta 296 00:14:44,030 --> 00:14:49,220 sobre um tópico várias vezes, e talvez usa palavras várias vezes apenas 297 00:14:49,220 --> 00:14:50,270 porque eles estão acostumados a isso. 298 00:14:50,270 --> 00:14:51,890 Você pode apenas pensar em seu amigo. 299 00:14:51,890 --> 00:14:57,350 Eu tenho certeza que vocês todos têm amigos que dizem que sua frase de assinatura, 300 00:14:57,350 --> 00:14:59,260 literalmente para cada frase - 301 00:14:59,260 --> 00:15:02,660 como alguma palavra ou algum específico específico frase que eles dizem para 302 00:15:02,660 --> 00:15:04,020 cada frase única. 303 00:15:04,020 --> 00:15:07,920 >> E o que você pode dizer é que se você ver uma frase que tem uma assinatura 304 00:15:07,920 --> 00:15:11,450 frase, você pode imaginar que, provavelmente, seu amigo é o 305 00:15:11,450 --> 00:15:13,310 um dizê-lo, certo? 306 00:15:13,310 --> 00:15:18,410 Então você faz essa suposição e, em seguida, é assim que você criar um modelo. 307 00:15:18,410 --> 00:15:24,440 >> O exemplo que vou dar é sobre como Lady Gaga, por exemplo, pessoas 308 00:15:24,440 --> 00:15:27,430 dizer que ela usa "bebê" para todas as suas canções número um. 309 00:15:27,430 --> 00:15:32,270 E, na verdade, este é um vídeo que mostra ela dizer a palavra "bebê" para 310 00:15:32,270 --> 00:15:33,410 músicas diferentes. 311 00:15:33,410 --> 00:15:33,860 >> [REPRODUÇÃO] 312 00:15:33,860 --> 00:15:34,310 >> - (Cantando) Bebê. 313 00:15:34,310 --> 00:15:36,220 Bebê. 314 00:15:36,220 --> 00:15:37,086 Bebê. 315 00:15:37,086 --> 00:15:37,520 Bebê. 316 00:15:37,520 --> 00:15:37,770 Bebê. 317 00:15:37,770 --> 00:15:38,822 Borracho. 318 00:15:38,822 --> 00:15:39,243 Bebê. 319 00:15:39,243 --> 00:15:40,085 Bebê. 320 00:15:40,085 --> 00:15:40,510 Bebê. 321 00:15:40,510 --> 00:15:40,850 Bebê. 322 00:15:40,850 --> 00:15:41,090 >> [FIM REPRODUÇÃO DE VÍDEO- 323 00:15:41,090 --> 00:15:44,020 >> LUCAS FREITAS: Portanto, há, penso eu, 40 músicas aqui em que ela diz que a 324 00:15:44,020 --> 00:15:48,690 palavra "bebê". Então, basicamente você pode imaginar que se você vê uma música que tem 325 00:15:48,690 --> 00:15:52,180 a palavra "bebê", há alguns de alta probabilidade de que é Lady Gaga. 326 00:15:52,180 --> 00:15:56,450 Mas vamos tentar desenvolver esta ainda mais formalmente. 327 00:15:56,450 --> 00:16:00,470 >> Então, essas são letras de músicas por Lady Gaga e Katy Perry. 328 00:16:00,470 --> 00:16:04,120 Então você olha para Lady Gaga, você vê que eles tem um monte de ocorrências de "bebê", um 329 00:16:04,120 --> 00:16:07,710 muitas ocorrências de "caminho". E então Katy Perry tem um monte de ocorrências de 330 00:16:07,710 --> 00:16:10,360 "A", uma série de ocorrências de "fogo". 331 00:16:10,360 --> 00:16:14,560 >> Então, basicamente, o que queremos fazer é, você recebe uma letra. 332 00:16:14,560 --> 00:16:20,480 Vamos dizer que você tem uma letra para um música que é "bebê", apenas "bebê". Se 333 00:16:20,480 --> 00:16:24,750 você começa apenas a palavra "bebê", e isso é todos os dados que você tem a partir de 334 00:16:24,750 --> 00:16:27,880 Lady Gaga e Katy Perry, que seria você adivinhar é a pessoa 335 00:16:27,880 --> 00:16:29,370 quem canta a música? 336 00:16:29,370 --> 00:16:32,360 Lady Gaga ou Katy Perry? 337 00:16:32,360 --> 00:16:33,150 Lady Gaga, né? 338 00:16:33,150 --> 00:16:37,400 Porque ela é a única que diz "Bebê". Isto soa estúpido, né? 339 00:16:37,400 --> 00:16:38,760 OK, isso é muito fácil. 340 00:16:38,760 --> 00:16:41,860 Eu estou apenas olhando para as duas músicas e de Claro, ela é a única pessoa que tem 341 00:16:41,860 --> 00:16:42,660 "Bebê". 342 00:16:42,660 --> 00:16:44,740 >> Mas e se você tem um monte de palavras? 343 00:16:44,740 --> 00:16:50,900 Se você tem uma letra real, algo como, "bebê, eu só 344 00:16:50,900 --> 00:16:51,610 fui ver um [? CFT?] 345 00:16:51,610 --> 00:16:54,020 palestra ", ou algo assim, e então você realmente tem que descobrir - 346 00:16:54,020 --> 00:16:55,780 com base em todas as palavras - 347 00:16:55,780 --> 00:16:58,350 quem é o artista que provavelmente cantou esta música? 348 00:16:58,350 --> 00:17:01,860 Então, vamos tentar desenvolver isso um pouco mais. 349 00:17:01,860 --> 00:17:05,630 >> OK, com base apenas nos dados que temos obtido, parece que Gaga é provavelmente 350 00:17:05,630 --> 00:17:06,260 o cantor. 351 00:17:06,260 --> 00:17:07,904 Mas como podemos escrever esta mais formal? 352 00:17:07,904 --> 00:17:10,579 353 00:17:10,579 --> 00:17:13,140 E não vai ser um pouco pouco de estatísticas. 354 00:17:13,140 --> 00:17:15,880 Então, se você se perder, basta tentar para entender o conceito. 355 00:17:15,880 --> 00:17:18,700 Não importa se você entender as equações perfeitamente bem. 356 00:17:18,700 --> 00:17:22,150 Isso tudo vai estar on-line. 357 00:17:22,150 --> 00:17:25,490 >> Então, basicamente o que eu estou cálculo é o probabilidade de que esta canção é por 358 00:17:25,490 --> 00:17:28,040 Lady Gaga, uma vez que - 359 00:17:28,040 --> 00:17:30,660 assim que este bar significa uma vez que - 360 00:17:30,660 --> 00:17:33,680 Eu vi a palavra "bebê". Será que isso faz sentido? 361 00:17:33,680 --> 00:17:35,540 Então, eu estou tentando calcular essa probabilidade. 362 00:17:35,540 --> 00:17:38,540 >> Portanto, não há este teorema chamado Teorema de Bayes que diz que o 363 00:17:38,540 --> 00:17:43,330 probabilidade de uma dada B, é o probabilidade de B dado A, vezes o 364 00:17:43,330 --> 00:17:47,660 A probabilidade de, durante a probabilidade B. Trata-se de uma equação longa. 365 00:17:47,660 --> 00:17:51,970 Mas o que você tem que entender de que é que é isso que eu quero 366 00:17:51,970 --> 00:17:52,830 calcular, certo? 367 00:17:52,830 --> 00:17:56,570 Assim, a probabilidade de que essa música é de Lady Gaga, uma vez que eu vi a palavra 368 00:17:56,570 --> 00:17:58,230 "Bebê". 369 00:17:58,230 --> 00:18:02,960 >> E agora o que eu estou recebendo é a probabilidade de a palavra "bebê" dado 370 00:18:02,960 --> 00:18:04,390 que eu tenho Lady Gaga. 371 00:18:04,390 --> 00:18:07,220 E o que é que, basicamente? 372 00:18:07,220 --> 00:18:10,500 O que isto significa é, qual é o probabilidade de ver a palavra "bebê" 373 00:18:10,500 --> 00:18:12,130 em letras Gaga? 374 00:18:12,130 --> 00:18:16,240 Se eu quiser calcular que de uma forma muito maneira simples, é apenas o número de 375 00:18:16,240 --> 00:18:23,640 vezes eu vejo "bebê" sobre o número total de palavras em letras Gaga, né? 376 00:18:23,640 --> 00:18:27,600 Qual é a freqüência que eu vejo essa palavra no trabalho de Gaga? 377 00:18:27,600 --> 00:18:30,530 Faz sentido? 378 00:18:30,530 --> 00:18:33,420 >> O segundo termo é o probabilidade de Gaga. 379 00:18:33,420 --> 00:18:34,360 O que significa isso? 380 00:18:34,360 --> 00:18:38,550 Isso significa, basicamente, o que é o probabilidade de classificar 381 00:18:38,550 --> 00:18:40,690 algumas letras como Gaga? 382 00:18:40,690 --> 00:18:45,320 E isso é meio estranho, mas Vamos pensar em um exemplo. 383 00:18:45,320 --> 00:18:49,230 Então, vamos dizer que a probabilidade de ter "bebê" em uma canção é a mesma 384 00:18:49,230 --> 00:18:51,760 por Gaga e Britney Spears. 385 00:18:51,760 --> 00:18:54,950 Mas Britney Spears tem o dobro mais músicas do que Lady Gaga. 386 00:18:54,950 --> 00:19:00,570 Então, se alguém lhe dá apenas aleatoriamente letra de "bebê", a primeira coisa que você 387 00:19:00,570 --> 00:19:04,710 olhar é, qual é a probabilidade de ter "bebê" em uma canção Gaga, "bebê" 388 00:19:04,710 --> 00:19:05,410 em uma canção de Britney? 389 00:19:05,410 --> 00:19:06,460 E é a mesma coisa. 390 00:19:06,460 --> 00:19:10,040 >> Portanto, a segunda coisa que você verá é, bem, qual é a probabilidade de 391 00:19:10,040 --> 00:19:13,770 esta letra por si só ser um lírico Gaga, e qual é a probabilidade de 392 00:19:13,770 --> 00:19:15,380 ser um lírico Britney? 393 00:19:15,380 --> 00:19:18,950 Então, já que Britney tem tantos mais letras de Gaga, você provavelmente 394 00:19:18,950 --> 00:19:21,470 digamos, bem, este é, provavelmente, uma letra de Britney. 395 00:19:21,470 --> 00:19:23,340 Então é por isso que temos esta termo certo aqui. 396 00:19:23,340 --> 00:19:24,670 Probabilidade de Gaga. 397 00:19:24,670 --> 00:19:26,950 Faz sentido? 398 00:19:26,950 --> 00:19:28,660 Não é? 399 00:19:28,660 --> 00:19:29,370 OK. 400 00:19:29,370 --> 00:19:33,500 >> E o último é apenas a probabilidade de "bebê", que não 401 00:19:33,500 --> 00:19:34,810 realmente importa muito. 402 00:19:34,810 --> 00:19:39,940 Mas é a probabilidade de vendo "bebê" em Inglês. 403 00:19:39,940 --> 00:19:42,725 Nós geralmente não se importam que muito sobre esse termo. 404 00:19:42,725 --> 00:19:44,490 Será que isso faz sentido? 405 00:19:44,490 --> 00:19:48,110 Assim, a probabilidade de Gaga é chamada a probabilidade anterior 406 00:19:48,110 --> 00:19:49,530 da Gaga classe. 407 00:19:49,530 --> 00:19:53,840 Porque isso significa apenas que, o que é o probabilidade de ter essa classe - 408 00:19:53,840 --> 00:19:55,520 que é Gaga - 409 00:19:55,520 --> 00:19:59,350 apenas, em geral, só sem condições. 410 00:19:59,350 --> 00:20:02,560 >> E então quando eu tenho probabilidade de Gaga dado "bebê", podemos chamá-lo mais 411 00:20:02,560 --> 00:20:06,160 marejados uma probabilidade porque é a probabilidade de ter 412 00:20:06,160 --> 00:20:08,300 Gaga deu algumas provas. 413 00:20:08,300 --> 00:20:11,050 Então, eu estou dando-lhe a evidência que eu vi o bebê da palavra e 414 00:20:11,050 --> 00:20:12,690 a música faz sentido? 415 00:20:12,690 --> 00:20:15,960 416 00:20:15,960 --> 00:20:16,410 OK. 417 00:20:16,410 --> 00:20:22,400 >> Então, se eu calculou que para cada das músicas de Lady Gaga, 418 00:20:22,400 --> 00:20:25,916 o que seria - 419 00:20:25,916 --> 00:20:27,730 aparentemente, não posso mover este. 420 00:20:27,730 --> 00:20:31,850 421 00:20:31,850 --> 00:20:36,920 A probabilidade de Gaga será algo como 2 mais de 24, os tempos de 1/2, 422 00:20:36,920 --> 00:20:38,260 mais de 2 mais de 53. 423 00:20:38,260 --> 00:20:40,640 Não importa se você sabe o que estes números estão vindo. 424 00:20:40,640 --> 00:20:44,750 Mas é apenas um número que vai ser mais do que 0, certo? 425 00:20:44,750 --> 00:20:48,610 >> E então, quando eu faço Katy Perry, a probabilidade de "bebê" dado Katy é 426 00:20:48,610 --> 00:20:49,830 já 0, certo? 427 00:20:49,830 --> 00:20:52,820 Porque não há "bebê" em Katy Perry. 428 00:20:52,820 --> 00:20:56,360 Então isso se torna 0, e Gaga vitórias, o que significa que Gaga é 429 00:20:56,360 --> 00:20:57,310 provavelmente o cantor. 430 00:20:57,310 --> 00:20:58,560 Será que isso faz sentido? 431 00:20:58,560 --> 00:21:00,700 432 00:21:00,700 --> 00:21:01,950 OK. 433 00:21:01,950 --> 00:21:04,160 434 00:21:04,160 --> 00:21:11,750 >> Então, se eu quero fazer isso mais oficial, Eu posso realmente fazer um modelo 435 00:21:11,750 --> 00:21:12,700 várias palavras. 436 00:21:12,700 --> 00:21:14,610 Então, digamos que eu tenho algo como: "querida, eu sou 437 00:21:14,610 --> 00:21:16,030 no fogo ", ou algo assim. 438 00:21:16,030 --> 00:21:17,760 Por isso, tem várias palavras. 439 00:21:17,760 --> 00:21:20,880 E, neste caso, você pode ver que "bebê" está em Gaga, 440 00:21:20,880 --> 00:21:21,710 mas não é em Katy. 441 00:21:21,710 --> 00:21:24,940 E o "fogo" está em Katy, mas não é em Gaga, né? 442 00:21:24,940 --> 00:21:27,200 Por isso, está ficando mais complicado, né? 443 00:21:27,200 --> 00:21:31,440 Porque parece que você quase tem um laço entre os dois. 444 00:21:31,440 --> 00:21:36,980 >> Então o que você tem a fazer é assumir independência entre as palavras. 445 00:21:36,980 --> 00:21:41,210 Então, basicamente o que isso significa é que Eu só estou calculando o que é o 446 00:21:41,210 --> 00:21:44,330 probabilidade de ver "bebê", o que é a probabilidade de ver "eu", e 447 00:21:44,330 --> 00:21:46,670 "Am" e "on" e "fogo" tudo separadamente. 448 00:21:46,670 --> 00:21:48,670 Então eu estou multiplicando todos eles. 449 00:21:48,670 --> 00:21:52,420 E eu estou vendo qual é a probabilidade de ver a frase inteira. 450 00:21:52,420 --> 00:21:55,210 Faz sentido? 451 00:21:55,210 --> 00:22:00,270 >> Então, basicamente, se eu tenho apenas uma palavra, o que eu quero é encontrar o arg max, 452 00:22:00,270 --> 00:22:05,385 o que significa, o que é a classe que é me dando a maior probabilidade? 453 00:22:05,385 --> 00:22:10,010 Então, qual é a classe que está a dar me a maior probabilidade de 454 00:22:10,010 --> 00:22:11,940 probabilidade de classe determinada palavra. 455 00:22:11,940 --> 00:22:17,610 Portanto, neste caso, Gaga deu "bebê". Ou Katy dado "bebê". Faz sentido? 456 00:22:17,610 --> 00:22:21,040 >> E só a partir de Bayes, que equação que eu mostrei, 457 00:22:21,040 --> 00:22:24,780 criamos essa fração. 458 00:22:24,780 --> 00:22:28,750 A única coisa é que você vê que a probabilidade de a palavra dada 459 00:22:28,750 --> 00:22:31,370 mudanças de classe, dependendo na classe, certo? 460 00:22:31,370 --> 00:22:34,260 O número de s "bebê" que eu tenho em Gaga é diferente de Katy. 461 00:22:34,260 --> 00:22:37,640 A probabilidade de a classe também mudanças, porque isso é apenas o número 462 00:22:37,640 --> 00:22:39,740 de músicas cada um deles tem. 463 00:22:39,740 --> 00:22:43,980 >> Mas a probabilidade de a própria palavra vai ser o mesmo para todo o 464 00:22:43,980 --> 00:22:44,740 artistas, certo? 465 00:22:44,740 --> 00:22:47,150 Assim, a probabilidade de a palavra está apenas, qual é a probabilidade de 466 00:22:47,150 --> 00:22:49,820 vendo essa palavra no Idioma Inglês? 467 00:22:49,820 --> 00:22:51,420 Então, é o mesmo para todos eles. 468 00:22:51,420 --> 00:22:55,790 Então, uma vez que esta é constante, podemos apenas largar isso e não se preocupam com isso. 469 00:22:55,790 --> 00:23:00,230 Então, isso vai ser realmente o equação que estamos procurando. 470 00:23:00,230 --> 00:23:03,360 >> E se eu tiver várias palavras, eu sou ainda vai ter o prévio 471 00:23:03,360 --> 00:23:04,610 probabilidade aqui. 472 00:23:04,610 --> 00:23:06,980 A única coisa é que eu estou multiplicando a probabilidade de 473 00:23:06,980 --> 00:23:08,490 todas as outras palavras. 474 00:23:08,490 --> 00:23:10,110 Então, eu estou multiplicando todos eles. 475 00:23:10,110 --> 00:23:12,610 Faz sentido? 476 00:23:12,610 --> 00:23:18,440 Parece estranho, mas basicamente significa, calcular o antes da aula, e 477 00:23:18,440 --> 00:23:22,100 em seguida, multiplicar pela probabilidade de cada das palavras sendo nessa classe. 478 00:23:22,100 --> 00:23:24,620 479 00:23:24,620 --> 00:23:29,150 >> E você sabe que a probabilidade de um palavra dada uma classe vai ser o 480 00:23:29,150 --> 00:23:34,520 número de vezes que você vê essa palavra em classe, dividido pelo número de 481 00:23:34,520 --> 00:23:37,020 palavras que você tem em que classe em geral. 482 00:23:37,020 --> 00:23:37,990 Faz sentido? 483 00:23:37,990 --> 00:23:41,680 É apenas como "bebê" foi de 2 sobre o número de palavras que 484 00:23:41,680 --> 00:23:43,020 Tive nas letras. 485 00:23:43,020 --> 00:23:45,130 Portanto, apenas a freqüência. 486 00:23:45,130 --> 00:23:46,260 >> Mas há uma coisa. 487 00:23:46,260 --> 00:23:51,250 Lembre-se de como eu estava mostrando que o probabilidade de serem letras "bebê" 488 00:23:51,250 --> 00:23:56,350 de Katy Perry é 0 só porque Katy Perry não tinha "bebê" em tudo? 489 00:23:56,350 --> 00:24:04,900 Mas soa um pouco dura apenas simplesmente dizer que as letras não pode ser de 490 00:24:04,900 --> 00:24:10,040 um artista só porque eles não têm esta palavra, nomeadamente, a qualquer momento. 491 00:24:10,040 --> 00:24:13,330 >> Então, você poderia apenas dizer, bem, se você não tem esta palavra, eu vou 492 00:24:13,330 --> 00:24:15,640 dar-lhe uma menor probabilidade, mas eu não vou 493 00:24:15,640 --> 00:24:17,420 dar-lhe 0 imediatamente. 494 00:24:17,420 --> 00:24:21,040 Porque talvez fosse algo como: "Fogo, fogo, fogo, fogo", que é 495 00:24:21,040 --> 00:24:21,990 totalmente Katy Perry. 496 00:24:21,990 --> 00:24:26,060 E, em seguida, "bebê", e isso só serve para 0 de imediato, porque havia uma 497 00:24:26,060 --> 00:24:27,250 "Bebê". 498 00:24:27,250 --> 00:24:31,440 >> Então, basicamente, o que fazemos é algo chamado Laplace alisamento. 499 00:24:31,440 --> 00:24:36,260 E isso apenas significa que eu estou dando alguma probabilidade, mesmo para as palavras 500 00:24:36,260 --> 00:24:37,850 que não existem. 501 00:24:37,850 --> 00:24:43,170 Então, o que eu faço é que quando estou calcular isso, eu sempre adicionar 1 a 502 00:24:43,170 --> 00:24:44,180 o numerador. 503 00:24:44,180 --> 00:24:48,060 Assim, mesmo que a palavra não existe, em Neste caso, se este for 0, eu ainda estou 504 00:24:48,060 --> 00:24:51,250 cálculo deste como um todo o número total de palavras. 505 00:24:51,250 --> 00:24:55,060 Caso contrário, fico com quantas palavras Eu tenho e eu adicionar 1. 506 00:24:55,060 --> 00:24:58,300 Então, eu estou contando para ambos os casos. 507 00:24:58,300 --> 00:25:00,430 Faz sentido? 508 00:25:00,430 --> 00:25:03,060 >> Então agora vamos fazer alguma codificação. 509 00:25:03,060 --> 00:25:06,440 Eu vou ter que fazer isso muito rápido, mas é apenas importante que você 510 00:25:06,440 --> 00:25:08,600 caras entender os conceitos. 511 00:25:08,600 --> 00:25:13,450 Então o que nós estamos tentando fazer é exatamente implementar esta 512 00:25:13,450 --> 00:25:14,330 coisa que eu disse - 513 00:25:14,330 --> 00:25:19,110 Eu quero que você colocar letras de Lady Gaga e Katy Perry. 514 00:25:19,110 --> 00:25:22,980 E o programa vai ser capaz de dizer se essas novas letras são de Gaga 515 00:25:22,980 --> 00:25:24,170 ou Katy Perry. 516 00:25:24,170 --> 00:25:25,800 Faz sentido? 517 00:25:25,800 --> 00:25:27,530 OK. 518 00:25:27,530 --> 00:25:30,710 >> Então, eu tenho esse programa eu vou para chamar classify.py. 519 00:25:30,710 --> 00:25:31,970 Portanto, esta é Python. 520 00:25:31,970 --> 00:25:34,210 É uma nova linguagem de programação. 521 00:25:34,210 --> 00:25:38,020 É muito semelhante em alguns formas de C e PHP. 522 00:25:38,020 --> 00:25:43,180 É semelhante, porque se você quiser aprender Python depois de conhecer C, é 523 00:25:43,180 --> 00:25:46,270 não é realmente um grande desafio só porque Python é muito mais fácil 524 00:25:46,270 --> 00:25:47,520 a C, em primeiro lugar. 525 00:25:47,520 --> 00:25:49,370 E um monte de coisas que já estão implementadas para você. 526 00:25:49,370 --> 00:25:56,820 Então, como como PHP tem funções que ordenar uma lista, ou acrescentar algo 527 00:25:56,820 --> 00:25:58,780 para uma matriz, ou blá, blá, blá. 528 00:25:58,780 --> 00:26:00,690 Python tem todas as também. 529 00:26:00,690 --> 00:26:05,960 >> Então, eu só vou explicar rapidamente como poderíamos fazer a classificação 530 00:26:05,960 --> 00:26:07,860 problema para aqui. 531 00:26:07,860 --> 00:26:13,230 Então, vamos dizer que, neste caso, eu tenho letras de Gaga e Katy Perry. 532 00:26:13,230 --> 00:26:21,880 A maneira que eu tenho é que essas letras a primeira palavra das letras é 533 00:26:21,880 --> 00:26:25,250 o nome do artista e o resto é a letra. 534 00:26:25,250 --> 00:26:29,470 Então, vamos dizer que eu tenho essa lista em que o primeiro é letra de Gaga. 535 00:26:29,470 --> 00:26:31,930 Então, aqui estou no caminho certo. 536 00:26:31,930 --> 00:26:35,270 E o próximo é Katy, e ele também tem as letras. 537 00:26:35,270 --> 00:26:38,040 >> Então é assim que você declarar uma variável em Python. 538 00:26:38,040 --> 00:26:40,200 Você não tem que dar o tipo de dados. 539 00:26:40,200 --> 00:26:43,150 Você acabou de escrever "letras", tipo de gosto em PHP. 540 00:26:43,150 --> 00:26:44,890 Faz sentido? 541 00:26:44,890 --> 00:26:47,770 >> Então, quais são as coisas que eu tenho que calcular a ser capaz de calcular a 542 00:26:47,770 --> 00:26:49,360 probabilidades? 543 00:26:49,360 --> 00:26:55,110 Eu tenho que calcular os "antecedentes" de cada um dos diferentes 544 00:26:55,110 --> 00:26:56,710 classes que eu tenho. 545 00:26:56,710 --> 00:27:06,680 Eu tenho que calcular os "posteriors", ou praticamente as probabilidades de 546 00:27:06,680 --> 00:27:12,150 cada uma das palavras que diferentes Eu posso ter para cada artista. 547 00:27:12,150 --> 00:27:17,210 Então, dentro de Gaga, por exemplo, eu vou ter uma lista de quantas vezes eu vejo 548 00:27:17,210 --> 00:27:19,250 cada uma das palavras. 549 00:27:19,250 --> 00:27:20,760 Faz sentido? 550 00:27:20,760 --> 00:27:25,370 >> E, finalmente, eu estou indo só para ter um lista chamada "palavras" que só vai 551 00:27:25,370 --> 00:27:29,780 ter quantas palavras que eu ter para cada artista. 552 00:27:29,780 --> 00:27:33,760 Assim, para Gaga, por exemplo, quando eu olho para as letras, que eu tinha, eu acho, 24 553 00:27:33,760 --> 00:27:34,750 palavras no total. 554 00:27:34,750 --> 00:27:38,970 Portanto, esta lista é apenas vai ter Gaga 24, e Katy outro número. 555 00:27:38,970 --> 00:27:40,130 Faz sentido? 556 00:27:40,130 --> 00:27:40,560 OK. 557 00:27:40,560 --> 00:27:42,530 >> Então, agora, na verdade, vamos ir para a codificação. 558 00:27:42,530 --> 00:27:45,270 Assim, em Python, você pode realmente retornar um monte de diferente 559 00:27:45,270 --> 00:27:46,630 coisas de uma função. 560 00:27:46,630 --> 00:27:50,810 Então, eu estou indo para criar esta função chamado "condicional", que vai 561 00:27:50,810 --> 00:27:53,890 para retornar todas essas coisas, o "antecedentes", as "probabilidades", eo 562 00:27:53,890 --> 00:28:05,690 "palavras". Assim, "condicional", e é vai ser pôr em "letras." 563 00:28:05,690 --> 00:28:11,510 >> Então agora eu quero que você realmente escrever esta função. 564 00:28:11,510 --> 00:28:17,750 Assim, a maneira que eu posso escrever este função é eu só definiu este 565 00:28:17,750 --> 00:28:20,620 funcionar com "def". Então eu fiz "def condicional ", e ele está tomando 566 00:28:20,620 --> 00:28:28,700 "Letras". E o que isso vai fazer é, antes de tudo, eu tenho minhas priores 567 00:28:28,700 --> 00:28:31,030 que eu quero calcular. 568 00:28:31,030 --> 00:28:34,330 >> Assim, a maneira que eu possa fazer isso é criar um dicionário em Python, o que 569 00:28:34,330 --> 00:28:37,320 é praticamente a mesma coisa que um hash mesa, ou é como um iterativo 570 00:28:37,320 --> 00:28:40,480 array em PHP. 571 00:28:40,480 --> 00:28:44,150 Isto é como eu declarar um dicionário. 572 00:28:44,150 --> 00:28:53,580 E, basicamente, o que isto significa é que priores de Gaga é de 0,5, por exemplo, se 573 00:28:53,580 --> 00:28:57,200 50% das letras são de Gaga, 50% são de Katy. 574 00:28:57,200 --> 00:28:58,450 Faz sentido? 575 00:28:58,450 --> 00:29:00,680 576 00:29:00,680 --> 00:29:03,680 Então eu tenho que descobrir como para calcular os antecedentes. 577 00:29:03,680 --> 00:29:07,120 >> Os próximos que eu tenho que fazer, também, são as probabilidades e as palavras. 578 00:29:07,120 --> 00:29:17,100 Assim, as probabilidades de Gaga é a lista de todas as probabilidades de que I 579 00:29:17,100 --> 00:29:19,160 ter para cada uma das palavras de Gaga. 580 00:29:19,160 --> 00:29:23,880 Então, se eu for para probabilidades de Gaga "Bebê", por exemplo, ele vai me dar 581 00:29:23,880 --> 00:29:28,750 algo como 2 mais de 24 nesse caso. 582 00:29:28,750 --> 00:29:30,070 Faz sentido? 583 00:29:30,070 --> 00:29:36,120 Então eu vou para "probabilidades", vá para o Balde "Gaga", que tem uma lista de todos 584 00:29:36,120 --> 00:29:40,550 as palavras Gaga, então eu vou para "bebê" e eu vejo a probabilidade. 585 00:29:40,550 --> 00:29:45,940 >> E, finalmente, eu tenho essa "As palavras" dicionário. 586 00:29:45,940 --> 00:29:53,620 Então, aqui, "probabilidades". E então "palavras". Então, se eu faço "palavras", "Gaga", 587 00:29:53,620 --> 00:29:58,330 o que vai acontecer é que é vai me dar 24, dizendo que eu 588 00:29:58,330 --> 00:30:01,990 tem 24 palavras dentro letras de Gaga. 589 00:30:01,990 --> 00:30:04,110 Faz sentido? 590 00:30:04,110 --> 00:30:07,070 Então, aqui, "palavras" é igual dah-dah-dah. 591 00:30:07,070 --> 00:30:07,620 Ok 592 00:30:07,620 --> 00:30:12,210 >> Então o que eu vou fazer é que eu vou iterar sobre cada uma das letras, então 593 00:30:12,210 --> 00:30:14,490 cada uma das cordas que Eu tenho na lista. 594 00:30:14,490 --> 00:30:18,040 E eu vou para calcular essas coisas para cada um dos candidatos. 595 00:30:18,040 --> 00:30:19,950 Faz sentido? 596 00:30:19,950 --> 00:30:21,700 Então eu tenho que fazer um loop for. 597 00:30:21,700 --> 00:30:26,300 >> Assim, em Python, o que posso fazer é "para a linha em letras. "A mesma coisa que um 598 00:30:26,300 --> 00:30:28,000 "Para cada" declaração em PHP. 599 00:30:28,000 --> 00:30:33,420 Lembra-se como se fosse PHP eu pudesse dizer "para cada letras como 600 00:30:33,420 --> 00:30:35,220 linha. "Faz sentido? 601 00:30:35,220 --> 00:30:38,900 Então, eu estou tomando cada uma das linhas, neste caso, essa seqüência ea próxima 602 00:30:38,900 --> 00:30:44,540 corda de modo para cada uma das linhas que eu sou vai fazer é, primeiro, eu vou 603 00:30:44,540 --> 00:30:49,150 dividir esta linha em uma lista de palavras separadas por espaços. 604 00:30:49,150 --> 00:30:53,730 >> Então, a coisa legal sobre Python é que você poderia apenas o Google como "Como posso 605 00:30:53,730 --> 00:30:58,220 dividir uma string em palavras? "E é vou dizer-lhe como fazê-lo. 606 00:30:58,220 --> 00:31:04,890 E a maneira de fazê-lo, é só linha " = Line.split () "e é basicamente 607 00:31:04,890 --> 00:31:08,640 vai dar-lhe uma lista com cada um dos termos aqui. 608 00:31:08,640 --> 00:31:09,620 Faz sentido? 609 00:31:09,620 --> 00:31:15,870 Portanto, agora que eu fiz isso que eu quero saber quem é o cantor da canção. 610 00:31:15,870 --> 00:31:20,130 E para fazer isso eu tenho que tirar o primeiro elemento do array, certo? 611 00:31:20,130 --> 00:31:26,390 Então, eu só posso dizer que eu "cantora = Linha (0) "Faz sentido? 612 00:31:26,390 --> 00:31:32,010 >> E então o que eu preciso fazer é, em primeiro lugar tudo, eu vou atualizar quantos 613 00:31:32,010 --> 00:31:36,130 palavras que eu tenho em "Gaga". então eu sou apenas vai calcular quantas palavras que eu 614 00:31:36,130 --> 00:31:38,690 tem nesta lista, certo? 615 00:31:38,690 --> 00:31:41,910 Porque este é o número de palavras que eu tenho nas letras e eu só vou 616 00:31:41,910 --> 00:31:44,120 adicioná-lo à matriz "Gaga". 617 00:31:44,120 --> 00:31:47,090 Será que isso faz sentido? 618 00:31:47,090 --> 00:31:49,010 Não se concentrar muito na sintaxe. 619 00:31:49,010 --> 00:31:50,430 Pense mais sobre os conceitos. 620 00:31:50,430 --> 00:31:52,400 Essa é a parte mais importante. 621 00:31:52,400 --> 00:31:52,720 OK. 622 00:31:52,720 --> 00:32:00,260 >> Então, o que eu posso fazer é se "Gaga" é já nessa lista, por isso "se cantor 623 00:32:00,260 --> 00:32:03,190 palavras "o que significa que eu já tenho palavras por Gaga. 624 00:32:03,190 --> 00:32:06,640 Eu só quero acrescentar o adicional palavras para isso. 625 00:32:06,640 --> 00:32:15,810 Então, o que eu faço é "palavras (cantor) + = Len (linha) - 1 ". 626 00:32:15,810 --> 00:32:18,250 E então eu posso apenas fazer a comprimento da linha. 627 00:32:18,250 --> 00:32:21,860 Então, como muitos elementos I ter na matriz. 628 00:32:21,860 --> 00:32:27,060 E eu tenho que fazer menos 1 só porque o primeiro elemento da matriz é apenas 629 00:32:27,060 --> 00:32:29,180 um cantor e os que não são letras. 630 00:32:29,180 --> 00:32:31,420 Faz sentido? 631 00:32:31,420 --> 00:32:32,780 OK. 632 00:32:32,780 --> 00:32:35,820 >> "Else", isso significa que eu quero, na verdade, inserir Gaga na lista. 633 00:32:35,820 --> 00:32:45,990 Então, eu só faço "palavras (cantor) = Len (linha) - 1, "desculpe. 634 00:32:45,990 --> 00:32:49,200 Assim, a única diferença entre os dois linhas é que um presente, isso não acontece 635 00:32:49,200 --> 00:32:51,080 existem ainda, então eu sou apenas inicializa-la. 636 00:32:51,080 --> 00:32:53,820 Esse eu realmente estou adicionando. 637 00:32:53,820 --> 00:32:55,570 OK. 638 00:32:55,570 --> 00:32:59,480 Portanto, esta foi a adição de palavras. 639 00:32:59,480 --> 00:33:03,040 >> Agora eu quero adicionar aos antecedentes. 640 00:33:03,040 --> 00:33:05,480 Então, como faço para calcular os priores? 641 00:33:05,480 --> 00:33:11,580 Os antecedentes pode ser calculada por quantas vezes. 642 00:33:11,580 --> 00:33:15,340 Então, quantas vezes você vê que a cantora entre todos os cantores que vocês, 643 00:33:15,340 --> 00:33:16,380 tem, certo? 644 00:33:16,380 --> 00:33:18,810 Assim, por Gaga e Katy Perry, neste caso, não vejo Gaga 645 00:33:18,810 --> 00:33:20,570 uma vez que, Katy Perry vez. 646 00:33:20,570 --> 00:33:23,320 >> Então, basicamente, os priores para Gaga e para Katy Perry faria 647 00:33:23,320 --> 00:33:24,390 ser apenas um, certo? 648 00:33:24,390 --> 00:33:26,500 Você só quantas vezes Eu vejo o artista. 649 00:33:26,500 --> 00:33:28,740 Então isso é muito fácil de calcular. 650 00:33:28,740 --> 00:33:34,100 Eu posso apenas algo semelhante como como "se cantor em priores, "Eu só vou 651 00:33:34,100 --> 00:33:38,970 adicionar 1 para sua caixa de antecedentes. 652 00:33:38,970 --> 00:33:51,000 Então, "priores (cantar)" + = 1 "e depois" senão " Eu vou fazer "priores (cantor) 653 00:33:51,000 --> 00:33:55,000 = 1. "Faz sentido? 654 00:33:55,000 --> 00:34:00,080 >> Então, se ela não existir Acabei de colocar como 1, caso contrário, eu apenas adicionar 1. 655 00:34:00,080 --> 00:34:11,280 OK, então agora tudo o que me resta fazer também é adicionar cada uma das palavras do 656 00:34:11,280 --> 00:34:12,290 probabilidades. 657 00:34:12,290 --> 00:34:14,889 Então eu tenho que contar quantas vezes Eu vejo cada uma das palavras. 658 00:34:14,889 --> 00:34:18,780 Então, eu só tenho que fazer outro loop for na linha. 659 00:34:18,780 --> 00:34:25,190 >> Então a primeira coisa que vou fazer é verificar se o cantor já tem um 660 00:34:25,190 --> 00:34:26,969 variedade probabilidades. 661 00:34:26,969 --> 00:34:31,739 Então, eu estou verificando se a cantora não faz ter uma matriz probabilidades, eu sou apenas 662 00:34:31,739 --> 00:34:34,480 indo para inicializar um deles. 663 00:34:34,480 --> 00:34:36,400 Não é nem mesmo uma matriz, desculpe, é um dicionário. 664 00:34:36,400 --> 00:34:43,080 Assim, as probabilidades de cantora vai para ser um dicionário aberto, por isso estou 665 00:34:43,080 --> 00:34:45,830 apenas inicializar um dicionário para ele. 666 00:34:45,830 --> 00:34:46,820 OK? 667 00:34:46,820 --> 00:34:58,330 >> E agora eu posso realmente fazer um loop para calcular cada uma das palavras ' 668 00:34:58,330 --> 00:35:00,604 probabilidades. 669 00:35:00,604 --> 00:35:01,540 OK. 670 00:35:01,540 --> 00:35:04,160 Então, o que eu posso fazer é um loop for. 671 00:35:04,160 --> 00:35:06,590 Então, eu só vou fazer uma iteração sobre a matriz. 672 00:35:06,590 --> 00:35:15,320 Assim, a maneira que eu posso fazer isso em Python é "for i in range". A partir de 1 673 00:35:15,320 --> 00:35:19,200 porque eu quero começar no segundo elemento porque o primeiro é o 674 00:35:19,200 --> 00:35:20,260 Nome cantor. 675 00:35:20,260 --> 00:35:24,990 Então, a partir de um até o comprimento da linha. 676 00:35:24,990 --> 00:35:29,760 E quando eu variar ele realmente ir de como aqui de 1 a len do 677 00:35:29,760 --> 00:35:30,740 linha menos 1. 678 00:35:30,740 --> 00:35:33,810 Por isso, já faz essa coisa de fazer n menos 1 para matrizes que é muito 679 00:35:33,810 --> 00:35:35,500 conveniente. 680 00:35:35,500 --> 00:35:37,850 Faz sentido? 681 00:35:37,850 --> 00:35:42,770 >> Assim, para cada uma delas, o que eu vou fazer é, assim como no outro, 682 00:35:42,770 --> 00:35:50,320 Vou verificar se a palavra neste posição na linha que já está em 683 00:35:50,320 --> 00:35:51,570 probabilidades. 684 00:35:51,570 --> 00:35:53,400 685 00:35:53,400 --> 00:35:57,260 E então, como eu disse aqui, as probabilidades palavras, como em eu coloquei 686 00:35:57,260 --> 00:35:58,400 "probabilidades (cantor)". 687 00:35:58,400 --> 00:35:59,390 Assim, o nome da cantora. 688 00:35:59,390 --> 00:36:03,450 Então, se ele já está em "Probabilit (cantor)", significa que eu 689 00:36:03,450 --> 00:36:11,960 pretende adicionar 1 a isso, então eu vou fazer "probabilidades (cantor)", ea 690 00:36:11,960 --> 00:36:14,100 palavra é chamado de "linha de (i)". 691 00:36:14,100 --> 00:36:22,630 Eu estou indo para adicionar um e "senão" Eu sou apenas indo para inicializá-lo para 1. 692 00:36:22,630 --> 00:36:23,880 "Linha (i)". 693 00:36:23,880 --> 00:36:26,920 694 00:36:26,920 --> 00:36:28,420 Faz sentido? 695 00:36:28,420 --> 00:36:30,180 >> Então, I calculada todas as matrizes. 696 00:36:30,180 --> 00:36:36,580 Então, agora tudo o que eu tenho que fazer para este é apenas "voltar priores, 697 00:36:36,580 --> 00:36:43,230 probabilidades e palavras. "Vamos ver se há algum, OK. 698 00:36:43,230 --> 00:36:45,690 Parece que tudo está funcionando até agora. 699 00:36:45,690 --> 00:36:46,900 Então, isso faz sentido? 700 00:36:46,900 --> 00:36:47,750 De alguma forma? 701 00:36:47,750 --> 00:36:49,280 OK. 702 00:36:49,280 --> 00:36:51,980 Então agora eu tenho todas as probabilidades. 703 00:36:51,980 --> 00:36:55,100 Então, agora a única coisa que me resta é só para ter aquela coisa que 704 00:36:55,100 --> 00:36:58,650 calcula o produto de todos os probabilidades quando eu chegar a letra. 705 00:36:58,650 --> 00:37:06,270 >> Então, vamos dizer que eu quero chamar agora esta função "classificar ()" eo 706 00:37:06,270 --> 00:37:08,880 coisa que função tem é apenas um argumento. 707 00:37:08,880 --> 00:37:13,170 Vamos dizer "Baby, eu estou no fogo" e é vai descobrir o que é o 708 00:37:13,170 --> 00:37:14,490 probabilidade de que este é Gaga? 709 00:37:14,490 --> 00:37:16,405 Qual é a probabilidade que este é Katie? 710 00:37:16,405 --> 00:37:19,690 Parece bom? 711 00:37:19,690 --> 00:37:25,750 Então, eu só vou ter que criar um nova função chamada "classificar ()" e 712 00:37:25,750 --> 00:37:29,180 isso vai levar algum letras também. 713 00:37:29,180 --> 00:37:31,790 714 00:37:31,790 --> 00:37:36,160 E além das letras que eu também tem que enviar os priores, o 715 00:37:36,160 --> 00:37:37,700 probabilidades e as palavras. 716 00:37:37,700 --> 00:37:44,000 Então eu vou mandar letras, priores, probabilidades, palavras. 717 00:37:44,000 --> 00:37:51,840 >> Então, isso está tomando letras, priores, probabilidades, palavras. 718 00:37:51,840 --> 00:37:53,530 Então, o que ele faz? 719 00:37:53,530 --> 00:37:57,180 É, basicamente, vai passar por tudo os possíveis candidatos que tenha 720 00:37:57,180 --> 00:37:58,510 tem como cantora. 721 00:37:58,510 --> 00:37:59,425 E onde estão os candidatos? 722 00:37:59,425 --> 00:38:01,020 Eles estão no priores, certo? 723 00:38:01,020 --> 00:38:02,710 Então, eu tenho todos aqueles lá. 724 00:38:02,710 --> 00:38:07,870 Então, eu vou ter um dicionário de todos os candidatos possíveis. 725 00:38:07,870 --> 00:38:14,220 E, em seguida, para cada candidato na priores, então isso significa que ele vai 726 00:38:14,220 --> 00:38:17,740 ser Gaga, Katie se eu tivesse mais seria mais. 727 00:38:17,740 --> 00:38:20,410 Vou começar a calcular esta probabilidade. 728 00:38:20,410 --> 00:38:28,310 A probabilidade, como vimos no PowerPoint é os tempos anteriores a 729 00:38:28,310 --> 00:38:30,800 produto de cada um dos outros probabilidades. 730 00:38:30,800 --> 00:38:32,520 >> Então eu posso fazer o mesmo aqui. 731 00:38:32,520 --> 00:38:36,330 Eu posso apenas fazer a probabilidade é inicialmente apenas o anterior. 732 00:38:36,330 --> 00:38:40,340 Assim antecedentes do candidato. 733 00:38:40,340 --> 00:38:40,870 Certo? 734 00:38:40,870 --> 00:38:45,360 E agora eu tenho que iterar sobre todo o palavras que eu tenho nas letras para ser 735 00:38:45,360 --> 00:38:48,820 capaz de adicionar a probabilidade para cada um deles, ok? 736 00:38:48,820 --> 00:38:57,900 Então, "por palavra nas letras" o que eu vou a fazer é, se a palavra está na 737 00:38:57,900 --> 00:39:01,640 "probabilidades (candidatos)", que significa que é uma palavra que o 738 00:39:01,640 --> 00:39:03,640 candidato tem em suas letras - 739 00:39:03,640 --> 00:39:05,940 por exemplo, "bebê" para Gaga - 740 00:39:05,940 --> 00:39:11,710 o que eu vou fazer é que o probabilidade vai ser multiplicada 741 00:39:11,710 --> 00:39:22,420 por 1 mais as probabilidades de o candidato para essa palavra. 742 00:39:22,420 --> 00:39:25,710 E isso é chamado de "palavra". 743 00:39:25,710 --> 00:39:32,440 Este dividido pelo número de palavras que eu tenho para esse candidato. 744 00:39:32,440 --> 00:39:37,450 O número total de palavras que eu tenho para o cantor que eu estou olhando. 745 00:39:37,450 --> 00:39:40,290 >> "Else". isso significa que é uma nova palavra por isso seria como por exemplo 746 00:39:40,290 --> 00:39:41,860 "Fogo" de Lady Gaga. 747 00:39:41,860 --> 00:39:45,760 Então, eu só quero fazer um sobre "Palavra (candidato)". 748 00:39:45,760 --> 00:39:47,710 Então eu não quero colocar este termo aqui. 749 00:39:47,710 --> 00:39:50,010 >> Por isso, vai ser basicamente copiando e colando este. 750 00:39:50,010 --> 00:39:54,380 751 00:39:54,380 --> 00:39:56,000 Mas eu vou apagar essa parte. 752 00:39:56,000 --> 00:39:57,610 Por isso, só vai ser 1 sobre isso. 753 00:39:57,610 --> 00:40:00,900 754 00:40:00,900 --> 00:40:02,150 Parece bom? 755 00:40:02,150 --> 00:40:03,980 756 00:40:03,980 --> 00:40:09,700 E agora, no final, eu só vou imprimir o nome do candidato e 757 00:40:09,700 --> 00:40:15,750 a probabilidade de que você tem de tendo a S em suas letras. 758 00:40:15,750 --> 00:40:16,200 Faz sentido? 759 00:40:16,200 --> 00:40:18,390 E eu, na verdade, nem sequer precisa deste dicionário. 760 00:40:18,390 --> 00:40:19,510 Faz sentido? 761 00:40:19,510 --> 00:40:21,810 >> Então, vamos ver se isso realmente funciona. 762 00:40:21,810 --> 00:40:24,880 Então, se eu executar isso, ele não funcionou. 763 00:40:24,880 --> 00:40:26,130 Espere um segundo. 764 00:40:26,130 --> 00:40:28,870 765 00:40:28,870 --> 00:40:31,720 "Palavras (candidatos)", "palavras (candidatos)", isso é 766 00:40:31,720 --> 00:40:33,750 o nome da matriz. 767 00:40:33,750 --> 00:40:41,435 OK Então, ele diz que há algum bug para o candidato em antecedentes. 768 00:40:41,435 --> 00:40:46,300 769 00:40:46,300 --> 00:40:48,760 Deixe-me apenas relaxar um pouco. 770 00:40:48,760 --> 00:40:50,360 OK. 771 00:40:50,360 --> 00:40:51,305 Vamos tentar. 772 00:40:51,305 --> 00:40:51,720 OK. 773 00:40:51,720 --> 00:40:58,710 >> Então dá Katy Perry tem este probabilidade de isso vezes 10 elevado a 774 00:40:58,710 --> 00:41:02,200 menos rubricas 7, e Gaga tem essa vezes 10 elevado a menos 6. 775 00:41:02,200 --> 00:41:05,610 Então você vê que mostra que Gaga tem uma maior probabilidade. 776 00:41:05,610 --> 00:41:09,260 Assim, "Baby, eu estou no fogo" é provavelmente uma canção Gaga. 777 00:41:09,260 --> 00:41:10,580 Faz sentido? 778 00:41:10,580 --> 00:41:12,030 Então é isso que nós fizemos. 779 00:41:12,030 --> 00:41:16,010 >> Este código vai ser publicado on-line, para que vocês possam conferir. 780 00:41:16,010 --> 00:41:20,720 Talvez use algumas delas para se você quiser fazer um projeto ou algo semelhante. 781 00:41:20,720 --> 00:41:22,150 OK. 782 00:41:22,150 --> 00:41:25,930 Este foi apenas para mostrar computacional que 783 00:41:25,930 --> 00:41:27,230 código lingüística parece. 784 00:41:27,230 --> 00:41:33,040 Mas agora vamos para mais material de alto nível. 785 00:41:33,040 --> 00:41:33,340 OK. 786 00:41:33,340 --> 00:41:35,150 >> Assim, os outros problemas que eu estava falando - 787 00:41:35,150 --> 00:41:37,550 o problema de segmentação é a primeira delas. 788 00:41:37,550 --> 00:41:40,820 Então você tem aqui japonesa. 789 00:41:40,820 --> 00:41:43,420 E então você vê que não há espaços. 790 00:41:43,420 --> 00:41:49,110 Portanto, esta é, basicamente, significa que ele é o topo da cadeira, certo? 791 00:41:49,110 --> 00:41:50,550 Você fala japonês? 792 00:41:50,550 --> 00:41:52,840 É o topo da cadeira, certo? 793 00:41:52,840 --> 00:41:54,480 >> ALUNO: Eu não sei o que o kanji ali é. 794 00:41:54,480 --> 00:41:57,010 >> LUCAS FREITAS: É [falando japonês] 795 00:41:57,010 --> 00:41:57,950 OK. 796 00:41:57,950 --> 00:42:00,960 Por isso basicamente significa cadeira de topo. 797 00:42:00,960 --> 00:42:03,620 Então, se você tivesse que colocar um espaço seria aqui. 798 00:42:03,620 --> 00:42:05,970 E então você tem [? Ueda-san. ?] 799 00:42:05,970 --> 00:42:09,040 O que basicamente significa Ueda. 800 00:42:09,040 --> 00:42:13,180 E você vê que "Ueda" e você tem um espaço e, em seguida, "san." Então você vê que 801 00:42:13,180 --> 00:42:15,470 aqui você "Ue" é como por si só. 802 00:42:15,470 --> 00:42:17,750 E aqui tem um caráter ao lado dele. 803 00:42:17,750 --> 00:42:21,720 >> Então não é como nas línguas caracteres que significam uma palavra dele para que você 804 00:42:21,720 --> 00:42:23,980 basta colocar um monte de espaços. 805 00:42:23,980 --> 00:42:25,500 Caracteres referem-se uns aos outros. 806 00:42:25,500 --> 00:42:28,680 E eles podem estar juntos como dois, três, um. 807 00:42:28,680 --> 00:42:34,520 Então, você realmente tem que criar algum tipo de forma de colocar esses espaços. 808 00:42:34,520 --> 00:42:38,850 >> E essa coisa é que sempre que você começa dados desses idiomas asiáticos, 809 00:42:38,850 --> 00:42:40,580 tudo vem unsegmented. 810 00:42:40,580 --> 00:42:45,940 Porque ninguém que escreve japonês ou chinês escreve com espaços. 811 00:42:45,940 --> 00:42:48,200 Sempre que você está escrevendo chinês, Japonês que você acabou de escrever tudo 812 00:42:48,200 --> 00:42:48,710 sem espaços. 813 00:42:48,710 --> 00:42:52,060 Não faz muito sentido para colocar espaços. 814 00:42:52,060 --> 00:42:57,960 Então quando você começa a partir de dados, alguns Idioma do Leste Asiático, se você quiser 815 00:42:57,960 --> 00:43:00,760 realmente fazer algo com isso você tem que primeiro segmento. 816 00:43:00,760 --> 00:43:05,130 >> Pense em fazer o exemplo de as letras, sem espaços. 817 00:43:05,130 --> 00:43:07,950 Assim, as únicas letras que você tem será sentenças, certo? 818 00:43:07,950 --> 00:43:09,470 Separados por pontos. 819 00:43:09,470 --> 00:43:13,930 Mas, então, ter apenas a sentença irá não realmente ajudar a dar informações 820 00:43:13,930 --> 00:43:17,760 de que essas letras são de. 821 00:43:17,760 --> 00:43:18,120 Certo? 822 00:43:18,120 --> 00:43:20,010 Portanto, você deve coloca espaços em primeiro lugar. 823 00:43:20,010 --> 00:43:21,990 Então, como você pode fazer isso? 824 00:43:21,990 --> 00:43:24,920 >> Então, em seguida, vem a idéia de uma língua modelo que é algo realmente 825 00:43:24,920 --> 00:43:26,870 importante para computacional lingüística. 826 00:43:26,870 --> 00:43:32,790 Assim, um modelo de linguagem é basicamente um tabela de probabilidades que mostra 827 00:43:32,790 --> 00:43:36,260 antes de tudo, qual é a probabilidade de ter a palavra em uma língua? 828 00:43:36,260 --> 00:43:39,590 Então, mostrando como uma palavra é freqüente. 829 00:43:39,590 --> 00:43:43,130 E, em seguida, também, mostrando a relação entre as palavras em uma frase. 830 00:43:43,130 --> 00:43:51,500 >> Assim, a idéia principal é que, se um estranho veio para você e disse uma frase para 831 00:43:51,500 --> 00:43:55,600 você, qual é a probabilidade de que, para exemplo, "esta é a minha irmã [? GTF"?] 832 00:43:55,600 --> 00:43:57,480 foi a frase que a pessoa disse? 833 00:43:57,480 --> 00:44:00,380 Então, obviamente, algumas frases são mais comuns do que outros. 834 00:44:00,380 --> 00:44:04,450 Por exemplo, "bom dia" ou "boa noite ", ou" hey lá, "é muito mais 835 00:44:04,450 --> 00:44:08,260 comum do que a maioria das sentenças que temos um Inglês. 836 00:44:08,260 --> 00:44:11,060 Então, por que essas frases mais freqüente? 837 00:44:11,060 --> 00:44:14,060 >> Antes de mais nada, é porque você tem palavras que são mais freqüentes. 838 00:44:14,060 --> 00:44:20,180 Assim, por exemplo, se você diz, o cão é grande, e que o cão é gigantesca, você 839 00:44:20,180 --> 00:44:23,880 geralmente provavelmente ouvir o cão é grande mais frequentemente, porque "grande" é mais 840 00:44:23,880 --> 00:44:27,260 freqüente em Inglês de "gigantesco". Assim, um dos 841 00:44:27,260 --> 00:44:30,100 coisas é a freqüência de palavras. 842 00:44:30,100 --> 00:44:34,490 >> A segunda coisa que é realmente importante é apenas o 843 00:44:34,490 --> 00:44:35,490 ordem das palavras. 844 00:44:35,490 --> 00:44:39,500 Assim, é comum dizer que "o gato está dentro da caixa. ", mas você geralmente não 845 00:44:39,500 --> 00:44:44,250 ver em "A caixa de dentro é o gato." assim você vê que há alguma importância 846 00:44:44,250 --> 00:44:46,030 na ordem das palavras. 847 00:44:46,030 --> 00:44:50,160 Você não pode simplesmente dizer que aqueles dois sentenças têm a mesma probabilidade 848 00:44:50,160 --> 00:44:53,010 só porque eles têm as mesmas palavras. 849 00:44:53,010 --> 00:44:55,550 Você realmente tem que cuidar sobre a ordem também. 850 00:44:55,550 --> 00:44:57,650 Faz sentido? 851 00:44:57,650 --> 00:44:59,490 >> Então, o que fazemos? 852 00:44:59,490 --> 00:45:01,550 Então, o que eu poderia tentar levá-lo? 853 00:45:01,550 --> 00:45:04,400 Estou tentando conseguir o que nós chamar os modelos n-gramas. 854 00:45:04,400 --> 00:45:09,095 Assim, os modelos n-gram basicamente assumir que, para cada palavra que 855 00:45:09,095 --> 00:45:10,960 você tem em uma frase. 856 00:45:10,960 --> 00:45:15,020 É a probabilidade de ter que palavra não depende não só do 857 00:45:15,020 --> 00:45:18,395 freqüência da palavra na língua, mas também em que as palavras 858 00:45:18,395 --> 00:45:19,860 estão ao seu redor. 859 00:45:19,860 --> 00:45:25,810 >> Assim, por exemplo, geralmente quando você vê algo como em ou pelo que você é 860 00:45:25,810 --> 00:45:28,040 provavelmente vai ver um substantivo depois, certo? 861 00:45:28,040 --> 00:45:31,750 Porque quando você tem uma preposição geralmente leva um substantivo depois dele. 862 00:45:31,750 --> 00:45:35,540 Ou se você tiver um verbo que é transitivo você geralmente vão 863 00:45:35,540 --> 00:45:36,630 ter um sintagma nominal. 864 00:45:36,630 --> 00:45:38,780 Por isso, vai ter um substantivo em algum lugar em torno dele. 865 00:45:38,780 --> 00:45:44,950 >> Então, basicamente, o que ele faz é que ele considera a probabilidade de ter 866 00:45:44,950 --> 00:45:47,960 palavras ao lado do outro, quando você está calculando o 867 00:45:47,960 --> 00:45:49,050 probabilidade de uma sentença. 868 00:45:49,050 --> 00:45:50,960 E é isso que a língua modelo é basicamente. 869 00:45:50,960 --> 00:45:54,620 Basta dizer qual é a probabilidade de ter uma específica 870 00:45:54,620 --> 00:45:57,120 sentença em uma língua? 871 00:45:57,120 --> 00:45:59,110 Então, por que é tão útil, basicamente? 872 00:45:59,110 --> 00:46:02,390 E antes de tudo o que é um modelo de n-gramas, então? 873 00:46:02,390 --> 00:46:08,850 >> Assim, um modelo de n-gramas significa que cada palavra depende da 874 00:46:08,850 --> 00:46:12,700 N próxima de menos 1 palavras. 875 00:46:12,700 --> 00:46:18,150 Então, basicamente, significa que se eu olhar, por exemplo, o TF CS50 quando 876 00:46:18,150 --> 00:46:21,500 Estou calculando a probabilidade de a frase, você vai ser como "o 877 00:46:21,500 --> 00:46:25,280 probabilidade de ter a palavra "a" vezes a probabilidade de ter o " 878 00:46:25,280 --> 00:46:31,720 CS50 "vezes a probabilidade de ter "O TF CS50." Então, basicamente, eu conto 879 00:46:31,720 --> 00:46:35,720 todas as formas possíveis de esticá-lo. 880 00:46:35,720 --> 00:46:41,870 >> E, então, geralmente quando você está fazendo isso, como em um projeto, você coloca N a ser 881 00:46:41,870 --> 00:46:42,600 um valor baixo. 882 00:46:42,600 --> 00:46:45,930 Então, geralmente têm bigramas ou trigramas. 883 00:46:45,930 --> 00:46:51,090 Assim que você acabou de contar duas palavras, uma grupo de duas palavras, ou três palavras, 884 00:46:51,090 --> 00:46:52,620 apenas para problemas de desempenho. 885 00:46:52,620 --> 00:46:56,395 E também porque, talvez, se você tem algo como "O TF CS50". Quando você 886 00:46:56,395 --> 00:47:00,510 ter "TF", é muito importante que "CS50" está ao lado dele, certo? 887 00:47:00,510 --> 00:47:04,050 Essas duas coisas são normalmente ao lado do outro. 888 00:47:04,050 --> 00:47:06,410 >> Se você pensar em "TF", é provavelmente vai ter que 889 00:47:06,410 --> 00:47:07,890 classe é TF'ing para. 890 00:47:07,890 --> 00:47:11,330 Também "a" é realmente importante para CS50 TF. 891 00:47:11,330 --> 00:47:14,570 Mas se você tem algo como "O CS50 TF fui para a aula e deram o seu 892 00:47:14,570 --> 00:47:20,060 estudantes alguns doces. "" Candy "e" a " não têm relação de verdade, certo? 893 00:47:20,060 --> 00:47:23,670 Eles estão tão distantes umas das outras que isso realmente não importa o que 894 00:47:23,670 --> 00:47:25,050 palavras que você tem. 895 00:47:25,050 --> 00:47:31,210 >> Então, fazendo um bigram ou um trigrama, ele Significa apenas que você está limitando 896 00:47:31,210 --> 00:47:33,430 se a algumas palavras que estão ao redor. 897 00:47:33,430 --> 00:47:35,810 Faz sentido? 898 00:47:35,810 --> 00:47:40,630 Então, quando você quer fazer segmentação, basicamente, o que você quer fazer é ver 899 00:47:40,630 --> 00:47:44,850 quais são todas as maneiras possíveis que você pode segmentar a frase. 900 00:47:44,850 --> 00:47:49,090 >> De tal forma que você vê o que é a probabilidade de cada uma das referidas frases 901 00:47:49,090 --> 00:47:50,880 existente na linguagem? 902 00:47:50,880 --> 00:47:53,410 Então, o que você faz é como, bem, vamos me tentar colocar um espaço aqui. 903 00:47:53,410 --> 00:47:55,570 Então você colocar um espaço lá e você vê o que é a 904 00:47:55,570 --> 00:47:57,590 probabilidade de que a sentença? 905 00:47:57,590 --> 00:48:00,240 Então você é como, OK, talvez que não era tão bom. 906 00:48:00,240 --> 00:48:03,420 Então eu coloquei um espaço lá e um espaço lá, e você calcular a 907 00:48:03,420 --> 00:48:06,240 probabilidade agora, e você vê que é uma probabilidade mais elevada. 908 00:48:06,240 --> 00:48:12,160 >> Portanto, este é um algoritmo chamado de TANGO algoritmo de segmentação, que é 909 00:48:12,160 --> 00:48:14,990 na verdade, algo que seria realmente legal para um projeto, que 910 00:48:14,990 --> 00:48:20,860 basicamente leva texto unsegmented que pode ser japonês ou chinês ou talvez 911 00:48:20,860 --> 00:48:26,080 Inglês sem espaços e tenta colocar espaços entre as palavras e ele faz 912 00:48:26,080 --> 00:48:29,120 que, ao utilizar um modelo de linguagem e tentando ver o que é o mais alto 913 00:48:29,120 --> 00:48:31,270 probabilidade você pode começar. 914 00:48:31,270 --> 00:48:32,230 OK. 915 00:48:32,230 --> 00:48:33,800 Portanto, esta é a segmentação. 916 00:48:33,800 --> 00:48:35,450 >> Agora sintaxe. 917 00:48:35,450 --> 00:48:40,940 Assim, a sintaxe está sendo usado para tantas coisas neste momento. 918 00:48:40,940 --> 00:48:44,880 Assim, por Graph Pesquisa, por Siri para praticamente qualquer tipo de recursos naturais 919 00:48:44,880 --> 00:48:46,490 processamento de linguagem que você tem. 920 00:48:46,490 --> 00:48:49,140 Então, quais são os importantes coisas sobre sintaxe? 921 00:48:49,140 --> 00:48:52,390 Assim, as sentenças em geral, têm o que chamamos de eleitores. 922 00:48:52,390 --> 00:48:57,080 Quais os tipo de como grupos de palavras que têm uma função na frase. 923 00:48:57,080 --> 00:49:02,220 E eles não podem realmente ser afastados uns dos outros. 924 00:49:02,220 --> 00:49:07,380 >> Então, se eu digo, por exemplo, "Lauren ama Milo. "Eu sei que" Lauren "é um 925 00:49:07,380 --> 00:49:10,180 constituinte e depois "amores Milo "é também outra. 926 00:49:10,180 --> 00:49:16,860 Porque você não pode dizer como "Lauren Milo ama "ter o mesmo significado. 927 00:49:16,860 --> 00:49:18,020 Não vai ter o mesmo significado. 928 00:49:18,020 --> 00:49:22,500 Ou eu não posso dizer como "Milo Lauren ama. "Nem tudo tem o mesmo 929 00:49:22,500 --> 00:49:25,890 significando com isso. 930 00:49:25,890 --> 00:49:31,940 >> Assim, as duas coisas mais importantes sobre sintaxe são os tipos lexicais que é 931 00:49:31,940 --> 00:49:35,390 basicamente a função que você tenho palavras por si mesmos. 932 00:49:35,390 --> 00:49:39,180 Então você tem que saber que "Lauren" e "Milo" são substantivos. 933 00:49:39,180 --> 00:49:41,040 "Love" é um verbo. 934 00:49:41,040 --> 00:49:45,660 E a segunda coisa importante é que eles são tipos frasais. 935 00:49:45,660 --> 00:49:48,990 Então você sabe que "ama Milo" é, na verdade, uma frase verbal. 936 00:49:48,990 --> 00:49:52,390 Então, quando eu digo "Lauren," Eu sei que Lauren está fazendo algo. 937 00:49:52,390 --> 00:49:53,620 O que ela está fazendo? 938 00:49:53,620 --> 00:49:54,570 Ela está amando Milo. 939 00:49:54,570 --> 00:49:56,440 Então é uma coisa toda. 940 00:49:56,440 --> 00:50:01,640 Mas os seus componentes são um substantivo e um verbo. 941 00:50:01,640 --> 00:50:04,210 Mas juntos, eles fazem uma frase verbal. 942 00:50:04,210 --> 00:50:08,680 >> Então, o que podemos realmente fazer com lingüística computacional? 943 00:50:08,680 --> 00:50:13,810 Então, se eu tiver alguma coisa, por exemplo, "amigos de Allison". Eu vejo se eu 944 00:50:13,810 --> 00:50:17,440 se uma árvore sintática eu gostaria de saber que "Amigos" é uma frase que é um substantivo 945 00:50:17,440 --> 00:50:21,480 substantivo e depois "de Allison" é um locução prepositiva em que "de" é 946 00:50:21,480 --> 00:50:24,810 uma proposição e "Allison" é um substantivo. 947 00:50:24,810 --> 00:50:30,910 O que eu poderia fazer é ensinar o meu computador que quando eu tenho um sintagma nominal e um 948 00:50:30,910 --> 00:50:33,080 em seguida, uma frase preposicional. 949 00:50:33,080 --> 00:50:39,020 Então, neste caso, "amigos" e depois "de Milo "Eu sei que isso significa que 950 00:50:39,020 --> 00:50:43,110 NP2, a segunda, possui NP1. 951 00:50:43,110 --> 00:50:47,680 >> Para que eu possa criar algum tipo de relação, algum tipo de função para ele. 952 00:50:47,680 --> 00:50:52,370 Assim, sempre que eu vejo essa estrutura, que corresponde exatamente com "amigos de 953 00:50:52,370 --> 00:50:56,030 Allison, "Eu sei que Allison detém os amigos. 954 00:50:56,030 --> 00:50:58,830 Assim, os amigos são algo que tem Allison. 955 00:50:58,830 --> 00:50:59,610 Faz sentido? 956 00:50:59,610 --> 00:51:01,770 Então, isso é basicamente o que Gráfico Pesquisa faz. 957 00:51:01,770 --> 00:51:04,360 Apenas cria regras para um monte de coisas. 958 00:51:04,360 --> 00:51:08,190 Assim, "amigos de Allison", "meus amigos que vivem em Cambridge "," meus amigos 959 00:51:08,190 --> 00:51:12,970 que vão para Harvard. "Ele cria regras para todas essas coisas. 960 00:51:12,970 --> 00:51:14,930 >> Agora tradução automática. 961 00:51:14,930 --> 00:51:18,850 Assim, a tradução automática também é algo estatística. 962 00:51:18,850 --> 00:51:21,340 E, na verdade, se você se envolver em lingüística computacional, um monte de 963 00:51:21,340 --> 00:51:23,580 o seu material vai ser estatísticas. 964 00:51:23,580 --> 00:51:26,670 Então, como eu estava fazendo o exemplo com um monte de probabilidades de que eu era 965 00:51:26,670 --> 00:51:30,540 cálculo, e então você começa a este número muito pequeno que é a final 966 00:51:30,540 --> 00:51:33,180 probabilidade, e é isso que dá-lhe a resposta. 967 00:51:33,180 --> 00:51:37,540 A tradução automática também usa um modelo estatístico. 968 00:51:37,540 --> 00:51:44,790 E se você quiser pensar em máquina tradução no mais simples possível 969 00:51:44,790 --> 00:51:48,970 forma, o que você pode pensar é apenas traduzir palavra por palavra, certo? 970 00:51:48,970 --> 00:51:52,150 >> Quando você está aprendendo um idioma para o primeira vez, que geralmente é o que 971 00:51:52,150 --> 00:51:52,910 você faz, certo? 972 00:51:52,910 --> 00:51:57,050 Se você quiser, traduzir uma frase no seu idioma para o idioma 973 00:51:57,050 --> 00:52:00,060 você está aprendendo, geralmente em primeiro lugar, você converter cada uma das palavras 974 00:52:00,060 --> 00:52:03,180 individualmente, e em seguida, tentar para colocar as palavras no lugar. 975 00:52:03,180 --> 00:52:07,100 >> Então, se eu queria traduzir este, [PORTUGUÊS LÍNGUA] 976 00:52:07,100 --> 00:52:10,430 que significa "o gato branco fugiu." Se eu quisesse traduzi-lo a partir de 977 00:52:10,430 --> 00:52:13,650 Português para Inglês, o que eu poderia fazer é, em primeiro lugar, eu só 978 00:52:13,650 --> 00:52:14,800 traduzir palavra por palavra. 979 00:52:14,800 --> 00:52:20,570 Assim, "o" é "a", "gato", "gato", "Branco", "branco", e então "Fugio" é 980 00:52:20,570 --> 00:52:21,650 "Fugiu". 981 00:52:21,650 --> 00:52:26,130 >> Então eu tenho todas as palavras aqui, mas eles não estão em ordem. 982 00:52:26,130 --> 00:52:29,590 É como "o gato branco fugiu" que é gramatical. 983 00:52:29,590 --> 00:52:34,490 Assim, então eu posso ter um segundo passo, que vai ser encontrar o ideal 984 00:52:34,490 --> 00:52:36,610 posição para cada uma das palavras. 985 00:52:36,610 --> 00:52:40,240 Então eu sei que eu realmente quero ter "Gato branco" em vez de "gato branco". Assim 986 00:52:40,240 --> 00:52:46,050 o que eu posso fazer é, o método mais ingênuo seria a criação de toda a 987 00:52:46,050 --> 00:52:49,720 permutações possíveis de palavras, de posições. 988 00:52:49,720 --> 00:52:53,300 E então ver qual deles tem o maior probabilidade de acordo 989 00:52:53,300 --> 00:52:54,970 para o meu modelo de linguagem. 990 00:52:54,970 --> 00:52:58,390 E então, quando eu encontrar o que tem a mais alta probabilidade de que, o que é 991 00:52:58,390 --> 00:53:01,910 provavelmente "o gato branco fugiu" essa é a minha tradução. 992 00:53:01,910 --> 00:53:06,710 >> E esta é uma maneira simples de explicar como um monte de tradução automática 993 00:53:06,710 --> 00:53:07,910 algoritmos funcionam. 994 00:53:07,910 --> 00:53:08,920 Será que isso faz sentido? 995 00:53:08,920 --> 00:53:12,735 Isso também é algo realmente emocionante que vocês podem explorar talvez por um 996 00:53:12,735 --> 00:53:13,901 projeto final, certo? 997 00:53:13,901 --> 00:53:15,549 >> ALUNO: Bem, você disse que era a maneira ingênua, então qual é 998 00:53:15,549 --> 00:53:17,200 a forma não ingênua? 999 00:53:17,200 --> 00:53:18,400 >> LUCAS FREITAS: A maneira não-ingênua? 1000 00:53:18,400 --> 00:53:19,050 OK. 1001 00:53:19,050 --> 00:53:22,860 Então a primeira coisa que é ruim sobre deste método é que eu só traduzido 1002 00:53:22,860 --> 00:53:24,330 palavras, palavra por palavra. 1003 00:53:24,330 --> 00:53:30,570 Mas às vezes você tem palavras que pode ter várias traduções. 1004 00:53:30,570 --> 00:53:32,210 Vou tentar pensar de alguma coisa. 1005 00:53:32,210 --> 00:53:37,270 Por exemplo, "manga" em lata Português quer ser "mangle" ou "manga". Assim 1006 00:53:37,270 --> 00:53:40,450 quando você está tentando traduzir palavra por palavra, pode-se dar-lhe 1007 00:53:40,450 --> 00:53:42,050 algo que não faz sentido. 1008 00:53:42,050 --> 00:53:45,770 >> Então, você realmente quer que você olhar para todos as possíveis traduções da 1009 00:53:45,770 --> 00:53:49,840 palavras e ver, em primeiro lugar, qual é a ordem. 1010 00:53:49,840 --> 00:53:52,000 Nós estávamos falando sobre permutando as coisas? 1011 00:53:52,000 --> 00:53:54,150 Para ver todas as ordens possíveis e escolher aquele com o maior 1012 00:53:54,150 --> 00:53:54,990 probabilidade? 1013 00:53:54,990 --> 00:53:57,860 Você também pode escolher todo o possível traduções para cada 1014 00:53:57,860 --> 00:54:00,510 palavra e, em seguida, ver - 1015 00:54:00,510 --> 00:54:01,950 combinado com as permutações - 1016 00:54:01,950 --> 00:54:03,710 qual deles tem a maior probabilidade. 1017 00:54:03,710 --> 00:54:08,590 >> Além disso, você também pode olhar para não apenas palavras, mas frases. 1018 00:54:08,590 --> 00:54:11,700 para que você possa analisar as relações entre as palavras e, em seguida, obter um 1019 00:54:11,700 --> 00:54:13,210 melhor tradução. 1020 00:54:13,210 --> 00:54:16,690 Também outra coisa, de modo que este semestre Na verdade, estou fazendo uma pesquisa em 1021 00:54:16,690 --> 00:54:19,430 Chinês-Inglês tradução automática, assim traduzindo 1022 00:54:19,430 --> 00:54:20,940 Chinês para o Inglês. 1023 00:54:20,940 --> 00:54:26,760 >> E uma coisa que fazemos é, além de utilizar um modelo estatístico, que é apenas 1024 00:54:26,760 --> 00:54:30,570 vendo as probabilidades de ver alguma posição em uma frase, eu sou 1025 00:54:30,570 --> 00:54:35,360 na verdade também adicionar um pouco de sintaxe para o meu modelo, dizendo: oh, se eu ver esse tipo 1026 00:54:35,360 --> 00:54:39,420 de construção, este é o que eu quero mudá-lo para quando eu traduzir. 1027 00:54:39,420 --> 00:54:43,880 Assim, você também pode adicionar algum tipo de elemento de sintaxe para fazer o 1028 00:54:43,880 --> 00:54:47,970 tradução mais eficiente e mais preciso. 1029 00:54:47,970 --> 00:54:48,550 OK. 1030 00:54:48,550 --> 00:54:51,010 >> Então, como você pode começar, se você quiser de fazer alguma coisa em computacional 1031 00:54:51,010 --> 00:54:51,980 lingüística? 1032 00:54:51,980 --> 00:54:54,560 >> Primeiro, você escolhe um projeto que envolve idiomas. 1033 00:54:54,560 --> 00:54:56,310 Assim, não há tantos por aí. 1034 00:54:56,310 --> 00:54:58,420 Há tantas coisas que você pode fazer. 1035 00:54:58,420 --> 00:55:00,510 E depois podemos pensar em um modelo que você pode usar. 1036 00:55:00,510 --> 00:55:04,710 Normalmente, isso significa que o pensamento de suposições, como, como, oh, quando eu era 1037 00:55:04,710 --> 00:55:05,770 como o pensamento das letras. 1038 00:55:05,770 --> 00:55:09,510 Eu era como, bem, se eu quero descobrir um que escreveu isso, eu provavelmente quer 1039 00:55:09,510 --> 00:55:15,400 olhar para as palavras da pessoa e usado ver quem usa essa palavra com muita freqüência. 1040 00:55:15,400 --> 00:55:18,470 Portanto, tente fazer suposições e tente pensar em modelos. 1041 00:55:18,470 --> 00:55:21,395 E então você também pode procurar on-line para o tipo de problema que você tem, 1042 00:55:21,395 --> 00:55:24,260 e ele vai sugerir para vocês modelos que talvez 1043 00:55:24,260 --> 00:55:26,560 modelado aquela coisa também. 1044 00:55:26,560 --> 00:55:29,080 >> E também você pode sempre enviar e-mail me. 1045 00:55:29,080 --> 00:55:31,140 me@lfreitas.com. 1046 00:55:31,140 --> 00:55:34,940 E eu só posso responder suas perguntas. 1047 00:55:34,940 --> 00:55:38,600 Podemos até mesmo pode se encontrar para que eu possa dar sugestões sobre as formas de 1048 00:55:38,600 --> 00:55:41,490 implementação de seu projeto. 1049 00:55:41,490 --> 00:55:45,610 E eu quero dizer, se você se envolver com lingüística computacional, ele vai 1050 00:55:45,610 --> 00:55:46,790 para ser grande. 1051 00:55:46,790 --> 00:55:48,370 Você vai ver que muito potencial. 1052 00:55:48,370 --> 00:55:52,060 E a indústria quer contratar você é tão ruim por causa disso. 1053 00:55:52,060 --> 00:55:54,720 Então, eu espero que vocês gostei. 1054 00:55:54,720 --> 00:55:57,030 Se vocês tem alguma dúvida, você pode me perguntar depois. 1055 00:55:57,030 --> 00:55:58,280 Mas obrigado. 1056 00:55:58,280 --> 00:56:00,150