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 Welkom iedereen. 4 00:00:09,980 --> 00:00:11,216 Mijn naam is Lucas Freitas. 5 00:00:11,216 --> 00:00:15,220 Ik ben een junior op de [onverstaanbaar] studeren informatica met een focus op 6 00:00:15,220 --> 00:00:16,410 computationele taalkunde. 7 00:00:16,410 --> 00:00:19,310 Dus mijn secundaire is in taal en taalkundige theorie. 8 00:00:19,310 --> 00:00:21,870 Ik ben echt opgewonden om jullie te leren een beetje over het veld. 9 00:00:21,870 --> 00:00:24,300 Het is een heel spannend gebied om te studeren. 10 00:00:24,300 --> 00:00:27,260 Ook met veel potentieel voor de toekomst. 11 00:00:27,260 --> 00:00:30,160 Dus, ik ben echt blij dat jullie overweegt projecten in 12 00:00:30,160 --> 00:00:31,160 computationele taalkunde. 13 00:00:31,160 --> 00:00:35,460 En ik zal meer dan gelukkig om te adviseren iemand van u als u besluit om 14 00:00:35,460 --> 00:00:37,090 streven een van die. 15 00:00:37,090 --> 00:00:40,010 >> Dus eerst wat computationele zijn taalkunde? 16 00:00:40,010 --> 00:00:44,630 Dus computationele taalkunde is de kruising tussen taalkunde en 17 00:00:44,630 --> 00:00:46,390 computer science. 18 00:00:46,390 --> 00:00:47,415 Dus, wat is taalkunde? 19 00:00:47,415 --> 00:00:48,490 Wat is informatica? 20 00:00:48,490 --> 00:00:51,580 Goed uit de taalkunde, wat we zijn de talen. 21 00:00:51,580 --> 00:00:54,960 Dus taalkunde is eigenlijk de studie van natuurlijke taal in het algemeen. 22 00:00:54,960 --> 00:00:58,330 Dus natuurlijke taal - we praten over taal die we eigenlijk gebruiken om 23 00:00:58,330 --> 00:00:59,770 met elkaar communiceren. 24 00:00:59,770 --> 00:01:02,200 Dus we zijn niet echt praten over C of Java. 25 00:01:02,200 --> 00:01:05,900 We praten meer over het Engels en Chinese en andere talen die we 26 00:01:05,900 --> 00:01:07,780 gebruiken voor communicatie met elkaar. 27 00:01:07,780 --> 00:01:12,470 >> De uitdagende ding over dat is dat nu hebben we bijna 7000 28 00:01:12,470 --> 00:01:14,260 talen in de wereld. 29 00:01:14,260 --> 00:01:19,520 Dus er zijn nogal hoog verscheidenheid van talen die we kunnen bestuderen. 30 00:01:19,520 --> 00:01:22,600 En dan denk je dat het waarschijnlijk zeer moeilijk te doen, bijvoorbeeld, 31 00:01:22,600 --> 00:01:26,960 vertaling van de ene taal naar de andere, gezien het feit dat je hebt 32 00:01:26,960 --> 00:01:28,240 bijna 7000 van hen. 33 00:01:28,240 --> 00:01:31,450 Dus, als je denkt aan het doen van de vertaling van de ene taal naar de andere u 34 00:01:31,450 --> 00:01:35,840 hebben bijna meer dan een miljoen verschillende combinaties die je kunt 35 00:01:35,840 --> 00:01:37,330 hebben van taal tot taal. 36 00:01:37,330 --> 00:01:40,820 Dus het is echt een uitdaging om wat te doen voor voorbeeld vertaalsysteem voor 37 00:01:40,820 --> 00:01:43,540 elke taal. 38 00:01:43,540 --> 00:01:47,120 >> Dus, taalkunde behandelt met syntax, semantiek, pragmatiek. 39 00:01:47,120 --> 00:01:49,550 Jullie niet precies nodig om te weten wat ze zijn. 40 00:01:49,550 --> 00:01:55,090 Maar de zeer interessante is dat als een native speaker, wanneer je leert 41 00:01:55,090 --> 00:01:59,010 taal als kind, je eigenlijk leren al die dingen - syntaxis semantiek 42 00:01:59,010 --> 00:02:00,500 en pragmatiek - 43 00:02:00,500 --> 00:02:01,430 door jezelf. 44 00:02:01,430 --> 00:02:04,820 En niemand hoeft u syntaxis voor leren u om te begrijpen hoe zinnen zijn 45 00:02:04,820 --> 00:02:05,290 gestructureerd. 46 00:02:05,290 --> 00:02:07,980 Dus, het is zeer interessant, omdat het is iets dat heel komt 47 00:02:07,980 --> 00:02:10,389 intuïtief. 48 00:02:10,389 --> 00:02:13,190 >> En wat bent u nemen van de informatica? 49 00:02:13,190 --> 00:02:16,700 Nou, het belangrijkste ding dat we hebben in de informatica is in de eerste 50 00:02:16,700 --> 00:02:19,340 alle, kunstmatige intelligentie en machine learning. 51 00:02:19,340 --> 00:02:22,610 Dus, wat we proberen te doen computationele taalkunde is teach 52 00:02:22,610 --> 00:02:26,990 uw computer hoe iets te doen met taal. 53 00:02:26,990 --> 00:02:28,630 >> Dus, bijvoorbeeld, in de machinebouw vertaling. 54 00:02:28,630 --> 00:02:32,490 Ik probeer te leren mijn computer hoe om te weten hoe de overgang van de ene 55 00:02:32,490 --> 00:02:33,310 taal naar de andere. 56 00:02:33,310 --> 00:02:35,790 Dus, eigenlijk willen lesgeven een computer twee talen. 57 00:02:35,790 --> 00:02:38,870 Als ik de natuurlijke taalverwerking, dat is bijvoorbeeld het geval van 58 00:02:38,870 --> 00:02:41,810 Facebook's Graph zoeken, je leren uw computer hoe om te begrijpen 59 00:02:41,810 --> 00:02:42,730 queries goed. 60 00:02:42,730 --> 00:02:48,130 >> Dus, als je zegt "de foto's van mijn vrienden. "Facebook is niet te behandelen dat 61 00:02:48,130 --> 00:02:51,130 gehele tekenreeks die moet gewoon een stel woorden. 62 00:02:51,130 --> 00:02:56,020 Ze begrijpt eigenlijk de relatie tussen "foto's" en "mijn vrienden" en 63 00:02:56,020 --> 00:02:59,620 begrijpt dat "foto's" zijn eigendom van "mijn vrienden." 64 00:02:59,620 --> 00:03:02,350 >> Dus, dat is een deel van, bijvoorbeeld, natuurlijke taalverwerking. 65 00:03:02,350 --> 00:03:04,790 Het probeert te begrijpen wat is de relatie tussen 66 00:03:04,790 --> 00:03:07,520 de woorden in een zin. 67 00:03:07,520 --> 00:03:11,170 En de grote vraag is, kunt u leren een computer hoe om te spreken 68 00:03:11,170 --> 00:03:12,650 een taal in het algemeen? 69 00:03:12,650 --> 00:03:17,810 Dat is een zeer interessante vraag om denken, alsof misschien in de toekomst 70 00:03:17,810 --> 00:03:19,930 je gaat om te kunnen overleg dan met uw mobiele telefoon. 71 00:03:19,930 --> 00:03:23,290 Zoiets als wat we met Siri, maar iets meer wilt, kun je eigenlijk 72 00:03:23,290 --> 00:03:25,690 zeggen wat je wilt en de telefoon gaat om alles te begrijpen. 73 00:03:25,690 --> 00:03:28,350 En het kan hebben follow-up vragen en blijven praten. 74 00:03:28,350 --> 00:03:30,880 Dat is iets heel spannend, in mijn mening. 75 00:03:30,880 --> 00:03:33,070 >> Dus, iets over natuurlijke talen. 76 00:03:33,070 --> 00:03:36,220 Iets heel interessants over natuurlijke talen is dat, en dit 77 00:03:36,220 --> 00:03:38,470 krediet aan mijn taalkunde professor, Maria Polinsky. 78 00:03:38,470 --> 00:03:40,830 Ze geeft een voorbeeld en ik denk het is echt interessant. 79 00:03:40,830 --> 00:03:47,060 Omdat we leren de taal van toen we zijn geboren en dan onze inheemse 80 00:03:47,060 --> 00:03:49,170 taal soort groeit op ons. 81 00:03:49,170 --> 00:03:52,570 >> En eigenlijk je taal te leren van minimale input, toch? 82 00:03:52,570 --> 00:03:56,700 Je bent gewoon je input van uw ouders van wat uw taal klinkt 83 00:03:56,700 --> 00:03:58,770 wilt en je gewoon leren. 84 00:03:58,770 --> 00:04:02,240 Dus, het is interessant, want als je kijkt van die zinnen, bijvoorbeeld. 85 00:04:02,240 --> 00:04:06,980 Je ziet, "Mary legt op een jas elke keer dat ze verlaat het huis. " 86 00:04:06,980 --> 00:04:10,650 >> In dit geval is het mogelijk om de woord "zij" verwijzen naar Mary, toch? 87 00:04:10,650 --> 00:04:13,500 Je kunt zeggen: "Maria legt op een jas elke keer als Mary verlaat de 88 00:04:13,500 --> 00:04:14,960 huis. "dus dat is prima. 89 00:04:14,960 --> 00:04:19,370 Maar dan als je kijkt naar de zin "Ze doet een jas elke keer Mary 90 00:04:19,370 --> 00:04:22,850 verlaat het huis. "je weet dat het onmogelijk om te zeggen dat "ze" is 91 00:04:22,850 --> 00:04:24,260 verwijzend naar Mary. 92 00:04:24,260 --> 00:04:27,070 >> Er is geen manier om te zeggen dat "Maria zet op een jas elke keer Mary verlaat 93 00:04:27,070 --> 00:04:30,790 het huis. "Dus het is interessant omdat dit is het soort van intuïtie 94 00:04:30,790 --> 00:04:32,890 dat elke native speaker heeft. 95 00:04:32,890 --> 00:04:36,370 En niemand werd geleerd dat dit de manier waarop de syntaxis werkt. 96 00:04:36,370 --> 00:04:41,930 En dat kun je alleen hebben dit "zij" verwijzend naar Maria in dit eerste geval, 97 00:04:41,930 --> 00:04:44,260 en eigenlijk in deze andere Ook, maar niet in deze. 98 00:04:44,260 --> 00:04:46,500 Maar iedereen soort van krijgt hetzelfde antwoord. 99 00:04:46,500 --> 00:04:48,580 Iedereen het eens over dat. 100 00:04:48,580 --> 00:04:53,280 Dus het is echt interessant hoe hoewel je weet niet alle regels 101 00:04:53,280 --> 00:04:55,575 in uw taal je soort van begrijpen hoe de taal werkt. 102 00:04:55,575 --> 00:04:59,020 103 00:04:59,020 --> 00:05:01,530 >> Dus het interessante ding over natuurlijke taal is dat je niet hoeft te 104 00:05:01,530 --> 00:05:06,970 weet elke syntax om te weten of een zin grammaticaal is of ongrammaticaal voor 105 00:05:06,970 --> 00:05:08,810 meeste gevallen. 106 00:05:08,810 --> 00:05:13,220 Die je doet denken dat misschien wat gebeurt is dat door je leven, je 107 00:05:13,220 --> 00:05:17,410 worden steeds meer en meer zinnen verteld aan u. 108 00:05:17,410 --> 00:05:19,800 En dan onthouden houden u alle zinnen. 109 00:05:19,800 --> 00:05:24,230 En dan wanneer iemand je vertelt iets, hoor je dat zin en 110 00:05:24,230 --> 00:05:27,040 je kijkt naar uw woordenschat van zinnen en kijk of 111 00:05:27,040 --> 00:05:28,270 die zin is er. 112 00:05:28,270 --> 00:05:29,830 En als het er u zeggen dat het grammaticale. 113 00:05:29,830 --> 00:05:31,740 Als het je niet zeggen dat het ongrammaticaal. 114 00:05:31,740 --> 00:05:35,150 >> Dus, in dat geval, zou je zeggen, oh, dus je hebt een enorme lijst van alle 115 00:05:35,150 --> 00:05:36,140 mogelijk zinnen. 116 00:05:36,140 --> 00:05:38,240 En dan wanneer je een zin te horen, u weten of het grammaticale of 117 00:05:38,240 --> 00:05:39,450 niet op basis van dat. 118 00:05:39,450 --> 00:05:42,360 Het ding is dat als je kijkt naar een zin, bijvoorbeeld "The 119 00:05:42,360 --> 00:05:47,540 vijfkoppige CS50 TFs gekookt blinden octopus met behulp van een DAPA mok. "Het is 120 00:05:47,540 --> 00:05:49,630 zeker niet een zin dat je eerder gehoord. 121 00:05:49,630 --> 00:05:52,380 Maar op hetzelfde moment dat u weet dat het vrij veel grammaticale, toch? 122 00:05:52,380 --> 00:05:55,570 Er zijn geen grammaticale fouten en je kunt zeggen dat 123 00:05:55,570 --> 00:05:57,020 het is een mogelijke straf. 124 00:05:57,020 --> 00:06:01,300 >> Dus het maakt ons denken dat eigenlijk de manier waarop we leren taal is niet alleen 125 00:06:01,300 --> 00:06:07,090 door het hebben van een enorme database van mogelijke woorden of zinnen, maar meer van 126 00:06:07,090 --> 00:06:11,490 begrip van de relatie tussen woorden die zinnen. 127 00:06:11,490 --> 00:06:14,570 Is dat logisch? 128 00:06:14,570 --> 00:06:19,370 Dus, dan is de vraag, kan computers talen leren? 129 00:06:19,370 --> 00:06:21,490 Kunnen we leren taal om computers? 130 00:06:21,490 --> 00:06:24,230 >> Dus, laten we denken aan het verschil tussen een native speaker van een taal 131 00:06:24,230 --> 00:06:25,460 en een computer. 132 00:06:25,460 --> 00:06:27,340 Dus, wat gebeurt er met de spreker? 133 00:06:27,340 --> 00:06:30,430 Nou, de native speaker leert een taal van de blootstelling aan het. 134 00:06:30,430 --> 00:06:34,200 Meestal zijn jaren de vroege kindertijd. 135 00:06:34,200 --> 00:06:38,570 Dus eigenlijk moet je gewoon een baby, en je blijven praten, en het 136 00:06:38,570 --> 00:06:40,540 alleen leert hoe om te spreken de taal, toch? 137 00:06:40,540 --> 00:06:42,660 Dus, bent u in principe geven input voor de baby. 138 00:06:42,660 --> 00:06:45,200 Zo is, dan kun je stellen dat een computer kan hetzelfde doen, toch? 139 00:06:45,200 --> 00:06:49,510 Je kunt gewoon de taal te geven als invoer voor de computer. 140 00:06:49,510 --> 00:06:53,410 >> Zoals bijvoorbeeld een bos van bestanden die boeken moeten in het Engels. 141 00:06:53,410 --> 00:06:56,190 Misschien is dat een manier waarop je zou kunnen leren een 142 00:06:56,190 --> 00:06:57,850 computer Engels, toch? 143 00:06:57,850 --> 00:07:01,000 En in feite, als je erover nadenkt, het kost je misschien een paar 144 00:07:01,000 --> 00:07:02,680 dagen om een ​​boek te lezen. 145 00:07:02,680 --> 00:07:05,760 Voor een computer duurt het een seconde om kijk naar alle woorden in een boek. 146 00:07:05,760 --> 00:07:10,810 Zo kunt u denken dat misschien net dit argument van de input van om je heen, 147 00:07:10,810 --> 00:07:15,440 dat is niet genoeg om te zeggen dat dat iets dat alleen mensen kunnen doen. 148 00:07:15,440 --> 00:07:17,680 U kunt hierbij denken computers Ook kan input te krijgen. 149 00:07:17,680 --> 00:07:21,170 >> Het tweede ding is dat native speakers ook een hersenen die is 150 00:07:21,170 --> 00:07:23,870 taalonderwijs vermogen. 151 00:07:23,870 --> 00:07:27,020 Maar als je erover nadenkt, een brein is een solide ding. 152 00:07:27,020 --> 00:07:30,450 Als je geboren bent, het is al ingesteld - 153 00:07:30,450 --> 00:07:31,320 dit is uw hersenen. 154 00:07:31,320 --> 00:07:34,660 En als je groot bent, krijg je alleen maar meer ingang van de taal en misschien voedingsstoffen 155 00:07:34,660 --> 00:07:35,960 en andere dingen. 156 00:07:35,960 --> 00:07:38,170 Maar vrij veel je hersenen is een solide ding. 157 00:07:38,170 --> 00:07:41,290 >> Dus je kunt zeggen, nou ja, misschien kunt u bouwen van een computer die een stelletje heeft 158 00:07:41,290 --> 00:07:45,890 functies en methoden die precies nabootsen taalonderwijs vermogen. 159 00:07:45,890 --> 00:07:49,630 Dus in die zin zou je kunnen zeggen, nou ja, ik een computer die alle heeft zijn 160 00:07:49,630 --> 00:07:52,270 dingen die ik moet leren. 161 00:07:52,270 --> 00:07:56,200 En het laatste wat is dat een native spreker leert van trial and error. 162 00:07:56,200 --> 00:08:01,090 Dus eigenlijk een ander belangrijk ding in het leren van talen is dat je soort 163 00:08:01,090 --> 00:08:05,340 dingen van leren door het maken van generalisaties van wat je hoort. 164 00:08:05,340 --> 00:08:10,280 >> Dus als je opgroeit leer je dat sommige woorden zijn meer als zelfstandige naamwoorden, 165 00:08:10,280 --> 00:08:11,820 sommige anderen zijn bijvoeglijke naamwoorden. 166 00:08:11,820 --> 00:08:14,250 En je hoeft niet aan een hebben kennis van de taalkunde 167 00:08:14,250 --> 00:08:15,040 te begrijpen dat. 168 00:08:15,040 --> 00:08:18,560 Maar je weet dat er een aantal woorden worden geplaatst in een deel van de 169 00:08:18,560 --> 00:08:22,570 zin en enkele anderen in andere delen van de zin. 170 00:08:22,570 --> 00:08:26,110 >> En dat wanneer je iets dat te doen als een zin die niet juist is - 171 00:08:26,110 --> 00:08:28,770 misschien omdat van een over generalisatie bijvoorbeeld. 172 00:08:28,770 --> 00:08:32,210 Misschien als je opgroeit, je merkt dat het meervoud meestal 173 00:08:32,210 --> 00:08:35,809 gevormd door het een S op het einde van het woord. 174 00:08:35,809 --> 00:08:40,042 En dan probeer je het meervoud van doen "Hert" als "herten" of "tand" als 175 00:08:40,042 --> 00:08:44,780 "Tooths." Dus dan je ouders of iemand die je corrigeert en zegt, nee, het 176 00:08:44,780 --> 00:08:49,020 meervoud van "hert" is "herten," en de meervoud van "tand" is "tanden." En dan 177 00:08:49,020 --> 00:08:50,060 je leert die dingen. 178 00:08:50,060 --> 00:08:51,520 Dus je leert van trial and error. 179 00:08:51,520 --> 00:08:53,100 >> Maar je kunt ook doen met een computer. 180 00:08:53,100 --> 00:08:55,310 U kunt iets geroepen hebben reinforcement learning. 181 00:08:55,310 --> 00:08:58,560 Die in feite is als het geven van een computer een beloning wanneer het doet 182 00:08:58,560 --> 00:08:59,410 iets correct. 183 00:08:59,410 --> 00:09:04,710 En waardoor het het tegenovergestelde van een beloning en wanneer het iets verkeerd doet. 184 00:09:04,710 --> 00:09:07,410 Je kunt echt zien dat als je Google Translate en je probeert 185 00:09:07,410 --> 00:09:10,220 vertalen van een zin, het vraagt ​​u om feedback. 186 00:09:10,220 --> 00:09:13,240 Dus als je zegt, oh, er is een betere vertaling voor deze zin. 187 00:09:13,240 --> 00:09:18,140 U kunt tijdens het typen en dan als er veel mensen blijven zeggen dat is een betere 188 00:09:18,140 --> 00:09:21,560 vertaling, het is gewoon leert dat het moet gebruiken in plaats van translatie 189 00:09:21,560 --> 00:09:22,960 de een was het geven. 190 00:09:22,960 --> 00:09:28,830 >> Dus, het is een heel filosofische vraag om te zien of computers zullen worden 191 00:09:28,830 --> 00:09:30,340 kunnen niet praten of in de toekomst. 192 00:09:30,340 --> 00:09:34,440 Maar ik heb goede hoop dat ze kunnen alleen op basis van deze argumenten. 193 00:09:34,440 --> 00:09:38,570 Maar het is gewoon meer van een filosofische vraag. 194 00:09:38,570 --> 00:09:43,460 >> Dus terwijl computers nog steeds niet kan praten, wat zijn de dingen die we kunnen doen? 195 00:09:43,460 --> 00:09:47,070 Sommige echt coole dingen zijn data classificatie. 196 00:09:47,070 --> 00:09:53,210 Dus, bijvoorbeeld, jullie weten dat e-maildiensten doen, want 197 00:09:53,210 --> 00:09:55,580 bijvoorbeeld spamfilters. 198 00:09:55,580 --> 00:09:59,070 Dus wanneer je spam ontvangt, probeert filteren andere doos. 199 00:09:59,070 --> 00:10:00,270 Hoe doet het dat? 200 00:10:00,270 --> 00:10:06,080 Het is niet zoals de computer weet precies wat e-mailadressen worden het versturen van spam. 201 00:10:06,080 --> 00:10:09,130 Dus het is meer gebaseerd op de inhoud van de boodschap, of misschien de titel of 202 00:10:09,130 --> 00:10:11,310 misschien wat patroon dat je hebt. 203 00:10:11,310 --> 00:10:15,690 >> Dus, in principe, wat je kunt doen is een veel gegevens van de e-mails die spam zijn, 204 00:10:15,690 --> 00:10:19,980 e-mails die geen spam zijn, en leren wat soort patronen die u in de 205 00:10:19,980 --> 00:10:21,000 degenen die spam zijn. 206 00:10:21,000 --> 00:10:23,260 En dit is een onderdeel van computationele taalkunde. 207 00:10:23,260 --> 00:10:24,720 Het heet data classificatie. 208 00:10:24,720 --> 00:10:28,100 En we eigenlijk gaan zien een voorbeeld dat de volgende dia. 209 00:10:28,100 --> 00:10:32,910 >> Het tweede ding is de natuurlijke taal verwerking die is het ding dat de 210 00:10:32,910 --> 00:10:36,580 Grafiek Zoek doet laten je schrijft een zin. 211 00:10:36,580 --> 00:10:38,690 En vertrouwt u begrijpt wat is de betekenis en geeft 212 00:10:38,690 --> 00:10:39,940 u een beter resultaat. 213 00:10:39,940 --> 00:10:43,880 Eigenlijk, als je naar Google of Bing en je hebt iets als Lady zoeken 214 00:10:43,880 --> 00:10:47,060 Gaga's hoogte, je eigenlijk aan de hand 5 '1 "in plaats van informatie 215 00:10:47,060 --> 00:10:50,170 van haar omdat het eigenlijk begrijpt waar je het over hebt. 216 00:10:50,170 --> 00:10:52,140 Dus dat is een deel van de natuurlijke taalverwerking. 217 00:10:52,140 --> 00:10:57,000 >> Of ook wanneer u gebruik maakt Siri, eerste heb je een algoritme dat probeert te 218 00:10:57,000 --> 00:11:01,130 vertalen wat je zegt in woorden, in tekst. 219 00:11:01,130 --> 00:11:03,690 En dan probeert te vertalen dat in betekenis. 220 00:11:03,690 --> 00:11:06,570 Dus dat is allemaal onderdeel van de natuurlijke taalverwerking. 221 00:11:06,570 --> 00:11:08,320 >> Dan heb je automatische vertaling - 222 00:11:08,320 --> 00:11:10,300 dat is eigenlijk een van mijn favorieten - 223 00:11:10,300 --> 00:11:14,060 die net is het vertalen van een taal naar de andere. 224 00:11:14,060 --> 00:11:17,950 Dus je kunt denken dat wanneer je doet machine translation, je hebt 225 00:11:17,950 --> 00:11:19,750 oneindige mogelijkheden van zinnen. 226 00:11:19,750 --> 00:11:22,960 Dus er is geen manier om alleen het opslaan elke vertaling. 227 00:11:22,960 --> 00:11:27,440 Dus je hebt om te komen met interessante algoritmen kunnen 228 00:11:27,440 --> 00:11:30,110 vertalen elke zin op een bepaalde manier. 229 00:11:30,110 --> 00:11:32,483 >> Jullie vragen tot nu toe? 230 00:11:32,483 --> 00:11:34,450 Nee? 231 00:11:34,450 --> 00:11:34,830 OK. 232 00:11:34,830 --> 00:11:36,900 >> Dus wat gaan we vandaag zien? 233 00:11:36,900 --> 00:11:39,300 Allereerst ga ik om te praten over de indeling probleem. 234 00:11:39,300 --> 00:11:41,440 Dus degene die ik was zeggen over spam. 235 00:11:41,440 --> 00:11:46,820 Wat ik ga doen is, gegeven lyrics een song, kunt u proberen te achterhalen 236 00:11:46,820 --> 00:11:49,810 met grote waarschijnlijkheid wie is de zanger? 237 00:11:49,810 --> 00:11:53,590 Laten we zeggen dat ik nummers van Lady Gaga en Katy Perry, als ik u een 238 00:11:53,590 --> 00:11:58,130 nieuwe song, kunt u uitzoeken of het is Katy Perry of Lady Gaga? 239 00:11:58,130 --> 00:12:01,490 >> De tweede, ik ben gewoon ga praten over de segmentatie probleem. 240 00:12:01,490 --> 00:12:05,780 Dus ik weet niet of jullie weten, maar Chinees, Japans, andere Oost-Aziatische 241 00:12:05,780 --> 00:12:08,090 talen en andere talen in het algemeen, niet over 242 00:12:08,090 --> 00:12:09,830 spaties tussen de woorden. 243 00:12:09,830 --> 00:12:13,540 En dan als je nadenkt over de manier waarop uw computer soort pogingen tot 244 00:12:13,540 --> 00:12:18,600 begrijpen natuurlijke taalverwerking, het ziet er op de woorden en 245 00:12:18,600 --> 00:12:21,500 probeert de relaties te begrijpen tussen hen, toch? 246 00:12:21,500 --> 00:12:25,440 Maar dan als je Chinees, en u hebben nul ruimten, het is echt moeilijk om te 247 00:12:25,440 --> 00:12:28,360 erachter te komen wat is de relatie tussen woorden, omdat ze geen hebben 248 00:12:28,360 --> 00:12:29,530 woorden op het eerste. 249 00:12:29,530 --> 00:12:32,600 Dus je moet iets te noemen doen segmentatie die net betekent het zetten 250 00:12:32,600 --> 00:12:36,490 spaties tussen wat we zouden noemen woorden in die talen. 251 00:12:36,490 --> 00:12:37,740 Zinvol? 252 00:12:37,740 --> 00:12:39,680 253 00:12:39,680 --> 00:12:41,540 >> En dan gaan we praten over syntax. 254 00:12:41,540 --> 00:12:44,050 Dus gewoon een beetje over natuurlijke taalverwerking. 255 00:12:44,050 --> 00:12:45,420 Het zal alleen een overzicht te zijn. 256 00:12:45,420 --> 00:12:50,700 Dus vandaag, eigenlijk wat ik wil doen is geven jullie een beetje een 257 00:12:50,700 --> 00:12:53,930 binnenzijde van wat de mogelijkheden dat je kunt doen met computationele 258 00:12:53,930 --> 00:12:54,960 taalkunde. 259 00:12:54,960 --> 00:13:00,410 En dan kun je zien wat je denkt is koel onder die dingen. 260 00:13:00,410 --> 00:13:02,270 En misschien kun je denken aan een project en kom met me praten. 261 00:13:02,270 --> 00:13:05,260 En ik kan u advies geven over hoe het te implementeren. 262 00:13:05,260 --> 00:13:09,060 >> Dus syntax gaat een beetje te zijn over Grafiek Search en machine 263 00:13:09,060 --> 00:13:09,670 vertaling. 264 00:13:09,670 --> 00:13:13,650 Ik ga gewoon een voorbeeld van hoe te geven je kan bijvoorbeeld, vertalen 265 00:13:13,650 --> 00:13:16,020 iets van Portugees naar Engels. 266 00:13:16,020 --> 00:13:17,830 Klinkt goed? 267 00:13:17,830 --> 00:13:19,293 >> Dus eerst, de indeling probleem. 268 00:13:19,293 --> 00:13:23,590 Ik zal zeggen dat dit deel van het seminar gaat de meest uitdagend 269 00:13:23,590 --> 00:13:27,560 men alleen maar omdat er gaat sommige codering zijn. 270 00:13:27,560 --> 00:13:29,470 Maar het gaat om Python zijn. 271 00:13:29,470 --> 00:13:34,380 Ik weet dat jullie niet weten Python, dus Ik ga gewoon uit te leggen aan de hoge 272 00:13:34,380 --> 00:13:35,750 niveau wat ik doe. 273 00:13:35,750 --> 00:13:40,900 En je hoeft niet echt zorgen te veel over de syntaxis, want dat is 274 00:13:40,900 --> 00:13:42,140 iets wat jullie kunnen leren. 275 00:13:42,140 --> 00:13:42,540 OK? 276 00:13:42,540 --> 00:13:43,580 Klinkt goed. 277 00:13:43,580 --> 00:13:46,020 >> Dus wat is de indeling probleem? 278 00:13:46,020 --> 00:13:49,140 Dus je krijgt een aantal teksten van een nummer en je wilt raden 279 00:13:49,140 --> 00:13:50,620 wie zingt het. 280 00:13:50,620 --> 00:13:54,045 En dit kan voor elk soort andere problemen. 281 00:13:54,045 --> 00:13:59,980 Zodat het kan worden, bijvoorbeeld, heb je een presidentiële campagne en je hebt een 282 00:13:59,980 --> 00:14:02,610 spraak, en je wilt weten uit als het was, bijvoorbeeld, 283 00:14:02,610 --> 00:14:04,470 Obama of Mitt Romney. 284 00:14:04,470 --> 00:14:07,700 Of u kunt een heleboel e-mails en u willen uitzoeken of ze 285 00:14:07,700 --> 00:14:08,890 spam is of niet. 286 00:14:08,890 --> 00:14:11,440 Dus het is gewoon classificeren sommige gegevens op basis van de woorden 287 00:14:11,440 --> 00:14:13,790 dat je hebt daar. 288 00:14:13,790 --> 00:14:16,295 >> Dus om dat te doen, moet je maken een aantal aannames. 289 00:14:16,295 --> 00:14:20,570 Dus veel over computationele taalkunde is het maken van aannames, 290 00:14:20,570 --> 00:14:24,100 meestal slimme aannames, zodat kunt u goede resultaten. 291 00:14:24,100 --> 00:14:26,670 Proberen om een ​​model voor het te creëren. 292 00:14:26,670 --> 00:14:31,290 En probeer het uit en kijk of het werkt, als het geeft je goede precisie. 293 00:14:31,290 --> 00:14:33,940 En als dat zo is, dan heb je proberen te verbeteren. 294 00:14:33,940 --> 00:14:37,640 Als het niet, je bent zoals, OK, misschien heb ik moet een andere veronderstelling. 295 00:14:37,640 --> 00:14:44,030 >> Dus de veronderstelling dat we gaan maken is dat een kunstenaar meestal zingt 296 00:14:44,030 --> 00:14:49,220 over een onderwerp meerdere keren, en misschien gebruikt woorden meerdere keren net 297 00:14:49,220 --> 00:14:50,270 omdat ze gewend. 298 00:14:50,270 --> 00:14:51,890 Je kunt gewoon denken van uw vriend. 299 00:14:51,890 --> 00:14:57,350 Ik weet zeker dat jullie allemaal vrienden dat hun handtekening zin zeggen, 300 00:14:57,350 --> 00:14:59,260 letterlijk voor elke zin - 301 00:14:59,260 --> 00:15:02,660 zoals sommige specifiek woord of een specifieke zin die ze zeggen voor 302 00:15:02,660 --> 00:15:04,020 elke zin. 303 00:15:04,020 --> 00:15:07,920 >> En wat je kan zeggen is dat als je een zin die een handtekening heeft 304 00:15:07,920 --> 00:15:11,450 uitdrukking, kun je raden dat waarschijnlijk je vriend is het 305 00:15:11,450 --> 00:15:13,310 men zeggen, toch? 306 00:15:13,310 --> 00:15:18,410 Zodat je die aanname en vervolgens dat is hoe je een model te creëren. 307 00:15:18,410 --> 00:15:24,440 >> Het voorbeeld dat ik ga geven is op hoe Lady Gaga, bijvoorbeeld mensen 308 00:15:24,440 --> 00:15:27,430 zeggen dat ze gebruik maakt van "Baby" voor al haar nummer een liedjes. 309 00:15:27,430 --> 00:15:32,270 En eigenlijk is dit een video die laat zien haar zeggen het woord "kind" voor 310 00:15:32,270 --> 00:15:33,410 verschillende nummers. 311 00:15:33,410 --> 00:15:33,860 >> [VIDEO AFSPELEN] 312 00:15:33,860 --> 00:15:34,310 >> - (ZINGEN) Baby. 313 00:15:34,310 --> 00:15:36,220 Baby. 314 00:15:36,220 --> 00:15:37,086 Baby. 315 00:15:37,086 --> 00:15:37,520 Baby. 316 00:15:37,520 --> 00:15:37,770 Baby. 317 00:15:37,770 --> 00:15:38,822 Babe. 318 00:15:38,822 --> 00:15:39,243 Baby. 319 00:15:39,243 --> 00:15:40,085 Baby. 320 00:15:40,085 --> 00:15:40,510 Baby. 321 00:15:40,510 --> 00:15:40,850 Baby. 322 00:15:40,850 --> 00:15:41,090 >> [EINDE VIDEOWEERGAVE- 323 00:15:41,090 --> 00:15:44,020 >> LUCAS FREITAS: Dus er zijn, denk ik, 40 liedjes hier, waarin ze zegt dat de 324 00:15:44,020 --> 00:15:48,690 woord "baby." Dus je kunt in principe raden dat als je een lied dat heeft 325 00:15:48,690 --> 00:15:52,180 het woord "baby," er is een aantal hoge waarschijnlijkheid dat het Lady Gaga. 326 00:15:52,180 --> 00:15:56,450 Maar laten we proberen om dit te ontwikkelen verder meer formeel. 327 00:15:56,450 --> 00:16:00,470 >> Dus dit zijn teksten van liedjes door Lady Gaga en Katy Perry. 328 00:16:00,470 --> 00:16:04,120 Dus je kijkt naar Lady Gaga, ze zien je hebben veel van de gebeurtenissen "baby", een 329 00:16:04,120 --> 00:16:07,710 veel van de gebeurtenissen van "way." En dan Katy Perry heeft een veel van de gebeurtenissen van 330 00:16:07,710 --> 00:16:10,360 "Het," veel van de gebeurtenissen van 'vuur'. 331 00:16:10,360 --> 00:16:14,560 >> Dus eigenlijk wat we willen doen is, je een songtekst te krijgen. 332 00:16:14,560 --> 00:16:20,480 Laten we zeggen dat je een songtekst voor een te krijgen song die "baby" gewoon "baby." Indien 333 00:16:20,480 --> 00:16:24,750 krijg je alleen maar het woord "baby" en dit is alle data die je hebt van 334 00:16:24,750 --> 00:16:27,880 Lady Gaga en Katy Perry, die zou u raden is de persoon 335 00:16:27,880 --> 00:16:29,370 die zingt het lied? 336 00:16:29,370 --> 00:16:32,360 Lady Gaga of Katy Perry? 337 00:16:32,360 --> 00:16:33,150 Lady Gaga, toch? 338 00:16:33,150 --> 00:16:37,400 Want zij is de enige die zegt "Baby." Dit klinkt stom, toch? 339 00:16:37,400 --> 00:16:38,760 OK, dit is echt makkelijk. 340 00:16:38,760 --> 00:16:41,860 Ik ben gewoon op zoek naar de twee liedjes en van Natuurlijk, ze is de enige die heeft 341 00:16:41,860 --> 00:16:42,660 "Baby." 342 00:16:42,660 --> 00:16:44,740 >> Maar wat als je een bos van woorden? 343 00:16:44,740 --> 00:16:50,900 Als je een echte lyric, iets als: "baby, ik 344 00:16:50,900 --> 00:16:51,610 ging naar een [zie? CFT?] 345 00:16:51,610 --> 00:16:54,020 lezing, "of iets dergelijks, en dan je eigenlijk moet uitzoeken - 346 00:16:54,020 --> 00:16:55,780 op basis van al die woorden - 347 00:16:55,780 --> 00:16:58,350 wie is de kunstenaar die waarschijnlijk zong dit lied? 348 00:16:58,350 --> 00:17:01,860 Dus laten we proberen te ontwikkelen dit een beetje verder. 349 00:17:01,860 --> 00:17:05,630 >> OK, dus gewoon gebaseerd op de gegevens die we kreeg, lijkt het erop dat Gaga is waarschijnlijk 350 00:17:05,630 --> 00:17:06,260 de zanger. 351 00:17:06,260 --> 00:17:07,904 Maar hoe kunnen we schrijven dit formeler? 352 00:17:07,904 --> 00:17:10,579 353 00:17:10,579 --> 00:17:13,140 En er gaat een beetje te zijn beetje statistiek. 354 00:17:13,140 --> 00:17:15,880 Dus als je de weg kwijt, gewoon proberen om het concept te begrijpen. 355 00:17:15,880 --> 00:17:18,700 Het maakt niet uit als je begrijpt de vergelijkingen heel goed. 356 00:17:18,700 --> 00:17:22,150 Dit is allemaal online te zijn. 357 00:17:22,150 --> 00:17:25,490 >> Dus eigenlijk wat ik de berekening is de kans dat dit nummer door 358 00:17:25,490 --> 00:17:28,040 Lady Gaga gezien het feit dat - 359 00:17:28,040 --> 00:17:30,660 dus deze bar betekent aangezien - 360 00:17:30,660 --> 00:17:33,680 Ik zag het woord "baby." Is dat logisch? 361 00:17:33,680 --> 00:17:35,540 Dus ik probeer te berekenen De kans. 362 00:17:35,540 --> 00:17:38,540 >> Dus er is deze stelling heet de Bayes theorema dat zegt dat de 363 00:17:38,540 --> 00:17:43,330 Een bepaalde waarschijnlijkheid B, is de waarschijnlijkheid B gegeven A, keer de 364 00:17:43,330 --> 00:17:47,660 waarschijnlijkheid van A, via waarschijnlijkheid B. Dit is een lang vergelijking. 365 00:17:47,660 --> 00:17:51,970 Maar wat je moet begrijpen van dat is dat dit is wat ik wil 366 00:17:51,970 --> 00:17:52,830 te berekenen, toch? 367 00:17:52,830 --> 00:17:56,570 Dus de kans dat song van Lady Gaga gezien het feit dat ik zag het woord 368 00:17:56,570 --> 00:17:58,230 "Baby." 369 00:17:58,230 --> 00:18:02,960 >> En nu, wat ik krijg is de waarschijnlijkheid van het woord "kind" gegeven 370 00:18:02,960 --> 00:18:04,390 dat ik Lady Gaga. 371 00:18:04,390 --> 00:18:07,220 En wat is dat eigenlijk? 372 00:18:07,220 --> 00:18:10,500 Wat dat betekent is, wat is de kans op het zien van het woord "kind" 373 00:18:10,500 --> 00:18:12,130 in Gaga teksten? 374 00:18:12,130 --> 00:18:16,240 Als ik wil berekenen dat in een zeer eenvoudige manier, het is gewoon het aantal 375 00:18:16,240 --> 00:18:23,640 keren dat ik zie "kindje" over het totale aantal woorden in Gaga teksten, toch? 376 00:18:23,640 --> 00:18:27,600 Wat is de frequentie die ik zie dat woord in Gaga's werk? 377 00:18:27,600 --> 00:18:30,530 Zinvol? 378 00:18:30,530 --> 00:18:33,420 >> De tweede term is de waarschijnlijkheid van Gaga. 379 00:18:33,420 --> 00:18:34,360 Wat betekent dat? 380 00:18:34,360 --> 00:18:38,550 Dat betekent in feite, wat is de waarschijnlijkheid van het classificeren 381 00:18:38,550 --> 00:18:40,690 sommige teksten als Gaga? 382 00:18:40,690 --> 00:18:45,320 En dat is een beetje raar, maar Laten we denken aan een voorbeeld. 383 00:18:45,320 --> 00:18:49,230 Dus laten we zeggen dat de kans op het hebben van "Baby" in een lied is hetzelfde 384 00:18:49,230 --> 00:18:51,760 voor Gaga en Britney Spears. 385 00:18:51,760 --> 00:18:54,950 Maar Britney Spears heeft twee keer meer liedjes dan Lady Gaga. 386 00:18:54,950 --> 00:19:00,570 Dus als iemand gewoon willekeurig geeft je songtekst van 'baby, "het eerste wat je 387 00:19:00,570 --> 00:19:04,710 kijken is, wat is de kans van het hebben van "Baby" in een Gaga lied, "Baby" 388 00:19:04,710 --> 00:19:05,410 in een Britney nummer? 389 00:19:05,410 --> 00:19:06,460 En het is hetzelfde. 390 00:19:06,460 --> 00:19:10,040 >> Dus het tweede ding dat je zult zien is, nou ja, wat is de kans op 391 00:19:10,040 --> 00:19:13,770 deze tekst op zichzelf als een Gaga lyric, en wat is de kans op 392 00:19:13,770 --> 00:19:15,380 zijnde een Britney songtekst? 393 00:19:15,380 --> 00:19:18,950 Dus omdat Britney heeft zoveel meer lyrics dan Gaga, zou je waarschijnlijk 394 00:19:18,950 --> 00:19:21,470 zeg, nou, dit is waarschijnlijk een Britney lyric. 395 00:19:21,470 --> 00:19:23,340 Dus dat is de reden waarom we hebben dit noemen hier. 396 00:19:23,340 --> 00:19:24,670 Waarschijnlijkheid van Gaga. 397 00:19:24,670 --> 00:19:26,950 Zinvol? 398 00:19:26,950 --> 00:19:28,660 Is dat zo? 399 00:19:28,660 --> 00:19:29,370 OK. 400 00:19:29,370 --> 00:19:33,500 >> En de laatste is net de kans "baby" die niet 401 00:19:33,500 --> 00:19:34,810 echt zo veel uit. 402 00:19:34,810 --> 00:19:39,940 Maar het is de kans op het zien van "Baby" in het Engels. 403 00:19:39,940 --> 00:19:42,725 We meestal niet schelen dat veel over die term. 404 00:19:42,725 --> 00:19:44,490 Is dat logisch? 405 00:19:44,490 --> 00:19:48,110 Dus de kans dat Gaga is genoemd voorafkans 406 00:19:48,110 --> 00:19:49,530 van de klasse Gaga. 407 00:19:49,530 --> 00:19:53,840 Want het betekent alleen dat, wat is de waarschijnlijkheid van het hebben van die klasse - 408 00:19:53,840 --> 00:19:55,520 dat is Gaga - 409 00:19:55,520 --> 00:19:59,350 gewoon in het algemeen, maar zonder voorwaarden. 410 00:19:59,350 --> 00:20:02,560 >> En toen heb ik kans op Gaga gegeven "baby," we noemen het plus 411 00:20:02,560 --> 00:20:06,160 Teary een kans, want het is de waarschijnlijkheid van 412 00:20:06,160 --> 00:20:08,300 Gaga gegeven enig bewijs. 413 00:20:08,300 --> 00:20:11,050 Dus ik geef u het bewijs dat zag ik het woord baby en 414 00:20:11,050 --> 00:20:12,690 het lied zinvol? 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 >> Dus als ik berekend dat voor elke van de nummers voor Lady Gaga, 418 00:20:22,400 --> 00:20:25,916 wat dat zou zijn - 419 00:20:25,916 --> 00:20:27,730 blijkbaar, ik kan dit niet bewegen. 420 00:20:27,730 --> 00:20:31,850 421 00:20:31,850 --> 00:20:36,920 De kans Gaga zal iets dergelijks, 2 meer dan 24 keer 1/2, 422 00:20:36,920 --> 00:20:38,260 meer dan 2 meer dan 53. 423 00:20:38,260 --> 00:20:40,640 Het maakt niet uit als je weet wat deze nummers vandaan komen. 424 00:20:40,640 --> 00:20:44,750 Maar het is gewoon een nummer dat gaat meer dan 0, toch? 425 00:20:44,750 --> 00:20:48,610 >> En toen ik doe Katy Perry, de waarschijnlijkheid "baby" gegeven Katy is 426 00:20:48,610 --> 00:20:49,830 al 0, toch? 427 00:20:49,830 --> 00:20:52,820 Omdat er geen "Baby" in Katy Perry. 428 00:20:52,820 --> 00:20:56,360 Dus dan wordt dit 0, en Gaga wint, waardoor Gaga 429 00:20:56,360 --> 00:20:57,310 waarschijnlijk de zanger. 430 00:20:57,310 --> 00:20:58,560 Is dat logisch? 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 >> Dus als ik wil dit nog officieel te maken, Ik kan eigenlijk doen een model 435 00:21:11,750 --> 00:21:12,700 voor meerdere woorden. 436 00:21:12,700 --> 00:21:14,610 Dus laten we zeggen dat ik iets als, "schatje, ik ben 437 00:21:14,610 --> 00:21:16,030 in brand, "of zoiets. 438 00:21:16,030 --> 00:21:17,760 Dus het heeft meerdere woorden. 439 00:21:17,760 --> 00:21:20,880 En in dit geval, kunt u zien dat "de baby" is in Gaga, 440 00:21:20,880 --> 00:21:21,710 maar het is niet in Katy. 441 00:21:21,710 --> 00:21:24,940 En "vuur" is in Katy, maar het is niet in Gaga, toch? 442 00:21:24,940 --> 00:21:27,200 Dus het wordt steeds lastiger, toch? 443 00:21:27,200 --> 00:21:31,440 Want het lijkt erop dat je bijna hebben een band tussen de twee. 444 00:21:31,440 --> 00:21:36,980 >> Dus wat je moet doen is veronderstellen onafhankelijkheid tussen de woorden. 445 00:21:36,980 --> 00:21:41,210 Dus eigenlijk wat dat betekent is dat Ik ben gewoon te berekenen wat de 446 00:21:41,210 --> 00:21:44,330 kans op het zien van "baby," wat is de kans op het zien van 'ik' en 447 00:21:44,330 --> 00:21:46,670 "Ben", en "on" en "vuur" allemaal afzonderlijk. 448 00:21:46,670 --> 00:21:48,670 Dan vermenigvuldig ik ze allemaal. 449 00:21:48,670 --> 00:21:52,420 En ik zie wat is de kans van het zien van de hele zin. 450 00:21:52,420 --> 00:21:55,210 Zinvol? 451 00:21:55,210 --> 00:22:00,270 >> Dus eigenlijk, als ik slechts een woord, wat ik wil weten is de arg max, 452 00:22:00,270 --> 00:22:05,385 wat betekent, wat is de klasse die geeft mij de grootste kans? 453 00:22:05,385 --> 00:22:10,010 Dus wat is de klasse die is het geven van me de hoogste waarschijnlijkheid voor 454 00:22:10,010 --> 00:22:11,940 waarschijnlijkheid van klasse gegeven woord. 455 00:22:11,940 --> 00:22:17,610 Dus in dit geval, Gaga gegeven "baby." Of Katy gegeven "baby." Zinvol? 456 00:22:17,610 --> 00:22:21,040 >> En net van Bayes, dat vergelijking die ik liet zien, 457 00:22:21,040 --> 00:22:24,780 we creëren deze fractie. 458 00:22:24,780 --> 00:22:28,750 Het enige ding is dat je ziet dat de waarschijnlijkheid van woord gegeven de 459 00:22:28,750 --> 00:22:31,370 klasse verandert afhankelijk van de klasse, toch? 460 00:22:31,370 --> 00:22:34,260 Het aantal "baby" s die ik heb in Gaga is verschillend van Katy. 461 00:22:34,260 --> 00:22:37,640 De waarschijnlijkheid van de klas ook veranderingen want het is gewoon het nummer 462 00:22:37,640 --> 00:22:39,740 liedjes elk van hen heeft. 463 00:22:39,740 --> 00:22:43,980 >> Maar de waarschijnlijkheid van het woord zelf zal hetzelfde zijn voor alle 464 00:22:43,980 --> 00:22:44,740 kunstenaars, toch? 465 00:22:44,740 --> 00:22:47,150 Dus de waarschijnlijkheid van het woord gewoon, wat is de kans op 466 00:22:47,150 --> 00:22:49,820 aangezien woord in de Engels taal? 467 00:22:49,820 --> 00:22:51,420 Dus het is hetzelfde voor hen allen. 468 00:22:51,420 --> 00:22:55,790 Dus omdat dit constant is, kunnen we alleen maar vallen deze en niet schelen. 469 00:22:55,790 --> 00:23:00,230 Dus dit ook daadwerkelijk zal worden de vergelijking die we zoeken. 470 00:23:00,230 --> 00:23:03,360 >> En als ik meerdere woorden, ik ben nog steeds het voorafgaande hebben 471 00:23:03,360 --> 00:23:04,610 kans hier. 472 00:23:04,610 --> 00:23:06,980 Het enige ding is dat ik te vermenigvuldigen de kans 473 00:23:06,980 --> 00:23:08,490 alle andere woorden. 474 00:23:08,490 --> 00:23:10,110 Dus ik ben vermenigvuldigen ze allemaal. 475 00:23:10,110 --> 00:23:12,610 Zinvol? 476 00:23:12,610 --> 00:23:18,440 Het ziet er raar maar in feite betekent, het berekenen van de prior van de klas, en 477 00:23:18,440 --> 00:23:22,100 dan vermenigvuldigen met de waarschijnlijkheid van elk van de woorden zijn in die klasse. 478 00:23:22,100 --> 00:23:24,620 479 00:23:24,620 --> 00:23:29,150 >> En je weet dat de kans op een woord gegeven een klasse gaat worden de 480 00:23:29,150 --> 00:23:34,520 aantal keren zie je dat woord in deze klasse, gedeeld door het aantal 481 00:23:34,520 --> 00:23:37,020 woorden die u in dat klasse in het algemeen. 482 00:23:37,020 --> 00:23:37,990 Zinvol? 483 00:23:37,990 --> 00:23:41,680 Het is gewoon hoe "kindje" was 2 over het aantal woorden dat 484 00:23:41,680 --> 00:23:43,020 Ik had in de teksten. 485 00:23:43,020 --> 00:23:45,130 Dus gewoon de frequentie. 486 00:23:45,130 --> 00:23:46,260 >> Maar er is een ding. 487 00:23:46,260 --> 00:23:51,250 Herinner me hoe ik liet zien dat de waarschijnlijkheid "baby" zijn lyrics 488 00:23:51,250 --> 00:23:56,350 van Katy Perry is 0 gewoon omdat Katy Perry heeft "kindje" niet helemaal? 489 00:23:56,350 --> 00:24:04,900 Maar het klinkt een beetje hard om gewoon gewoon zeggen dat teksten niet kan worden van 490 00:24:04,900 --> 00:24:10,040 een kunstenaar alleen maar omdat ze niet hebben dat woord in het bijzonder op elk moment. 491 00:24:10,040 --> 00:24:13,330 >> Dus je zou gewoon zeggen, nou, als je doe dit woord niet, ik ga 492 00:24:13,330 --> 00:24:15,640 geven u een lagere kans, maar ik ben gewoon niet van plan om 493 00:24:15,640 --> 00:24:17,420 geef je 0 meteen. 494 00:24:17,420 --> 00:24:21,040 Want misschien was het iets als, "Brand, brand, brand, brand," dat is 495 00:24:21,040 --> 00:24:21,990 helemaal Katy Perry. 496 00:24:21,990 --> 00:24:26,060 En dan "baby" en het gaat gewoon om 0 meteen omdat er was een 497 00:24:26,060 --> 00:24:27,250 "Baby." 498 00:24:27,250 --> 00:24:31,440 >> Dus eigenlijk wat we doen is iets riep Laplace smoothing. 499 00:24:31,440 --> 00:24:36,260 En dit betekent gewoon dat ik geef sommige waarschijnlijkheid zelfs de woorden 500 00:24:36,260 --> 00:24:37,850 die niet bestaan. 501 00:24:37,850 --> 00:24:43,170 Dus wat ik doe is dat wanneer ik ben de berekening van dit, heb ik altijd voeg 1 tot 502 00:24:43,170 --> 00:24:44,180 de teller. 503 00:24:44,180 --> 00:24:48,060 Dus zelfs als het woord niet bestaat, in dit geval, als deze is 0, ik ben nog steeds 504 00:24:48,060 --> 00:24:51,250 berekenen dit als 1 over de totaal aantal woorden. 505 00:24:51,250 --> 00:24:55,060 Anders krijg ik hoeveel woorden Ik heb en ik voeg 1. 506 00:24:55,060 --> 00:24:58,300 Dus ik reken voor beide gevallen. 507 00:24:58,300 --> 00:25:00,430 Zinvol? 508 00:25:00,430 --> 00:25:03,060 >> Dus laten we nu eens doen wat codering. 509 00:25:03,060 --> 00:25:06,440 Ik ga te hebben om het vrij snel te doen, maar het is gewoon belangrijk dat je 510 00:25:06,440 --> 00:25:08,600 jongens begrijpen van de concepten. 511 00:25:08,600 --> 00:25:13,450 Dus wat we proberen te doen is dit precies uit te voeren 512 00:25:13,450 --> 00:25:14,330 wat ik net zei - 513 00:25:14,330 --> 00:25:19,110 Ik wil dat je teksten uit zetten Lady Gaga en Katy Perry. 514 00:25:19,110 --> 00:25:22,980 En het programma zal in staat zijn om zeggen of deze nieuwe tekst komt uit Gaga 515 00:25:22,980 --> 00:25:24,170 of Katy Perry. 516 00:25:24,170 --> 00:25:25,800 Zinvol? 517 00:25:25,800 --> 00:25:27,530 OK. 518 00:25:27,530 --> 00:25:30,710 >> Dus ik heb dit programma ga ik naar classify.py bellen. 519 00:25:30,710 --> 00:25:31,970 Dus dit is Python. 520 00:25:31,970 --> 00:25:34,210 Het is een nieuwe programmeertaal. 521 00:25:34,210 --> 00:25:38,020 Het is zeer vergelijkbaar in sommige manieren C en PHP. 522 00:25:38,020 --> 00:25:43,180 Het is vergelijkbaar, want als je wilt leren Python na het kennen van C, het is 523 00:25:43,180 --> 00:25:46,270 echt niet zo veel van een uitdaging gewoon omdat Python is veel gemakkelijker 524 00:25:46,270 --> 00:25:47,520 dan C, beginnen. 525 00:25:47,520 --> 00:25:49,370 En een heleboel dingen zijn al geïmplementeerd voor u. 526 00:25:49,370 --> 00:25:56,820 Dus hoe zoals PHP heeft functies die sorteren van een lijst of voeg iets 527 00:25:56,820 --> 00:25:58,780 een array, of blah, blah, blah. 528 00:25:58,780 --> 00:26:00,690 Python heeft al die ook. 529 00:26:00,690 --> 00:26:05,960 >> Dus ik ga gewoon snel uitleggen hoe we de indeling konden doen 530 00:26:05,960 --> 00:26:07,860 probleem voor hier. 531 00:26:07,860 --> 00:26:13,230 Dus laten we zeggen dat in dit geval, ik heb lyrische gedichten van Gaga en Katy Perry. 532 00:26:13,230 --> 00:26:21,880 De manier waarop ik die teksten is dat het eerste woord van de tekst is 533 00:26:21,880 --> 00:26:25,250 de naam van de kunstenaar, en de rest is de teksten. 534 00:26:25,250 --> 00:26:29,470 Dus laten we zeggen dat ik deze lijst in waarvan de eerste is lyrics by Gaga. 535 00:26:29,470 --> 00:26:31,930 Dus hier ben ik op het juiste spoor. 536 00:26:31,930 --> 00:26:35,270 En de volgende is Katy, en het heeft ook de teksten. 537 00:26:35,270 --> 00:26:38,040 >> Dus dit is hoe verklaart u een variabele in Python. 538 00:26:38,040 --> 00:26:40,200 Je hoeft niet om het type gegevens te geven. 539 00:26:40,200 --> 00:26:43,150 Je schrijft gewoon "lyrics" soort graag in PHP. 540 00:26:43,150 --> 00:26:44,890 Zinvol? 541 00:26:44,890 --> 00:26:47,770 >> Dus wat zijn de dingen die ik moet berekenen kunnen berekenen 542 00:26:47,770 --> 00:26:49,360 waarschijnlijkheden? 543 00:26:49,360 --> 00:26:55,110 Ik moet de "prior" bereken van elk van de verschillende 544 00:26:55,110 --> 00:26:56,710 klassen die ik heb. 545 00:26:56,710 --> 00:27:06,680 Ik moet de "posteriors," bereken of vrijwel de waarschijnlijkheid van 546 00:27:06,680 --> 00:27:12,150 elk van de verschillende woorden Ik kan hebben voor elke kunstenaar. 547 00:27:12,150 --> 00:27:17,210 Dus binnen Gaga, bijvoorbeeld, ik ga om een ​​lijst van hoe vaak ik zien 548 00:27:17,210 --> 00:27:19,250 elk van de woorden. 549 00:27:19,250 --> 00:27:20,760 Zinvol? 550 00:27:20,760 --> 00:27:25,370 >> En tot slot, ik ga gewoon naar een lijst met de naam "woorden" die net gaat 551 00:27:25,370 --> 00:27:29,780 om hoeveel woorden ik have voor elke kunstenaar. 552 00:27:29,780 --> 00:27:33,760 Dus voor Gaga, bijvoorbeeld, als ik kijk om de teksten, ik had, denk ik, 24 553 00:27:33,760 --> 00:27:34,750 woorden in totaal. 554 00:27:34,750 --> 00:27:38,970 Dus deze lijst is gewoon te hebben Gaga 24 en Katy ander nummer. 555 00:27:38,970 --> 00:27:40,130 Zinvol? 556 00:27:40,130 --> 00:27:40,560 OK. 557 00:27:40,560 --> 00:27:42,530 >> Dus nu, eigenlijk, laten we naar de codering. 558 00:27:42,530 --> 00:27:45,270 Dus in Python, kun je eigenlijk terug een bos van verschillende 559 00:27:45,270 --> 00:27:46,630 dingen van een functie. 560 00:27:46,630 --> 00:27:50,810 Dus ga ik deze functie te creëren genaamd "voorwaardelijk," die gaat 561 00:27:50,810 --> 00:27:53,890 om al die dingen terug te keren, de "Strafblad" de "waarschijnlijkheid," en de 562 00:27:53,890 --> 00:28:05,690 "Woorden." Dus "voorwaardelijk", en het is zal worden ter discussie "lyrics." 563 00:28:05,690 --> 00:28:11,510 >> Dus nu wil ik dat je eigenlijk schrijf deze functie. 564 00:28:11,510 --> 00:28:17,750 Dus de manier waarop ik dit kan schrijven functie is dat ik alleen deze gedefinieerd 565 00:28:17,750 --> 00:28:20,620 werken met "def". Dus ik deed "def voorwaardelijk, "en het neemt 566 00:28:20,620 --> 00:28:28,700 "Lyrics." En wat dit gaat doen wordt, in de eerste plaats, ik heb mijn strafblad 567 00:28:28,700 --> 00:28:31,030 dat ik wil berekenen. 568 00:28:31,030 --> 00:28:34,330 >> Dus de manier dat ik dit kan doen is het creëren een woordenboek in Python, waarin 569 00:28:34,330 --> 00:28:37,320 is vrijwel hetzelfde als een hash tafel, of het is als een iteratief 570 00:28:37,320 --> 00:28:40,480 array in PHP. 571 00:28:40,480 --> 00:28:44,150 Dit is hoe ik verklaar een woordenboek. 572 00:28:44,150 --> 00:28:53,580 En eigenlijk wat dit betekent is dat priors van Gaga is 0,5, bijvoorbeeld als 573 00:28:53,580 --> 00:28:57,200 50% van de tekst komt uit Gaga, 50% zijn van Katy. 574 00:28:57,200 --> 00:28:58,450 Zinvol? 575 00:28:58,450 --> 00:29:00,680 576 00:29:00,680 --> 00:29:03,680 Dus ik moet uitzoeken hoe aan de priors berekenen. 577 00:29:03,680 --> 00:29:07,120 >> De volgende degenen die ik moet doen, ook, zijn de kansen en de woorden. 578 00:29:07,120 --> 00:29:17,100 Dus de waarschijnlijkheid van Gaga is de lijst alle waarschijnlijkheden die ik 579 00:29:17,100 --> 00:29:19,160 hebben voor elk van de woorden Gaga. 580 00:29:19,160 --> 00:29:23,880 Dus als ik naar waarschijnlijkheid van Gaga "Baby," bijvoorbeeld, het zal mij 581 00:29:23,880 --> 00:29:28,750 zoiets als 2 op 24 in dat geval. 582 00:29:28,750 --> 00:29:30,070 Zinvol? 583 00:29:30,070 --> 00:29:36,120 Dus ik ga naar "waarschijnlijkheden," ga naar de "Gaga" emmer die een lijst van alle heeft 584 00:29:36,120 --> 00:29:40,550 de Gaga woorden, dan ga ik naar "baby" en ik zie de kans. 585 00:29:40,550 --> 00:29:45,940 >> En tenslotte heb ik dit "Woorden" woordenboek. 586 00:29:45,940 --> 00:29:53,620 Dus hier, "waarschijnlijkheden." En dan "Woorden." Dus als ik doe "woorden", "Gaga," 587 00:29:53,620 --> 00:29:58,330 wat er gaat gebeuren is dat het gaat me 24 te geven, te zeggen dat ik 588 00:29:58,330 --> 00:30:01,990 hebben 24 woorden in teksten van Gaga. 589 00:30:01,990 --> 00:30:04,110 Zinvol? 590 00:30:04,110 --> 00:30:07,070 Dus hier, "woorden" is gelijk aan dah-dah-dah. 591 00:30:07,070 --> 00:30:07,620 OK 592 00:30:07,620 --> 00:30:12,210 >> Dus wat ik ga doen is ik ga itereren over elk van de teksten, dus 593 00:30:12,210 --> 00:30:14,490 elk van de snaren die Ik heb in de lijst. 594 00:30:14,490 --> 00:30:18,040 En ik ga die dingen te berekenen voor elke kandidaat. 595 00:30:18,040 --> 00:30:19,950 Zinvol? 596 00:30:19,950 --> 00:30:21,700 Dus ik moet een doen voor lus. 597 00:30:21,700 --> 00:30:26,300 >> Dus in Python wat ik kan doen is "voor lijn in teksten. "Hetzelfde als een 598 00:30:26,300 --> 00:30:28,000 "Voor elk" statement in PHP. 599 00:30:28,000 --> 00:30:33,420 Weet je nog hoe het was als PHP ik kon zeggen "voor elk teksten als 600 00:30:33,420 --> 00:30:35,220 lijn. "Zinvol? 601 00:30:35,220 --> 00:30:38,900 Dus ik ben het nemen van elk van de lijnen, in dit geval deze string en de volgende 602 00:30:38,900 --> 00:30:44,540 snaar zodat voor elk van de lijnen wat ik gaan doen, is het eerste, ik ga 603 00:30:44,540 --> 00:30:49,150 splitsen deze lijn in een lijst van woorden gescheiden door spaties. 604 00:30:49,150 --> 00:30:53,730 >> Zodat de koele ding over Python is dat je kon gewoon Google als "hoe kan ik 605 00:30:53,730 --> 00:30:58,220 split een string in woorden? "En de ga u vertellen hoe dat te doen. 606 00:30:58,220 --> 00:31:04,890 En de manier om het te doen, het is gewoon "lijn = Line.split () 'en het is eigenlijk 607 00:31:04,890 --> 00:31:08,640 ga u een lijst met elk van de woorden hier. 608 00:31:08,640 --> 00:31:09,620 Zinvol? 609 00:31:09,620 --> 00:31:15,870 Dus nu dat ik dat deed ik wil weten wie is de zanger van dat lied. 610 00:31:15,870 --> 00:31:20,130 En om dat te doen ik moet alleen de krijgen eerste element van de array, toch? 611 00:31:20,130 --> 00:31:26,390 Dus ik kan alleen zeggen dat ik "zanger = Lijn (0) "Zinvol? 612 00:31:26,390 --> 00:31:32,010 >> En wat ik moet doen is in de eerste Alle, ik ga updaten hoeveel 613 00:31:32,010 --> 00:31:36,130 woorden die ik heb onder "Gaga." dus ik ben gewoon gaan berekenen hoeveel woorden ik 614 00:31:36,130 --> 00:31:38,690 hebben in deze lijst, toch? 615 00:31:38,690 --> 00:31:41,910 Want dit is hoeveel woorden ik heb in de teksten en ik ga gewoon 616 00:31:41,910 --> 00:31:44,120 toevoegen aan de "Gaga" array. 617 00:31:44,120 --> 00:31:47,090 Is dat logisch? 618 00:31:47,090 --> 00:31:49,010 Niet te veel focussen op de syntaxis. 619 00:31:49,010 --> 00:31:50,430 Denk meer over de concepten. 620 00:31:50,430 --> 00:31:52,400 Dat is het belangrijkste onderdeel. 621 00:31:52,400 --> 00:31:52,720 OK. 622 00:31:52,720 --> 00:32:00,260 >> Dus wat ik kan doen is als "Gaga" is reeds in die lijst, dus "als zanger in 623 00:32:00,260 --> 00:32:03,190 woorden ", wat betekent dat ik al hebben woorden door Gaga. 624 00:32:03,190 --> 00:32:06,640 Ik wil gewoon de extra toe te voegen woorden om dat. 625 00:32:06,640 --> 00:32:15,810 Dus wat ik doe is 'woorden (zanger) + = Len (lijn) - 1 ". 626 00:32:15,810 --> 00:32:18,250 En dan kan ik gewoon de lengte van de lijn. 627 00:32:18,250 --> 00:32:21,860 Dus hoeveel elementen I hebben de array. 628 00:32:21,860 --> 00:32:27,060 En ik moet doen minus 1, alleen maar omdat het eerste element van de array slechts 629 00:32:27,060 --> 00:32:29,180 een zanger en dat zijn geen teksten. 630 00:32:29,180 --> 00:32:31,420 Zinvol? 631 00:32:31,420 --> 00:32:32,780 OK. 632 00:32:32,780 --> 00:32:35,820 >> "Anders," het betekent dat ik wil eigenlijk Steek Gaga in de lijst. 633 00:32:35,820 --> 00:32:45,990 Dus ik gewoon doen "woorden (zanger) = Len (lijn) - 1, "sorry. 634 00:32:45,990 --> 00:32:49,200 Dus de enige verschil tussen de twee lijnen dat dit het niet 635 00:32:49,200 --> 00:32:51,080 Er bestaan ​​nog, dus ik ben gewoon initialiseren. 636 00:32:51,080 --> 00:32:53,820 Dit degene die ik ben eigenlijk te voegen. 637 00:32:53,820 --> 00:32:55,570 OK. 638 00:32:55,570 --> 00:32:59,480 Dus werd deze toe te voegen aan woorden. 639 00:32:59,480 --> 00:33:03,040 >> Nu wil ik toevoegen aan de priors. 640 00:33:03,040 --> 00:33:05,480 Hoe bereken ik het strafblad? 641 00:33:05,480 --> 00:33:11,580 De veroordelingen kan worden berekend door hoe vaak. 642 00:33:11,580 --> 00:33:15,340 Dus hoe vaak zie je dat zanger tussen alle zangers u 643 00:33:15,340 --> 00:33:16,380 hebben, toch? 644 00:33:16,380 --> 00:33:18,810 Dus voor Gaga en Katy Perry, in dit geval zie ik Gaga 645 00:33:18,810 --> 00:33:20,570 eenmaal, Katy Perry eenmaal. 646 00:33:20,570 --> 00:33:23,320 >> Dus eigenlijk de veroordelingen voor Gaga en voor Katy Perry zou 647 00:33:23,320 --> 00:33:24,390 gewoon een, toch? 648 00:33:24,390 --> 00:33:26,500 Je hoe vaak Ik zie de kunstenaar. 649 00:33:26,500 --> 00:33:28,740 Dus dit is zeer eenvoudig te berekenen. 650 00:33:28,740 --> 00:33:34,100 Ik kan het gewoon zoiets als als "als zanger in strafblad "Ik ga gewoon 651 00:33:34,100 --> 00:33:38,970 om 1 toe te voegen aan hun priors doos. 652 00:33:38,970 --> 00:33:51,000 Dus, "priors (zingen)" + = 1 "en dan" anders " Ik ga "priors (zanger) doen 653 00:33:51,000 --> 00:33:55,000 = 1. "Zinvol? 654 00:33:55,000 --> 00:34:00,080 >> Dus als het niet bestaat Ik heb net als 1, anders had ik voeg 1. 655 00:34:00,080 --> 00:34:11,280 OK, dus nu alles wat ik nog heb te doen Ook alle woorden toevoegen 656 00:34:11,280 --> 00:34:12,290 waarschijnlijkheden. 657 00:34:12,290 --> 00:34:14,889 Dus ik moet tellen hoe vaak Ik zie elk van de woorden. 658 00:34:14,889 --> 00:34:18,780 Dus ik moet gewoon een ander doen lus in de lijn. 659 00:34:18,780 --> 00:34:25,190 >> Dus eerste wat ik ga doen is controleren of de zanger heeft al een 660 00:34:25,190 --> 00:34:26,969 waarschijnlijkheden array. 661 00:34:26,969 --> 00:34:31,739 Dus ik ga kijken of de zanger niet hebben een waarschijnlijkheden array, ik ben gewoon 662 00:34:31,739 --> 00:34:34,480 naar een voor hen te initialiseren. 663 00:34:34,480 --> 00:34:36,400 Het is niet eens een array, sorry, het is een woordenboek. 664 00:34:36,400 --> 00:34:43,080 Dus de waarschijnlijkheden van zanger gaat een open woordenboek, dus ik ben 665 00:34:43,080 --> 00:34:45,830 gewoon het initialiseren van een woordenboek voor. 666 00:34:45,830 --> 00:34:46,820 OK? 667 00:34:46,820 --> 00:34:58,330 >> En nu kan ik eigenlijk doen een lus elk van de woorden "bereken 668 00:34:58,330 --> 00:35:00,604 waarschijnlijkheden. 669 00:35:00,604 --> 00:35:01,540 OK. 670 00:35:01,540 --> 00:35:04,160 Dus wat ik kan doen is een lus. 671 00:35:04,160 --> 00:35:06,590 Dus ik ga gewoon herhalen over de array. 672 00:35:06,590 --> 00:35:15,320 Dus de manier waarop ik dat kan doen in Python is "for i in range." Vanaf 1 673 00:35:15,320 --> 00:35:19,200 want ik wil starten in de tweede element omdat de eerste is de 674 00:35:19,200 --> 00:35:20,260 zanger naam. 675 00:35:20,260 --> 00:35:24,990 Dus van een tot de lengte van de lijn. 676 00:35:24,990 --> 00:35:29,760 En als ik bereik het eigenlijk gaan van zoals hier van 1 tot len ​​van de 677 00:35:29,760 --> 00:35:30,740 lijn minus 1. 678 00:35:30,740 --> 00:35:33,810 Dus het doet al dat ding doen n minus 1 voor arrays die zeer 679 00:35:33,810 --> 00:35:35,500 handig. 680 00:35:35,500 --> 00:35:37,850 Zinvol? 681 00:35:37,850 --> 00:35:42,770 >> Dus voor elk van deze, wat ik ga doen is, net als in de andere, 682 00:35:42,770 --> 00:35:50,320 Ik ga om te controleren of het woord in deze positie in de lijn is al in 683 00:35:50,320 --> 00:35:51,570 waarschijnlijkheden. 684 00:35:51,570 --> 00:35:53,400 685 00:35:53,400 --> 00:35:57,260 En dan zoals ik al zei hier, waarschijnlijkheden woorden, zoals in ik 686 00:35:57,260 --> 00:35:58,400 "Waarschijnlijkheden (zangeres)". 687 00:35:58,400 --> 00:35:59,390 Dus de naam van de zanger. 688 00:35:59,390 --> 00:36:03,450 Dus als het al in "Probabilit (zanger)", betekent dit dat ik 689 00:36:03,450 --> 00:36:11,960 wilt 1 toe te voegen, dus ik ga do "waarschijnlijkheden (zanger)", en de 690 00:36:11,960 --> 00:36:14,100 woord "lijn (i)" genoemd. 691 00:36:14,100 --> 00:36:22,630 Ik ga voeg 1 en "anders" Ik ben gewoon ga het initialiseren op 1. 692 00:36:22,630 --> 00:36:23,880 "Line (i)". 693 00:36:23,880 --> 00:36:26,920 694 00:36:26,920 --> 00:36:28,420 Zinvol? 695 00:36:28,420 --> 00:36:30,180 >> Dus ik berekende Alle matrices. 696 00:36:30,180 --> 00:36:36,580 Zo, nu al wat ik moet doen voor dit is gewoon "terug strafblad, 697 00:36:36,580 --> 00:36:43,230 waarschijnlijkheden en woorden. "Laten we te zien of er sprake is van, OK. 698 00:36:43,230 --> 00:36:45,690 Het lijkt erop dat alles tot nu toe werkt. 699 00:36:45,690 --> 00:36:46,900 Zo, dat is logisch? 700 00:36:46,900 --> 00:36:47,750 Op een bepaalde manier? 701 00:36:47,750 --> 00:36:49,280 OK. 702 00:36:49,280 --> 00:36:51,980 Dus nu heb ik alle kansen. 703 00:36:51,980 --> 00:36:55,100 Dus nu het enige wat ik nog heb is gewoon om dat ding hebben dat 704 00:36:55,100 --> 00:36:58,650 berekent het product van alle waarschijnlijkheden als ik de teksten. 705 00:36:58,650 --> 00:37:06,270 >> Dus laten we zeggen dat ik wil nu bellen Deze functie "classificeren ()" en de 706 00:37:06,270 --> 00:37:08,880 ding die functie neemt is slechts een argument. 707 00:37:08,880 --> 00:37:13,170 Laten we zeggen: "Schat, ik ben in brand" en het is gaan om erachter te komen wat is de 708 00:37:13,170 --> 00:37:14,490 waarschijnlijkheid dat dit Gaga? 709 00:37:14,490 --> 00:37:16,405 Wat is de kans dat dit Katie? 710 00:37:16,405 --> 00:37:19,690 Klinkt goed? 711 00:37:19,690 --> 00:37:25,750 Dus ik ga gewoon moeten creëren een nieuwe functie genaamd "classificeren ()" en 712 00:37:25,750 --> 00:37:29,180 het gaat om een ​​aantal te nemen teksten ook. 713 00:37:29,180 --> 00:37:31,790 714 00:37:31,790 --> 00:37:36,160 En naast de teksten heb ik ook moeten de priors te sturen, de 715 00:37:36,160 --> 00:37:37,700 waarschijnlijkheden en de woorden. 716 00:37:37,700 --> 00:37:44,000 Dus ik ga naar teksten, priors sturen, waarschijnlijkheden, woorden. 717 00:37:44,000 --> 00:37:51,840 >> Dus dit is het nemen van teksten, priors, waarschijnlijkheden, woorden. 718 00:37:51,840 --> 00:37:53,530 Dus, wat doet het? 719 00:37:53,530 --> 00:37:57,180 Het in principe gaat om te gaan door alle de mogelijke kandidaten die u 720 00:37:57,180 --> 00:37:58,510 hebben als zanger. 721 00:37:58,510 --> 00:37:59,425 En waar zijn de kandidaten? 722 00:37:59,425 --> 00:38:01,020 Ze zitten in het strafblad, toch? 723 00:38:01,020 --> 00:38:02,710 Dus ik heb al die daar. 724 00:38:02,710 --> 00:38:07,870 Dus ik ga een woordenboek hebben alle mogelijke kandidaten. 725 00:38:07,870 --> 00:38:14,220 En dan voor elke kandidaat in de strafblad, dus dat betekent dat het gaat om 726 00:38:14,220 --> 00:38:17,740 zijn Gaga, Katie als ik had meer zou het meer zijn. 727 00:38:17,740 --> 00:38:20,410 Ik ga om te beginnen berekenen deze kans. 728 00:38:20,410 --> 00:38:28,310 De kans zoals we zagen in de PowerPoint is voorafgaande maal de 729 00:38:28,310 --> 00:38:30,800 product van elk van de andere waarschijnlijkheden. 730 00:38:30,800 --> 00:38:32,520 >> Dus ik kan hier hetzelfde doen. 731 00:38:32,520 --> 00:38:36,330 Ik kan het gewoon doen kans is aanvankelijk juist voorafgaande. 732 00:38:36,330 --> 00:38:40,340 Dus priors van de kandidaat. 733 00:38:40,340 --> 00:38:40,870 Rechts? 734 00:38:40,870 --> 00:38:45,360 En nu moet ik itereren over alle woorden die ik in de teksten te 735 00:38:45,360 --> 00:38:48,820 kan de waarschijnlijkheid voegen voor elk van hen, OK? 736 00:38:48,820 --> 00:38:57,900 Dus, "voor woord in lyrics" wat ik ga te doen is, als het woord in 737 00:38:57,900 --> 00:39:01,640 "Waarschijnlijkheden (kandidaat)", die betekent dat het een woord dat de 738 00:39:01,640 --> 00:39:03,640 kandidaat heeft in hun teksten - 739 00:39:03,640 --> 00:39:05,940 bijvoorbeeld, "Baby" voor Gaga - 740 00:39:05,940 --> 00:39:11,710 wat ik ga doen, is dat de waarschijnlijkheid zal worden vermenigvuldigd 741 00:39:11,710 --> 00:39:22,420 door 1 plus de waarschijnlijkheid van de kandidaat voor dat woord. 742 00:39:22,420 --> 00:39:25,710 En het "woord" genoemd. 743 00:39:25,710 --> 00:39:32,440 Dit gedeeld door het aantal woorden dat ik voor die kandidaat. 744 00:39:32,440 --> 00:39:37,450 Het totaal aantal woorden die ik heb voor de zanger die ik naar kijk. 745 00:39:37,450 --> 00:39:40,290 >> "Anders." het betekent dat het een nieuw woord dus het zou zijn zoals bijvoorbeeld 746 00:39:40,290 --> 00:39:41,860 "Vuur" voor Lady Gaga. 747 00:39:41,860 --> 00:39:45,760 Dus ik wil gewoon dan doen 1 "Woord (kandidaat)". 748 00:39:45,760 --> 00:39:47,710 Dus ik wil niet dat deze term hier plaatsen. 749 00:39:47,710 --> 00:39:50,010 >> Dus het gaat om in principe worden kopiëren en deze te plakken. 750 00:39:50,010 --> 00:39:54,380 751 00:39:54,380 --> 00:39:56,000 Maar ik ga dit deel te verwijderen. 752 00:39:56,000 --> 00:39:57,610 Dus het is gewoon gaat worden 1 over dat. 753 00:39:57,610 --> 00:40:00,900 754 00:40:00,900 --> 00:40:02,150 Klinkt goed? 755 00:40:02,150 --> 00:40:03,980 756 00:40:03,980 --> 00:40:09,700 En nu aan het eind, ik ben gewoon gaan print de naam van de kandidaat en 757 00:40:09,700 --> 00:40:15,750 de kans dat je hebt van met de S op hun teksten. 758 00:40:15,750 --> 00:40:16,200 Zinvol? 759 00:40:16,200 --> 00:40:18,390 En ik eigenlijk niet eens moet dit woordenboek. 760 00:40:18,390 --> 00:40:19,510 Zinvol? 761 00:40:19,510 --> 00:40:21,810 >> Dus, laten we eens zien of dit echt werkt. 762 00:40:21,810 --> 00:40:24,880 Dus als ik dit uitvoeren, werkte het niet. 763 00:40:24,880 --> 00:40:26,130 Wacht een seconde. 764 00:40:26,130 --> 00:40:28,870 765 00:40:28,870 --> 00:40:31,720 "Woorden (kandidaat)", "woorden (kandidaat)", dat 766 00:40:31,720 --> 00:40:33,750 de naam van de array. 767 00:40:33,750 --> 00:40:41,435 OK Dus, het zegt dat er een aantal bug voor kandidaat in strafblad. 768 00:40:41,435 --> 00:40:46,300 769 00:40:46,300 --> 00:40:48,760 Laat me gewoon chill een beetje. 770 00:40:48,760 --> 00:40:50,360 OK. 771 00:40:50,360 --> 00:40:51,305 Laten we het proberen. 772 00:40:51,305 --> 00:40:51,720 OK. 773 00:40:51,720 --> 00:40:58,710 >> Het geeft dus Katy Perry heeft dit kans hierop maal 10 tot 774 00:40:58,710 --> 00:41:02,200 min 7, en Gaga heeft deze maal 10 tot min 6. 775 00:41:02,200 --> 00:41:05,610 Zo zie je maar het laat zien dat Gaga heeft een hogere kans. 776 00:41:05,610 --> 00:41:09,260 Dus "Baby, ik ben on Fire" is waarschijnlijk een Gaga lied. 777 00:41:09,260 --> 00:41:10,580 Zinvol? 778 00:41:10,580 --> 00:41:12,030 Dus dit is wat we deden. 779 00:41:12,030 --> 00:41:16,010 >> Deze code zal online worden geplaatst, dus jullie kunt het controleren. 780 00:41:16,010 --> 00:41:20,720 Misschien gebruik maken van een deel van het voor als je wilt doe een project of iets dergelijks. 781 00:41:20,720 --> 00:41:22,150 OK. 782 00:41:22,150 --> 00:41:25,930 Dit was gewoon om te laten zien wat computationele 783 00:41:25,930 --> 00:41:27,230 taalkunde code eruit ziet. 784 00:41:27,230 --> 00:41:33,040 Maar nu laten we gaan naar meer hoog niveau spul. 785 00:41:33,040 --> 00:41:33,340 OK. 786 00:41:33,340 --> 00:41:35,150 >> Dus de andere problemen I had het over - 787 00:41:35,150 --> 00:41:37,550 de segmentatie probleem de eerste daarvan. 788 00:41:37,550 --> 00:41:40,820 Dus je hebt hier Japans. 789 00:41:40,820 --> 00:41:43,420 En dan zie je dat er geen spaties. 790 00:41:43,420 --> 00:41:49,110 Dus dit is in feite betekent dat het de bovenkant van de stoel, toch? 791 00:41:49,110 --> 00:41:50,550 Je spreekt Japans? 792 00:41:50,550 --> 00:41:52,840 Het is de top van de stoel, toch? 793 00:41:52,840 --> 00:41:54,480 >> STUDENT: Ik weet niet wat de kanji dan is er. 794 00:41:54,480 --> 00:41:57,010 >> LUCAS FREITAS: Het is [SPREKEN JAPANSE] 795 00:41:57,010 --> 00:41:57,950 OK. 796 00:41:57,950 --> 00:42:00,960 Dus het betekent in feite voorzitter van de top. 797 00:42:00,960 --> 00:42:03,620 Dus als je moest een ruimte zetten hier zijn. 798 00:42:03,620 --> 00:42:05,970 En dan heb je [? Ueda-san. ?] 799 00:42:05,970 --> 00:42:09,040 Die in feite betekent Mr Ueda. 800 00:42:09,040 --> 00:42:13,180 En je ziet dat "Ueda" en je hebt een ruimte en vervolgens "san." Zo zie je dat 801 00:42:13,180 --> 00:42:15,470 hier je "Ue" is als op zichzelf. 802 00:42:15,470 --> 00:42:17,750 En hier heeft een karakter ernaast. 803 00:42:17,750 --> 00:42:21,720 >> Dus het is niet zoals in die talen karakters zin een woord zodat je 804 00:42:21,720 --> 00:42:23,980 net een groot aantal spaties. 805 00:42:23,980 --> 00:42:25,500 Personages zich tot elkaar verhouden. 806 00:42:25,500 --> 00:42:28,680 En ze kunnen samen zijn als twee, drie, een. 807 00:42:28,680 --> 00:42:34,520 Dus je eigenlijk om een ​​soort te creëren van de manier van het zetten van die ruimten. 808 00:42:34,520 --> 00:42:38,850 >> En deze zaak is dat wanneer je gegevens uit deze Aziatische talen, 809 00:42:38,850 --> 00:42:40,580 alles komt unsegmented. 810 00:42:40,580 --> 00:42:45,940 Omdat niemand die Japanse schrijft of Chinees schrijft met spaties. 811 00:42:45,940 --> 00:42:48,200 Wanneer je aan het schrijven bent Chinees, Japanse je schrijft alles 812 00:42:48,200 --> 00:42:48,710 zonder spaties. 813 00:42:48,710 --> 00:42:52,060 Er wordt zelfs niet zinvol om ruimtes te zetten. 814 00:42:52,060 --> 00:42:57,960 Dus dan wanneer u gegevens krijgt van sommige Oost-Aziatische taal, als je wilt 815 00:42:57,960 --> 00:43:00,760 iets wat eigenlijk doen met dat je moet segment eerste. 816 00:43:00,760 --> 00:43:05,130 >> Denk aan het doen van het voorbeeld van de teksten zonder spaties. 817 00:43:05,130 --> 00:43:07,950 Dus de enige teksten die je hebt zal zijn zinnen, toch? 818 00:43:07,950 --> 00:43:09,470 Gescheiden door punten. 819 00:43:09,470 --> 00:43:13,930 Maar dan met alleen de zin zal niet echt helpen op het geven van informatie 820 00:43:13,930 --> 00:43:17,760 van wie die teksten zijn door. 821 00:43:17,760 --> 00:43:18,120 Rechts? 822 00:43:18,120 --> 00:43:20,010 Dus je moet eerst zet ruimtes. 823 00:43:20,010 --> 00:43:21,990 Dus hoe kun je dat doen? 824 00:43:21,990 --> 00:43:24,920 >> Dus dan komt het idee van een taal model dat is iets heel 825 00:43:24,920 --> 00:43:26,870 belangrijk voor computationele taalkunde. 826 00:43:26,870 --> 00:43:32,790 Dus een taal model is eigenlijk een tafel van waarschijnlijkheden die shows 827 00:43:32,790 --> 00:43:36,260 Allereerst wat is de kans van het hebben van het woord in een taal? 828 00:43:36,260 --> 00:43:39,590 Dus laten zien hoe vaak een woord is. 829 00:43:39,590 --> 00:43:43,130 En dan ook die het verband tussen de woorden in een zin. 830 00:43:43,130 --> 00:43:51,500 >> Dus de belangrijkste idee is, als een vreemdeling kwam om u en zei een zin om 831 00:43:51,500 --> 00:43:55,600 u, wat is de kans dat, voor Bijvoorbeeld, "dit is mijn zus [? GTF"?] 832 00:43:55,600 --> 00:43:57,480 was de zin die de persoon zei? 833 00:43:57,480 --> 00:44:00,380 Dus uiteraard sommige zinnen zijn vaker voor dan anderen. 834 00:44:00,380 --> 00:44:04,450 Bijvoorbeeld, "goedemorgen" of "goed nacht, "of" hey daar, "is veel meer 835 00:44:04,450 --> 00:44:08,260 voor dan de meeste zinnen dat we een Engels. 836 00:44:08,260 --> 00:44:11,060 Dus waarom zijn die zinnen vaker? 837 00:44:11,060 --> 00:44:14,060 >> Allereerst, het is omdat je woorden die vaker voorkomen. 838 00:44:14,060 --> 00:44:20,180 Dus, bijvoorbeeld, als je zegt, de hond is groot, en de hond is gigantisch, je 839 00:44:20,180 --> 00:44:23,880 meestal waarschijnlijk hoort de hond is groot vaker omdat "big" is meer 840 00:44:23,880 --> 00:44:27,260 frequent in het Engels dan "gigantisch." Dus een van de 841 00:44:27,260 --> 00:44:30,100 dingen is het woord frequentie. 842 00:44:30,100 --> 00:44:34,490 >> Het tweede ding dat is echt belangrijk is gewoon de 843 00:44:34,490 --> 00:44:35,490 volgorde van de woorden. 844 00:44:35,490 --> 00:44:39,500 Dus, is het gebruikelijk om te zeggen "de kat binnen het strafschopgebied. "maar je meestal niet 845 00:44:39,500 --> 00:44:44,250 zien in "De doos in de kat is." dus je ziet dat er een belang 846 00:44:44,250 --> 00:44:46,030 in de volgorde van de woorden. 847 00:44:46,030 --> 00:44:50,160 Je kunt niet zomaar zeggen dat die twee zinnen hebben dezelfde kans 848 00:44:50,160 --> 00:44:53,010 alleen maar omdat ze dezelfde woorden. 849 00:44:53,010 --> 00:44:55,550 Je eigenlijk de zorg over de volgorde ook. 850 00:44:55,550 --> 00:44:57,650 Zinvol? 851 00:44:57,650 --> 00:44:59,490 >> Dus wat doen we? 852 00:44:59,490 --> 00:45:01,550 Dus wat ik zou kunnen proberen om je krijgen? 853 00:45:01,550 --> 00:45:04,400 Ik probeer je wat we krijgen bellen met de n-gram modellen. 854 00:45:04,400 --> 00:45:09,095 Dus n-gram modellen principe aannemen dat voor elk woord dat 855 00:45:09,095 --> 00:45:10,960 je hebt in een zin. 856 00:45:10,960 --> 00:45:15,020 Het is de waarschijnlijkheid van die woord er hangt niet alleen af ​​van de 857 00:45:15,020 --> 00:45:18,395 frequentie van dat woord in de taal, maar ook op de woorden die 858 00:45:18,395 --> 00:45:19,860 worden eromheen. 859 00:45:19,860 --> 00:45:25,810 >> Dus bijvoorbeeld, meestal als je ziet iets op of aan je 860 00:45:25,810 --> 00:45:28,040 waarschijnlijk gaat om een ​​te zien zelfstandig naamwoord na, toch? 861 00:45:28,040 --> 00:45:31,750 Want als je een voorzetsel meestal duurt het een zelfstandig naamwoord na het. 862 00:45:31,750 --> 00:45:35,540 Of als u een werkwoord dat is transitieve je meestal gaat 863 00:45:35,540 --> 00:45:36,630 hebben een nominale constituent. 864 00:45:36,630 --> 00:45:38,780 Dus het gaat om een ​​zelfstandig naamwoord hebben ergens eromheen. 865 00:45:38,780 --> 00:45:44,950 >> Dus, in principe, wat het doet is dat het beschouwt de waarschijnlijkheid van het hebben van 866 00:45:44,950 --> 00:45:47,960 woorden naast elkaar, bij je bent het berekenen van de 867 00:45:47,960 --> 00:45:49,050 waarschijnlijkheid van een zin. 868 00:45:49,050 --> 00:45:50,960 En dat is wat een taal model in wezen. 869 00:45:50,960 --> 00:45:54,620 Gewoon zeggen wat is de kans van een specifieke 870 00:45:54,620 --> 00:45:57,120 zin in een taal? 871 00:45:57,120 --> 00:45:59,110 Dus waarom is dat nuttig, eigenlijk? 872 00:45:59,110 --> 00:46:02,390 En in de eerste plaats wat een n-gram model, dan? 873 00:46:02,390 --> 00:46:08,850 >> Dus een n-gram-model houdt in dat elk woord afhankelijk van 874 00:46:08,850 --> 00:46:12,700 volgende N minus 1 woorden. 875 00:46:12,700 --> 00:46:18,150 Dus eigenlijk betekent het dat als ik kijk, bijvoorbeeld aan de CS50 TF bij 876 00:46:18,150 --> 00:46:21,500 Ik berekenen de kans de zin, zul je worden als "de 877 00:46:21,500 --> 00:46:25,280 waarschijnlijkheid van het woord "de" maal de waarschijnlijkheid van "de 878 00:46:25,280 --> 00:46:31,720 CS50 "keer de kans van het hebben van "De CS50 TF." Dus, eigenlijk, ik tel 879 00:46:31,720 --> 00:46:35,720 alle mogelijke manieren van te rekken. 880 00:46:35,720 --> 00:46:41,870 >> En dan meestal als je dit doet, als in een project, zet je N te zijn 881 00:46:41,870 --> 00:46:42,600 een lage waarde. 882 00:46:42,600 --> 00:46:45,930 Dus, hebben meestal bigrammen of trigrammen. 883 00:46:45,930 --> 00:46:51,090 Zodat je gewoon tellen twee woorden, een groep twee woorden of drie woorden, 884 00:46:51,090 --> 00:46:52,620 alleen voor problemen met de prestaties. 885 00:46:52,620 --> 00:46:56,395 En ook omdat misschien als je iets als "De CS50 TF." Wanneer je 886 00:46:56,395 --> 00:47:00,510 hebben "TF," het is heel belangrijk dat "CS50" is ernaast, toch? 887 00:47:00,510 --> 00:47:04,050 Die twee dingen zijn meestal naast elkaar. 888 00:47:04,050 --> 00:47:06,410 >> Als je denkt van "TF," het is waarschijnlijk gaat hebben wat 889 00:47:06,410 --> 00:47:07,890 klasse het is TF'ing voor. 890 00:47:07,890 --> 00:47:11,330 Ook "de" is echt belangrijk voor CS50 TF. 891 00:47:11,330 --> 00:47:14,570 Maar als je iets als "De CS50 hebben TF ging naar klas en gaven hun 892 00:47:14,570 --> 00:47:20,060 studenten wat snoep. "" Candy "en" de " hebben geen relatie echt, toch? 893 00:47:20,060 --> 00:47:23,670 Ze zijn zo ver van elkaar dat Het maakt eigenlijk niet uit wat 894 00:47:23,670 --> 00:47:25,050 woorden die je hebt. 895 00:47:25,050 --> 00:47:31,210 >> Dus door het doen van een bigram of een trigram, het betekent gewoon dat je te beperken 896 00:47:31,210 --> 00:47:33,430 uzelf op een aantal woorden dat de buurt zijn. 897 00:47:33,430 --> 00:47:35,810 Zinvol? 898 00:47:35,810 --> 00:47:40,630 Dus als je wilt segmentatie doen, Kortom, wat je wilt doen is zien 899 00:47:40,630 --> 00:47:44,850 welke alle mogelijke manieren je kunt het segment van de zin. 900 00:47:44,850 --> 00:47:49,090 >> Zodanig dat je ziet wat is de waarschijnlijkheid van elk van deze zinnen 901 00:47:49,090 --> 00:47:50,880 bestaande in de taal? 902 00:47:50,880 --> 00:47:53,410 Dus wat je doet is als, nou ja, laat me proberen om een ​​ruimte hier zetten. 903 00:47:53,410 --> 00:47:55,570 Dus je zet er een spatie en je ziet wat is de 904 00:47:55,570 --> 00:47:57,590 waarschijnlijkheid van die zin? 905 00:47:57,590 --> 00:48:00,240 Dan bent u als, OK, misschien dat was niet zo goed. 906 00:48:00,240 --> 00:48:03,420 Dus heb ik een ruimte is er en een spatie daar, en berekent u de 907 00:48:03,420 --> 00:48:06,240 waarschijnlijkheid nu, en je ziet dat het is een hogere waarschijnlijkheid. 908 00:48:06,240 --> 00:48:12,160 >> Dus dit is een algoritme genaamd de TANGO segmentatie-algoritme, dat is 909 00:48:12,160 --> 00:48:14,990 eigenlijk iets dat echt zou zijn cool voor een project, dat 910 00:48:14,990 --> 00:48:20,860 neemt in principe unsegmented tekst die kunnen Japanse of Chinese of misschien zijn 911 00:48:20,860 --> 00:48:26,080 Engels zonder spaties en probeert te zetten spaties tussen woorden en doet 912 00:48:26,080 --> 00:48:29,120 dat door een taalmodel en proberen om te zien wat is de hoogste 913 00:48:29,120 --> 00:48:31,270 kans je kunt krijgen. 914 00:48:31,270 --> 00:48:32,230 OK. 915 00:48:32,230 --> 00:48:33,800 Dus dit is segmentatie. 916 00:48:33,800 --> 00:48:35,450 >> Syntaxis. 917 00:48:35,450 --> 00:48:40,940 Dus, wordt syntax gebruikt voor nu zoveel dingen. 918 00:48:40,940 --> 00:48:44,880 Dus voor Graph zoeken, voor Siri voor vrijwel elke vorm van natuurlijke 919 00:48:44,880 --> 00:48:46,490 taalverwerking je hebt. 920 00:48:46,490 --> 00:48:49,140 Dus wat zijn de belangrijke dingen over syntax? 921 00:48:49,140 --> 00:48:52,390 Dus, zinnen in het algemeen wat wij noemen kiezers. 922 00:48:52,390 --> 00:48:57,080 Welke zijn een soort groepen van woorden dat een functie in de zin hebben. 923 00:48:57,080 --> 00:49:02,220 En ze kunnen niet echt zijn uit elkaar. 924 00:49:02,220 --> 00:49:07,380 >> Dus, als ik zeg, bijvoorbeeld, "Lauren houdt Milo. "Ik weet dat" Lauren "is een 925 00:49:07,380 --> 00:49:10,180 bestanddeel en dan "liefdes Milo "is ook een andere. 926 00:49:10,180 --> 00:49:16,860 Want je kunt niet zeggen als "Lauren Milo houdt van "dezelfde betekenis hebben. 927 00:49:16,860 --> 00:49:18,020 Het gaat niet om dezelfde betekenis. 928 00:49:18,020 --> 00:49:22,500 Of ik kan niet zeggen als "Milo Lauren houdt. "Niet alles heeft dezelfde 929 00:49:22,500 --> 00:49:25,890 wat betekent dat te doen. 930 00:49:25,890 --> 00:49:31,940 >> Dus de twee belangrijke dingen over syntaxis zijn de lexicale types die 931 00:49:31,940 --> 00:49:35,390 in feite de functie die u hebben voor de woorden zelf. 932 00:49:35,390 --> 00:49:39,180 Dus je moet weten dat "Lauren" en "Milo" zijn zelfstandige naamwoorden. 933 00:49:39,180 --> 00:49:41,040 "Love" is een werkwoord. 934 00:49:41,040 --> 00:49:45,660 En de tweede belangrijkste is dat ze phrasal types. 935 00:49:45,660 --> 00:49:48,990 Dus je weet dat "houdt Milo" is eigenlijk een verbale zin. 936 00:49:48,990 --> 00:49:52,390 Dus als ik zeg "Lauren," Ik weet dat Lauren is iets te doen. 937 00:49:52,390 --> 00:49:53,620 Wat doet ze? 938 00:49:53,620 --> 00:49:54,570 Ze is liefdevol Milo. 939 00:49:54,570 --> 00:49:56,440 Dus het is een hele zaak. 940 00:49:56,440 --> 00:50:01,640 Maar de componenten een zelfstandig naamwoord en een werkwoord. 941 00:50:01,640 --> 00:50:04,210 Maar samen maken ze een werkwoord frase. 942 00:50:04,210 --> 00:50:08,680 >> Dus, wat kunnen we eigenlijk doen met computationele taalkunde? 943 00:50:08,680 --> 00:50:13,810 Dus, als ik iets voor bijvoorbeeld "Vrienden van Allison." Ik zie als ik gewoon 944 00:50:13,810 --> 00:50:17,440 heeft een syntactische boom ik zou weten dat "Vrienden" is een zelfstandig naamwoord zin is het een 945 00:50:17,440 --> 00:50:21,480 zelfstandig naamwoord en dan "van Allison" is een voorzetselconstituent waarin "uit" is 946 00:50:21,480 --> 00:50:24,810 een propositie en "Allison" is een zelfstandig naamwoord. 947 00:50:24,810 --> 00:50:30,910 Wat ik zou doen is leer mijn computer dat als ik een zelfstandig naamwoord zin een en 948 00:50:30,910 --> 00:50:33,080 dan een voorzetsel. 949 00:50:33,080 --> 00:50:39,020 Dus in dit geval, "vrienden" en dan "van Milo "Ik weet dat dit betekent dat 950 00:50:39,020 --> 00:50:43,110 NP2, de tweede, bezit NP1. 951 00:50:43,110 --> 00:50:47,680 >> Dus ik kan een soort van relatie te creëren, enkele soort functie voor. 952 00:50:47,680 --> 00:50:52,370 Dus wanneer ik zie deze structuur, die exact overeenkomt met "vrienden van 953 00:50:52,370 --> 00:50:56,030 Allison, "Ik weet dat Allison is eigenaar van de vrienden. 954 00:50:56,030 --> 00:50:58,830 Dus de vrienden zijn iets dat Allison heeft. 955 00:50:58,830 --> 00:50:59,610 Zinvol? 956 00:50:59,610 --> 00:51:01,770 Dus dit is eigenlijk wat Grafiek Search doet. 957 00:51:01,770 --> 00:51:04,360 Het creëert alleen maar regels voor een heleboel dingen. 958 00:51:04,360 --> 00:51:08,190 Dus "vrienden van Allison," "mijn vrienden die wonen in Cambridge, "" mijn vrienden 959 00:51:08,190 --> 00:51:12,970 die naar Harvard. "Het creëert regels voor al die dingen. 960 00:51:12,970 --> 00:51:14,930 >> Nu automatische vertaling. 961 00:51:14,930 --> 00:51:18,850 Dus, automatische vertaling is ook iets statistische. 962 00:51:18,850 --> 00:51:21,340 En eigenlijk als je betrokken bij krijgen computationele taalkunde, veel 963 00:51:21,340 --> 00:51:23,580 je spullen gaat statistieken zijn. 964 00:51:23,580 --> 00:51:26,670 Dus zoals ik deed het voorbeeld met veel waarschijnlijkheden dat ik was 965 00:51:26,670 --> 00:51:30,540 berekenen, en dan krijg je dit zeer klein aantal dat is de uiteindelijke 966 00:51:30,540 --> 00:51:33,180 kans, en dat is wat geeft u het antwoord. 967 00:51:33,180 --> 00:51:37,540 Machine vertaling gebruikt ook een statistisch model. 968 00:51:37,540 --> 00:51:44,790 En als je wilt om te denken van de machine vertaling eenvoudig mogelijke 969 00:51:44,790 --> 00:51:48,970 manier, wat je maar kunt bedenken is gewoon vertalen woord voor woord, toch? 970 00:51:48,970 --> 00:51:52,150 >> Als je leren een taal voor de eerste keer, dat is meestal wat 971 00:51:52,150 --> 00:51:52,910 je doen, toch? 972 00:51:52,910 --> 00:51:57,050 Als u wilt kunt een zin vertalen in uw taal om de taal 973 00:51:57,050 --> 00:52:00,060 je leert, meestal eerst, je vertalen elk van de woorden 974 00:52:00,060 --> 00:52:03,180 individueel, en dan probeer je om de woorden op zijn plaats te zetten. 975 00:52:03,180 --> 00:52:07,100 >> Dus als ik wilde dit te vertalen, [SPREKEN PORTUGESE] 976 00:52:07,100 --> 00:52:10,430 wat betekent "de witte kat liep weg." Als ik wilde het vertalen van 977 00:52:10,430 --> 00:52:13,650 Portugees naar Engels, wat ik zou kunnen doen is in de eerste, ik heb net 978 00:52:13,650 --> 00:52:14,800 vertalen woord voor woord. 979 00:52:14,800 --> 00:52:20,570 Dus "o" is "de", "Gato", "kat" "Branco", "wit," en dan "Fugio" is 980 00:52:20,570 --> 00:52:21,650 "Rende weg." 981 00:52:21,650 --> 00:52:26,130 >> Dus dan heb ik alle woorden hier, maar ze zijn niet in orde. 982 00:52:26,130 --> 00:52:29,590 Het is als "de kat witte rende weg" dat is ongrammaticaal. 983 00:52:29,590 --> 00:52:34,490 Zo, dan kan ik een tweede stap, hebben die zal het vinden van het ideale 984 00:52:34,490 --> 00:52:36,610 positie van elk van de woorden. 985 00:52:36,610 --> 00:52:40,240 Dus ik weet dat ik eigenlijk willen hebben "Witte kat" in plaats van "kat wit." Dus 986 00:52:40,240 --> 00:52:46,050 wat ik kan doen is, de meest naïeve methode zou maken alle 987 00:52:46,050 --> 00:52:49,720 mogelijke permutaties van woorden, van posities. 988 00:52:49,720 --> 00:52:53,300 En dan zien welke men heeft de hoogste waarschijnlijkheid volgens 989 00:52:53,300 --> 00:52:54,970 naar mijn taal model. 990 00:52:54,970 --> 00:52:58,390 En toen ik degene die heeft de hoogste waarschijnlijkheid, dat 991 00:52:58,390 --> 00:53:01,910 waarschijnlijk "de witte kat liep weg," dat is mijn vertaling. 992 00:53:01,910 --> 00:53:06,710 >> Dit is een eenvoudige manier om te verklaren hoe veel automatische vertaling 993 00:53:06,710 --> 00:53:07,910 algoritmen werken. 994 00:53:07,910 --> 00:53:08,920 Is dat logisch? 995 00:53:08,920 --> 00:53:12,735 Dit is ook iets wat echt spannend dat jullie misschien kunnen verkennen voor een 996 00:53:12,735 --> 00:53:13,901 afstudeerproject, ja? 997 00:53:13,901 --> 00:53:15,549 >> STUDENT: Nou, je zei dat het de naïeve manier, dus wat is 998 00:53:15,549 --> 00:53:17,200 de niet-naïeve manier? 999 00:53:17,200 --> 00:53:18,400 >> LUCAS FREITAS: De niet-naïeve manier? 1000 00:53:18,400 --> 00:53:19,050 OK. 1001 00:53:19,050 --> 00:53:22,860 Dus het eerste wat dat is slecht over deze methode is dat ik gewoon vertaald 1002 00:53:22,860 --> 00:53:24,330 woorden, woord voor woord. 1003 00:53:24,330 --> 00:53:30,570 Maar soms moet je woorden die kan meerdere vertalingen. 1004 00:53:30,570 --> 00:53:32,210 Ik ga proberen te denken van iets. 1005 00:53:32,210 --> 00:53:37,270 Bijvoorbeeld, "manga" in het Portugees kan ofwel "mangel" of "sleeve". Dus 1006 00:53:37,270 --> 00:53:40,450 als je probeert te woord te vertalen door woord, kan het worden waardoor u 1007 00:53:40,450 --> 00:53:42,050 iets dat geen zin heeft. 1008 00:53:42,050 --> 00:53:45,770 >> Dus je eigenlijk wilt u kijken naar alle de mogelijke vertalingen van de 1009 00:53:45,770 --> 00:53:49,840 woorden zien, allereerst wat is de volgorde. 1010 00:53:49,840 --> 00:53:52,000 We hadden het over permutating de dingen? 1011 00:53:52,000 --> 00:53:54,150 Om alle mogelijke volgordes zien en kiezen met de hoogste 1012 00:53:54,150 --> 00:53:54,990 waarschijnlijkheid? 1013 00:53:54,990 --> 00:53:57,860 U kunt er ook voor kiezen alle mogelijke vertalingen voor elk 1014 00:53:57,860 --> 00:54:00,510 woord en dan zien - 1015 00:54:00,510 --> 00:54:01,950 gecombineerd met de permutaties - 1016 00:54:01,950 --> 00:54:03,710 welke de hoogste waarschijnlijkheid. 1017 00:54:03,710 --> 00:54:08,590 >> Bovendien kunt u ook kijken naar niet alleen woorden maar zinnen. 1018 00:54:08,590 --> 00:54:11,700 dus je kunt de relaties tussen analyseren de woorden en krijgen dan een 1019 00:54:11,700 --> 00:54:13,210 betere vertaling. 1020 00:54:13,210 --> 00:54:16,690 Ook nog iets anders, dus dit semester Ik ben eigenlijk het doen van onderzoek in 1021 00:54:16,690 --> 00:54:19,430 Chinees-Engels automatische vertaling, dus het vertalen van 1022 00:54:19,430 --> 00:54:20,940 Chinees naar het Engels. 1023 00:54:20,940 --> 00:54:26,760 >> En iets wat we doen is, naast het gebruik van een statistisch model, dat is gewoon 1024 00:54:26,760 --> 00:54:30,570 het zien van de kansen van het zien een bepaalde positie in een zin, ik ben 1025 00:54:30,570 --> 00:54:35,360 eigenlijk ook het toevoegen van enkele syntax aan mijn model, het zeggen, oh, als ik zie dit soort 1026 00:54:35,360 --> 00:54:39,420 van de bouw, dit is wat ik wil om het te veranderen toen ik vertalen. 1027 00:54:39,420 --> 00:54:43,880 Dus je kunt ook een soort van add element syntax om de 1028 00:54:43,880 --> 00:54:47,970 vertaling efficiënter en nauwkeuriger. 1029 00:54:47,970 --> 00:54:48,550 OK. 1030 00:54:48,550 --> 00:54:51,010 >> Dus hoe kan je aan de slag, als je wilt om iets te doen in de computationele 1031 00:54:51,010 --> 00:54:51,980 taalkunde? 1032 00:54:51,980 --> 00:54:54,560 >> Kies eerst je een project die inhoudt talen. 1033 00:54:54,560 --> 00:54:56,310 Dus, er zijn zoveel die er zijn. 1034 00:54:56,310 --> 00:54:58,420 Er zijn zoveel dingen die je kunt doen. 1035 00:54:58,420 --> 00:55:00,510 En dan kunnen denken aan een model die u kunt gebruiken. 1036 00:55:00,510 --> 00:55:04,710 Meestal dat betekent denken van veronderstellingen, zoals als, oh, toen ik 1037 00:55:04,710 --> 00:55:05,770 als het denken van de teksten. 1038 00:55:05,770 --> 00:55:09,510 Ik was als, nou ja, als ik wil achterhalen een die dit schreef, wil ik waarschijnlijk 1039 00:55:09,510 --> 00:55:15,400 om te kijken naar de woorden die de persoon gebruikt en zien wie gebruikt dat woord heel vaak. 1040 00:55:15,400 --> 00:55:18,470 Dus probeer veronderstellingen en probeer te denken aan modellen. 1041 00:55:18,470 --> 00:55:21,395 En dan kun je ook online zoeken naar het soort probleem dat je hebt, 1042 00:55:21,395 --> 00:55:24,260 en het gaat om te suggereren u modellen die misschien 1043 00:55:24,260 --> 00:55:26,560 gemodelleerd dat ding goed. 1044 00:55:26,560 --> 00:55:29,080 >> En ook u kunt me altijd mailen. 1045 00:55:29,080 --> 00:55:31,140 me@lfreitas.com. 1046 00:55:31,140 --> 00:55:34,940 En ik kan het gewoon antwoord geven op uw vragen. 1047 00:55:34,940 --> 00:55:38,600 We kunnen zelfs kunnen ontmoeten zodat ik kan suggesties geven over de wijze waarop 1048 00:55:38,600 --> 00:55:41,490 de uitvoering van uw project. 1049 00:55:41,490 --> 00:55:45,610 En ik bedoel als je meedoen met computationele taalkunde, het gaat 1050 00:55:45,610 --> 00:55:46,790 groot te zijn. 1051 00:55:46,790 --> 00:55:48,370 Je gaat daar te zien is zo veel potentieel. 1052 00:55:48,370 --> 00:55:52,060 En de sector wil huren dat je zo slecht vanwege dat. 1053 00:55:52,060 --> 00:55:54,720 Dus ik hoop dat jullie genoten van deze. 1054 00:55:54,720 --> 00:55:57,030 Als jullie nog vragen hebben, kunt u mij vraagt ​​na deze. 1055 00:55:57,030 --> 00:55:58,280 Maar toch bedankt. 1056 00:55:58,280 --> 00:56:00,150