├── Aula1.ipynb ├── Aula2.ipynb ├── Aula3.ipynb ├── Aula4.ipynb ├── Aula5.ipynb └── Processamento de Linguagem Natural.pdf /Aula1.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Aula 01 - Dados Textuais: classificação e exploração." 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 0, 13 | "metadata": { 14 | "colab": {}, 15 | "colab_type": "code", 16 | "id": "uyLldsoOUCqD", 17 | "outputId": "c27ec508-d98a-4add-d7c1-f50f8a869515" 18 | }, 19 | "outputs": [ 20 | { 21 | "data": { 22 | "text/html": [ 23 | "
\n", 24 | "\n", 37 | "\n", 38 | " \n", 39 | " \n", 40 | " \n", 41 | " \n", 42 | " \n", 43 | " \n", 44 | " \n", 45 | " \n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | "
idtext_entext_ptsentiment
01Once again Mr. Costner has dragged out a movie...Mais uma vez, o Sr. Costner arrumou um filme p...neg
12This is an example of why the majority of acti...Este é um exemplo do motivo pelo qual a maiori...neg
23First of all I hate those moronic rappers, who...Primeiro de tudo eu odeio esses raps imbecis, ...neg
34Not even the Beatles could write songs everyon...Nem mesmo os Beatles puderam escrever músicas ...neg
45Brass pictures movies is not a fitting word fo...Filmes de fotos de latão não é uma palavra apr...neg
\n", 85 | "
" 86 | ], 87 | "text/plain": [ 88 | " id text_en \\\n", 89 | "0 1 Once again Mr. Costner has dragged out a movie... \n", 90 | "1 2 This is an example of why the majority of acti... \n", 91 | "2 3 First of all I hate those moronic rappers, who... \n", 92 | "3 4 Not even the Beatles could write songs everyon... \n", 93 | "4 5 Brass pictures movies is not a fitting word fo... \n", 94 | "\n", 95 | " text_pt sentiment \n", 96 | "0 Mais uma vez, o Sr. Costner arrumou um filme p... neg \n", 97 | "1 Este é um exemplo do motivo pelo qual a maiori... neg \n", 98 | "2 Primeiro de tudo eu odeio esses raps imbecis, ... neg \n", 99 | "3 Nem mesmo os Beatles puderam escrever músicas ... neg \n", 100 | "4 Filmes de fotos de latão não é uma palavra apr... neg " 101 | ] 102 | }, 103 | "execution_count": 1, 104 | "metadata": { 105 | "tags": [] 106 | }, 107 | "output_type": "execute_result" 108 | } 109 | ], 110 | "source": [ 111 | "import pandas as pd\n", 112 | "\n", 113 | "resenha = pd.read_csv(\"dados/imdb-reviews-pt-br.csv\")\n", 114 | "resenha.head()" 115 | ] 116 | }, 117 | { 118 | "cell_type": "code", 119 | "execution_count": 0, 120 | "metadata": { 121 | "colab": {}, 122 | "colab_type": "code", 123 | "id": "81JeEaRvUCqQ" 124 | }, 125 | "outputs": [], 126 | "source": [ 127 | "from sklearn.model_selection import train_test_split\n", 128 | "\n", 129 | "treino, teste, classe_treino, classe_teste = train_test_split(resenha.text_pt,\n", 130 | " resenha.sentiment,\n", 131 | " random_state = 42)" 132 | ] 133 | }, 134 | { 135 | "cell_type": "code", 136 | "execution_count": 0, 137 | "metadata": { 138 | "colab": {}, 139 | "colab_type": "code", 140 | "id": "dhl_OVahUCqW" 141 | }, 142 | "outputs": [], 143 | "source": [ 144 | "from sklearn.linear_model import LogisticRegression\n", 145 | "\n", 146 | "regressao_logistica = LogisticRegression()\n", 147 | "regressao_logistica.fit(treino, classe_treino)\n", 148 | "acuracia = regressao_logistica.score(teste, classe_teste)\n", 149 | "print(acuracia)" 150 | ] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "execution_count": 0, 155 | "metadata": { 156 | "colab": {}, 157 | "colab_type": "code", 158 | "id": "COrGMpIrUCqd", 159 | "outputId": "78f08136-3665-496f-ecb1-65e04a5978b3" 160 | }, 161 | "outputs": [ 162 | { 163 | "name": "stdout", 164 | "output_type": "stream", 165 | "text": [ 166 | "Negativa \n", 167 | "\n", 168 | "Este é sem dúvida o pior filme que eu já vi. E acredite em mim, eu vi muitos filmes. A reviravolta inacreditável que o filme faz - passando de um extremamente mau filme \"Formas de vida alienígenas habitam a terra\", com um filme que tenta espalhar um arquicristiano \"O dia do julgamento está próximo, buscar Jesus ou queimar por toda a eternidade em as dívidas ardentes do inferno \"mensagem - deixou-me atordoado depois de ter sido atormentado por 85 minutos. Até mesmo os cristãos religiosos devem se envergonhar ou ficar furiosos ao ver suas crenças postadas dessa maneira. Eu não sabia o que fazer comigo quando assisti a atuação horrível que poderia ter sido realizada por crianças de 7 anos de idade. Simplesmente repugnante. Eu não sou cristão nem muito religioso. Mas se eu estivesse, não teria mais medo do Inferno. Rich Christiano mostrou ser algo muito pior.\n" 169 | ] 170 | } 171 | ], 172 | "source": [ 173 | "print(\"Negativa \\n\")\n", 174 | "print(resenha.text_pt[189])" 175 | ] 176 | }, 177 | { 178 | "cell_type": "code", 179 | "execution_count": 0, 180 | "metadata": { 181 | "colab": {}, 182 | "colab_type": "code", 183 | "id": "gfvr9JzqUCqj", 184 | "outputId": "0043ca09-d766-4789-e083-d2c55481c140" 185 | }, 186 | "outputs": [ 187 | { 188 | "name": "stdout", 189 | "output_type": "stream", 190 | "text": [ 191 | "Positivo \n", 192 | "\n", 193 | "Crescendo em Nova York no final dos anos 80 e início dos anos 90, posso dizer pessoalmente que este é um dos documentários mais importantes feitos para cobrir esse lugar neste período de tempo. Não Madonna não veio com a idéia de Voguing, mas é de onde ela tirou! Em vez de combater a violência uns dos outros ou em brigas de gato, o voguing permitia que as pessoas \"lutassem\" dentro dos confins de tudo, menos que tocassem umas às outras, o que justificaria uma desqualificação automática. Vendo este tipo de extraordinariamente talentosas / bem orquestradas \"jogadas\" nos clubes foi nada menos do que espetacular e todos os grandes nomes de antigamente estão aqui ... Pepper La Beija, Paris Duprée, Xtragavaganza, etc. ..tudo comemorado nos gostos de peças de época como a música de Malcom McLarens \"Deep in Vogue\" ... não importava quem você era, ou de onde você era porque quando você passava por aquelas portas nesse \"reino mágico\" de De certa forma, você se tornou parte de algo maior que você / você era importante / e, o mais importante, a criação de seus próprios movimentos e imaginação ... e qualquer pessoa de qualquer lugar poderia se tornar Rei ou Rainha como poderia ter sido. As palavras e inteligência eram tão afiadas quanto os movimentos no chão. Toda a tensão, excitação e magia dessa energia urbana de NYC é capturada neste filme. BRILHANTE!!! POR FAVOR, LIBERE EM DVD para o mundo ver !!! Obrigado!\n" 194 | ] 195 | } 196 | ], 197 | "source": [ 198 | "print(\"Positivo \\n\")\n", 199 | "print(resenha.text_pt[49002])" 200 | ] 201 | }, 202 | { 203 | "cell_type": "code", 204 | "execution_count": 0, 205 | "metadata": { 206 | "colab": {}, 207 | "colab_type": "code", 208 | "id": "zYBl3ve8UCqp", 209 | "outputId": "e8bd5ae8-9e1a-4321-86c4-ed149353d53f" 210 | }, 211 | "outputs": [ 212 | { 213 | "name": "stdout", 214 | "output_type": "stream", 215 | "text": [ 216 | "neg 24765\n", 217 | "pos 24694\n", 218 | "Name: sentiment, dtype: int64\n" 219 | ] 220 | } 221 | ], 222 | "source": [ 223 | "print(resenha.sentiment.value_counts())" 224 | ] 225 | }, 226 | { 227 | "cell_type": "code", 228 | "execution_count": 0, 229 | "metadata": { 230 | "colab": {}, 231 | "colab_type": "code", 232 | "id": "bEhlxR_OUCqx", 233 | "outputId": "75fca700-05dd-46fc-b965-c68dc7dbfa48" 234 | }, 235 | "outputs": [ 236 | { 237 | "data": { 238 | "text/html": [ 239 | "
\n", 240 | "\n", 253 | "\n", 254 | " \n", 255 | " \n", 256 | " \n", 257 | " \n", 258 | " \n", 259 | " \n", 260 | " \n", 261 | " \n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | "
idtext_entext_ptsentiment
01Once again Mr. Costner has dragged out a movie...Mais uma vez, o Sr. Costner arrumou um filme p...neg
12This is an example of why the majority of acti...Este é um exemplo do motivo pelo qual a maiori...neg
23First of all I hate those moronic rappers, who...Primeiro de tudo eu odeio esses raps imbecis, ...neg
34Not even the Beatles could write songs everyon...Nem mesmo os Beatles puderam escrever músicas ...neg
45Brass pictures movies is not a fitting word fo...Filmes de fotos de latão não é uma palavra apr...neg
\n", 301 | "
" 302 | ], 303 | "text/plain": [ 304 | " id text_en \\\n", 305 | "0 1 Once again Mr. Costner has dragged out a movie... \n", 306 | "1 2 This is an example of why the majority of acti... \n", 307 | "2 3 First of all I hate those moronic rappers, who... \n", 308 | "3 4 Not even the Beatles could write songs everyon... \n", 309 | "4 5 Brass pictures movies is not a fitting word fo... \n", 310 | "\n", 311 | " text_pt sentiment \n", 312 | "0 Mais uma vez, o Sr. Costner arrumou um filme p... neg \n", 313 | "1 Este é um exemplo do motivo pelo qual a maiori... neg \n", 314 | "2 Primeiro de tudo eu odeio esses raps imbecis, ... neg \n", 315 | "3 Nem mesmo os Beatles puderam escrever músicas ... neg \n", 316 | "4 Filmes de fotos de latão não é uma palavra apr... neg " 317 | ] 318 | }, 319 | "execution_count": 7, 320 | "metadata": { 321 | "tags": [] 322 | }, 323 | "output_type": "execute_result" 324 | } 325 | ], 326 | "source": [ 327 | "resenha.head()" 328 | ] 329 | }, 330 | { 331 | "cell_type": "code", 332 | "execution_count": 0, 333 | "metadata": { 334 | "colab": {}, 335 | "colab_type": "code", 336 | "id": "3vn-gRwMUCq6" 337 | }, 338 | "outputs": [], 339 | "source": [ 340 | "classificacao = resenha[\"sentiment\"].replace([\"neg\", \"pos\"], [0,1])" 341 | ] 342 | }, 343 | { 344 | "cell_type": "code", 345 | "execution_count": 0, 346 | "metadata": { 347 | "colab": {}, 348 | "colab_type": "code", 349 | "id": "q4vhDB2IUCrF" 350 | }, 351 | "outputs": [], 352 | "source": [ 353 | "resenha[\"classificacao\"] = classificacao" 354 | ] 355 | }, 356 | { 357 | "cell_type": "code", 358 | "execution_count": 0, 359 | "metadata": { 360 | "colab": {}, 361 | "colab_type": "code", 362 | "id": "-as7oF6SUCrM", 363 | "outputId": "2c3ca7cc-16dc-4618-94bc-4d80c799a53f" 364 | }, 365 | "outputs": [ 366 | { 367 | "data": { 368 | "text/html": [ 369 | "
\n", 370 | "\n", 383 | "\n", 384 | " \n", 385 | " \n", 386 | " \n", 387 | " \n", 388 | " \n", 389 | " \n", 390 | " \n", 391 | " \n", 392 | " \n", 393 | " \n", 394 | " \n", 395 | " \n", 396 | " \n", 397 | " \n", 398 | " \n", 399 | " \n", 400 | " \n", 401 | " \n", 402 | " \n", 403 | " \n", 404 | " \n", 405 | " \n", 406 | " \n", 407 | " \n", 408 | " \n", 409 | " \n", 410 | " \n", 411 | " \n", 412 | " \n", 413 | " \n", 414 | " \n", 415 | " \n", 416 | " \n", 417 | " \n", 418 | " \n", 419 | " \n", 420 | " \n", 421 | " \n", 422 | " \n", 423 | " \n", 424 | " \n", 425 | " \n", 426 | " \n", 427 | " \n", 428 | " \n", 429 | " \n", 430 | " \n", 431 | " \n", 432 | " \n", 433 | " \n", 434 | " \n", 435 | " \n", 436 | "
idtext_entext_ptsentimentclassificacao
01Once again Mr. Costner has dragged out a movie...Mais uma vez, o Sr. Costner arrumou um filme p...neg0
12This is an example of why the majority of acti...Este é um exemplo do motivo pelo qual a maiori...neg0
23First of all I hate those moronic rappers, who...Primeiro de tudo eu odeio esses raps imbecis, ...neg0
34Not even the Beatles could write songs everyon...Nem mesmo os Beatles puderam escrever músicas ...neg0
45Brass pictures movies is not a fitting word fo...Filmes de fotos de latão não é uma palavra apr...neg0
\n", 437 | "
" 438 | ], 439 | "text/plain": [ 440 | " id text_en \\\n", 441 | "0 1 Once again Mr. Costner has dragged out a movie... \n", 442 | "1 2 This is an example of why the majority of acti... \n", 443 | "2 3 First of all I hate those moronic rappers, who... \n", 444 | "3 4 Not even the Beatles could write songs everyon... \n", 445 | "4 5 Brass pictures movies is not a fitting word fo... \n", 446 | "\n", 447 | " text_pt sentiment classificacao \n", 448 | "0 Mais uma vez, o Sr. Costner arrumou um filme p... neg 0 \n", 449 | "1 Este é um exemplo do motivo pelo qual a maiori... neg 0 \n", 450 | "2 Primeiro de tudo eu odeio esses raps imbecis, ... neg 0 \n", 451 | "3 Nem mesmo os Beatles puderam escrever músicas ... neg 0 \n", 452 | "4 Filmes de fotos de latão não é uma palavra apr... neg 0 " 453 | ] 454 | }, 455 | "execution_count": 10, 456 | "metadata": { 457 | "tags": [] 458 | }, 459 | "output_type": "execute_result" 460 | } 461 | ], 462 | "source": [ 463 | "resenha.head()" 464 | ] 465 | }, 466 | { 467 | "cell_type": "code", 468 | "execution_count": 0, 469 | "metadata": { 470 | "colab": {}, 471 | "colab_type": "code", 472 | "id": "AIf9qI59UCrR", 473 | "outputId": "8b5375d6-3b95-4b34-9630-9c2e98f65e8d" 474 | }, 475 | "outputs": [ 476 | { 477 | "data": { 478 | "text/html": [ 479 | "
\n", 480 | "\n", 493 | "\n", 494 | " \n", 495 | " \n", 496 | " \n", 497 | " \n", 498 | " \n", 499 | " \n", 500 | " \n", 501 | " \n", 502 | " \n", 503 | " \n", 504 | " \n", 505 | " \n", 506 | " \n", 507 | " \n", 508 | " \n", 509 | " \n", 510 | " \n", 511 | " \n", 512 | " \n", 513 | " \n", 514 | " \n", 515 | " \n", 516 | " \n", 517 | " \n", 518 | " \n", 519 | " \n", 520 | " \n", 521 | " \n", 522 | " \n", 523 | " \n", 524 | " \n", 525 | " \n", 526 | " \n", 527 | " \n", 528 | " \n", 529 | " \n", 530 | " \n", 531 | " \n", 532 | " \n", 533 | " \n", 534 | " \n", 535 | " \n", 536 | " \n", 537 | " \n", 538 | " \n", 539 | " \n", 540 | " \n", 541 | " \n", 542 | " \n", 543 | " \n", 544 | " \n", 545 | " \n", 546 | "
idtext_entext_ptsentimentclassificacao
4945449456Seeing as the vote average was pretty low, and...Como a média de votos era muito baixa, e o fat...pos1
4945549457The plot had some wretched, unbelievable twist...O enredo teve algumas reviravoltas infelizes e...pos1
4945649458I am amazed at how this movieand most others h...Estou espantado com a forma como este filme e ...pos1
4945749459A Christmas Together actually came before my t...A Christmas Together realmente veio antes do m...pos1
4945849460Working-class romantic drama from director Mar...O drama romântico da classe trabalhadora do di...pos1
\n", 547 | "
" 548 | ], 549 | "text/plain": [ 550 | " id text_en \\\n", 551 | "49454 49456 Seeing as the vote average was pretty low, and... \n", 552 | "49455 49457 The plot had some wretched, unbelievable twist... \n", 553 | "49456 49458 I am amazed at how this movieand most others h... \n", 554 | "49457 49459 A Christmas Together actually came before my t... \n", 555 | "49458 49460 Working-class romantic drama from director Mar... \n", 556 | "\n", 557 | " text_pt sentiment \\\n", 558 | "49454 Como a média de votos era muito baixa, e o fat... pos \n", 559 | "49455 O enredo teve algumas reviravoltas infelizes e... pos \n", 560 | "49456 Estou espantado com a forma como este filme e ... pos \n", 561 | "49457 A Christmas Together realmente veio antes do m... pos \n", 562 | "49458 O drama romântico da classe trabalhadora do di... pos \n", 563 | "\n", 564 | " classificacao \n", 565 | "49454 1 \n", 566 | "49455 1 \n", 567 | "49456 1 \n", 568 | "49457 1 \n", 569 | "49458 1 " 570 | ] 571 | }, 572 | "execution_count": 11, 573 | "metadata": { 574 | "tags": [] 575 | }, 576 | "output_type": "execute_result" 577 | } 578 | ], 579 | "source": [ 580 | "resenha.tail()" 581 | ] 582 | } 583 | ], 584 | "metadata": { 585 | "colab": { 586 | "name": "PLN.ipynb", 587 | "provenance": [], 588 | "version": "0.3.2" 589 | }, 590 | "kernelspec": { 591 | "display_name": "Python 3", 592 | "language": "python", 593 | "name": "python3" 594 | }, 595 | "language_info": { 596 | "codemirror_mode": { 597 | "name": "ipython", 598 | "version": 3 599 | }, 600 | "file_extension": ".py", 601 | "mimetype": "text/x-python", 602 | "name": "python", 603 | "nbconvert_exporter": "python", 604 | "pygments_lexer": "ipython3", 605 | "version": "3.7.2" 606 | } 607 | }, 608 | "nbformat": 4, 609 | "nbformat_minor": 1 610 | } 611 | -------------------------------------------------------------------------------- /Aula2.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Aula 01 - Dados Textuais: classificação e exploração." 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 0, 13 | "metadata": { 14 | "colab": {}, 15 | "colab_type": "code", 16 | "id": "uyLldsoOUCqD", 17 | "outputId": "c27ec508-d98a-4add-d7c1-f50f8a869515" 18 | }, 19 | "outputs": [ 20 | { 21 | "data": { 22 | "text/html": [ 23 | "
\n", 24 | "\n", 37 | "\n", 38 | " \n", 39 | " \n", 40 | " \n", 41 | " \n", 42 | " \n", 43 | " \n", 44 | " \n", 45 | " \n", 46 | " \n", 47 | " \n", 48 | " \n", 49 | " \n", 50 | " \n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | " \n", 55 | " \n", 56 | " \n", 57 | " \n", 58 | " \n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | "
idtext_entext_ptsentiment
01Once again Mr. Costner has dragged out a movie...Mais uma vez, o Sr. Costner arrumou um filme p...neg
12This is an example of why the majority of acti...Este é um exemplo do motivo pelo qual a maiori...neg
23First of all I hate those moronic rappers, who...Primeiro de tudo eu odeio esses raps imbecis, ...neg
34Not even the Beatles could write songs everyon...Nem mesmo os Beatles puderam escrever músicas ...neg
45Brass pictures movies is not a fitting word fo...Filmes de fotos de latão não é uma palavra apr...neg
\n", 85 | "
" 86 | ], 87 | "text/plain": [ 88 | " id text_en \\\n", 89 | "0 1 Once again Mr. Costner has dragged out a movie... \n", 90 | "1 2 This is an example of why the majority of acti... \n", 91 | "2 3 First of all I hate those moronic rappers, who... \n", 92 | "3 4 Not even the Beatles could write songs everyon... \n", 93 | "4 5 Brass pictures movies is not a fitting word fo... \n", 94 | "\n", 95 | " text_pt sentiment \n", 96 | "0 Mais uma vez, o Sr. Costner arrumou um filme p... neg \n", 97 | "1 Este é um exemplo do motivo pelo qual a maiori... neg \n", 98 | "2 Primeiro de tudo eu odeio esses raps imbecis, ... neg \n", 99 | "3 Nem mesmo os Beatles puderam escrever músicas ... neg \n", 100 | "4 Filmes de fotos de latão não é uma palavra apr... neg " 101 | ] 102 | }, 103 | "execution_count": 1, 104 | "metadata": { 105 | "tags": [] 106 | }, 107 | "output_type": "execute_result" 108 | } 109 | ], 110 | "source": [ 111 | "import pandas as pd\n", 112 | "\n", 113 | "resenha = pd.read_csv(\"dados/imdb-reviews-pt-br.csv\")\n", 114 | "resenha.head()" 115 | ] 116 | }, 117 | { 118 | "cell_type": "code", 119 | "execution_count": 0, 120 | "metadata": { 121 | "colab": {}, 122 | "colab_type": "code", 123 | "id": "81JeEaRvUCqQ" 124 | }, 125 | "outputs": [], 126 | "source": [ 127 | "from sklearn.model_selection import train_test_split\n", 128 | "\n", 129 | "treino, teste, classe_treino, classe_teste = train_test_split(resenha.text_pt,\n", 130 | " resenha.sentiment,\n", 131 | " random_state = 42)" 132 | ] 133 | }, 134 | { 135 | "cell_type": "code", 136 | "execution_count": 0, 137 | "metadata": { 138 | "colab": {}, 139 | "colab_type": "code", 140 | "id": "dhl_OVahUCqW" 141 | }, 142 | "outputs": [], 143 | "source": [ 144 | "from sklearn.linear_model import LogisticRegression\n", 145 | "\n", 146 | "regressao_logistica = LogisticRegression()\n", 147 | "regressao_logistica.fit(treino, classe_treino)\n", 148 | "acuracia = regressao_logistica.score(teste, classe_teste)\n", 149 | "print(acuracia)" 150 | ] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "execution_count": 0, 155 | "metadata": { 156 | "colab": {}, 157 | "colab_type": "code", 158 | "id": "COrGMpIrUCqd", 159 | "outputId": "78f08136-3665-496f-ecb1-65e04a5978b3" 160 | }, 161 | "outputs": [ 162 | { 163 | "name": "stdout", 164 | "output_type": "stream", 165 | "text": [ 166 | "Negativa \n", 167 | "\n", 168 | "Este é sem dúvida o pior filme que eu já vi. E acredite em mim, eu vi muitos filmes. A reviravolta inacreditável que o filme faz - passando de um extremamente mau filme \"Formas de vida alienígenas habitam a terra\", com um filme que tenta espalhar um arquicristiano \"O dia do julgamento está próximo, buscar Jesus ou queimar por toda a eternidade em as dívidas ardentes do inferno \"mensagem - deixou-me atordoado depois de ter sido atormentado por 85 minutos. Até mesmo os cristãos religiosos devem se envergonhar ou ficar furiosos ao ver suas crenças postadas dessa maneira. Eu não sabia o que fazer comigo quando assisti a atuação horrível que poderia ter sido realizada por crianças de 7 anos de idade. Simplesmente repugnante. Eu não sou cristão nem muito religioso. Mas se eu estivesse, não teria mais medo do Inferno. Rich Christiano mostrou ser algo muito pior.\n" 169 | ] 170 | } 171 | ], 172 | "source": [ 173 | "print(\"Negativa \\n\")\n", 174 | "print(resenha.text_pt[189])" 175 | ] 176 | }, 177 | { 178 | "cell_type": "code", 179 | "execution_count": 0, 180 | "metadata": { 181 | "colab": {}, 182 | "colab_type": "code", 183 | "id": "gfvr9JzqUCqj", 184 | "outputId": "0043ca09-d766-4789-e083-d2c55481c140" 185 | }, 186 | "outputs": [ 187 | { 188 | "name": "stdout", 189 | "output_type": "stream", 190 | "text": [ 191 | "Positivo \n", 192 | "\n", 193 | "Crescendo em Nova York no final dos anos 80 e início dos anos 90, posso dizer pessoalmente que este é um dos documentários mais importantes feitos para cobrir esse lugar neste período de tempo. Não Madonna não veio com a idéia de Voguing, mas é de onde ela tirou! Em vez de combater a violência uns dos outros ou em brigas de gato, o voguing permitia que as pessoas \"lutassem\" dentro dos confins de tudo, menos que tocassem umas às outras, o que justificaria uma desqualificação automática. Vendo este tipo de extraordinariamente talentosas / bem orquestradas \"jogadas\" nos clubes foi nada menos do que espetacular e todos os grandes nomes de antigamente estão aqui ... Pepper La Beija, Paris Duprée, Xtragavaganza, etc. ..tudo comemorado nos gostos de peças de época como a música de Malcom McLarens \"Deep in Vogue\" ... não importava quem você era, ou de onde você era porque quando você passava por aquelas portas nesse \"reino mágico\" de De certa forma, você se tornou parte de algo maior que você / você era importante / e, o mais importante, a criação de seus próprios movimentos e imaginação ... e qualquer pessoa de qualquer lugar poderia se tornar Rei ou Rainha como poderia ter sido. As palavras e inteligência eram tão afiadas quanto os movimentos no chão. Toda a tensão, excitação e magia dessa energia urbana de NYC é capturada neste filme. BRILHANTE!!! POR FAVOR, LIBERE EM DVD para o mundo ver !!! Obrigado!\n" 194 | ] 195 | } 196 | ], 197 | "source": [ 198 | "print(\"Positivo \\n\")\n", 199 | "print(resenha.text_pt[49002])" 200 | ] 201 | }, 202 | { 203 | "cell_type": "code", 204 | "execution_count": 0, 205 | "metadata": { 206 | "colab": {}, 207 | "colab_type": "code", 208 | "id": "zYBl3ve8UCqp", 209 | "outputId": "e8bd5ae8-9e1a-4321-86c4-ed149353d53f" 210 | }, 211 | "outputs": [ 212 | { 213 | "name": "stdout", 214 | "output_type": "stream", 215 | "text": [ 216 | "neg 24765\n", 217 | "pos 24694\n", 218 | "Name: sentiment, dtype: int64\n" 219 | ] 220 | } 221 | ], 222 | "source": [ 223 | "print(resenha.sentiment.value_counts())" 224 | ] 225 | }, 226 | { 227 | "cell_type": "code", 228 | "execution_count": 0, 229 | "metadata": { 230 | "colab": {}, 231 | "colab_type": "code", 232 | "id": "bEhlxR_OUCqx", 233 | "outputId": "75fca700-05dd-46fc-b965-c68dc7dbfa48" 234 | }, 235 | "outputs": [ 236 | { 237 | "data": { 238 | "text/html": [ 239 | "
\n", 240 | "\n", 253 | "\n", 254 | " \n", 255 | " \n", 256 | " \n", 257 | " \n", 258 | " \n", 259 | " \n", 260 | " \n", 261 | " \n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | "
idtext_entext_ptsentiment
01Once again Mr. Costner has dragged out a movie...Mais uma vez, o Sr. Costner arrumou um filme p...neg
12This is an example of why the majority of acti...Este é um exemplo do motivo pelo qual a maiori...neg
23First of all I hate those moronic rappers, who...Primeiro de tudo eu odeio esses raps imbecis, ...neg
34Not even the Beatles could write songs everyon...Nem mesmo os Beatles puderam escrever músicas ...neg
45Brass pictures movies is not a fitting word fo...Filmes de fotos de latão não é uma palavra apr...neg
\n", 301 | "
" 302 | ], 303 | "text/plain": [ 304 | " id text_en \\\n", 305 | "0 1 Once again Mr. Costner has dragged out a movie... \n", 306 | "1 2 This is an example of why the majority of acti... \n", 307 | "2 3 First of all I hate those moronic rappers, who... \n", 308 | "3 4 Not even the Beatles could write songs everyon... \n", 309 | "4 5 Brass pictures movies is not a fitting word fo... \n", 310 | "\n", 311 | " text_pt sentiment \n", 312 | "0 Mais uma vez, o Sr. Costner arrumou um filme p... neg \n", 313 | "1 Este é um exemplo do motivo pelo qual a maiori... neg \n", 314 | "2 Primeiro de tudo eu odeio esses raps imbecis, ... neg \n", 315 | "3 Nem mesmo os Beatles puderam escrever músicas ... neg \n", 316 | "4 Filmes de fotos de latão não é uma palavra apr... neg " 317 | ] 318 | }, 319 | "execution_count": 7, 320 | "metadata": { 321 | "tags": [] 322 | }, 323 | "output_type": "execute_result" 324 | } 325 | ], 326 | "source": [ 327 | "resenha.head()" 328 | ] 329 | }, 330 | { 331 | "cell_type": "code", 332 | "execution_count": 0, 333 | "metadata": { 334 | "colab": {}, 335 | "colab_type": "code", 336 | "id": "3vn-gRwMUCq6" 337 | }, 338 | "outputs": [], 339 | "source": [ 340 | "classificacao = resenha[\"sentiment\"].replace([\"neg\", \"pos\"], [0,1])" 341 | ] 342 | }, 343 | { 344 | "cell_type": "code", 345 | "execution_count": 0, 346 | "metadata": { 347 | "colab": {}, 348 | "colab_type": "code", 349 | "id": "q4vhDB2IUCrF" 350 | }, 351 | "outputs": [], 352 | "source": [ 353 | "resenha[\"classificacao\"] = classificacao" 354 | ] 355 | }, 356 | { 357 | "cell_type": "code", 358 | "execution_count": 0, 359 | "metadata": { 360 | "colab": {}, 361 | "colab_type": "code", 362 | "id": "-as7oF6SUCrM", 363 | "outputId": "2c3ca7cc-16dc-4618-94bc-4d80c799a53f" 364 | }, 365 | "outputs": [ 366 | { 367 | "data": { 368 | "text/html": [ 369 | "
\n", 370 | "\n", 383 | "\n", 384 | " \n", 385 | " \n", 386 | " \n", 387 | " \n", 388 | " \n", 389 | " \n", 390 | " \n", 391 | " \n", 392 | " \n", 393 | " \n", 394 | " \n", 395 | " \n", 396 | " \n", 397 | " \n", 398 | " \n", 399 | " \n", 400 | " \n", 401 | " \n", 402 | " \n", 403 | " \n", 404 | " \n", 405 | " \n", 406 | " \n", 407 | " \n", 408 | " \n", 409 | " \n", 410 | " \n", 411 | " \n", 412 | " \n", 413 | " \n", 414 | " \n", 415 | " \n", 416 | " \n", 417 | " \n", 418 | " \n", 419 | " \n", 420 | " \n", 421 | " \n", 422 | " \n", 423 | " \n", 424 | " \n", 425 | " \n", 426 | " \n", 427 | " \n", 428 | " \n", 429 | " \n", 430 | " \n", 431 | " \n", 432 | " \n", 433 | " \n", 434 | " \n", 435 | " \n", 436 | "
idtext_entext_ptsentimentclassificacao
01Once again Mr. Costner has dragged out a movie...Mais uma vez, o Sr. Costner arrumou um filme p...neg0
12This is an example of why the majority of acti...Este é um exemplo do motivo pelo qual a maiori...neg0
23First of all I hate those moronic rappers, who...Primeiro de tudo eu odeio esses raps imbecis, ...neg0
34Not even the Beatles could write songs everyon...Nem mesmo os Beatles puderam escrever músicas ...neg0
45Brass pictures movies is not a fitting word fo...Filmes de fotos de latão não é uma palavra apr...neg0
\n", 437 | "
" 438 | ], 439 | "text/plain": [ 440 | " id text_en \\\n", 441 | "0 1 Once again Mr. Costner has dragged out a movie... \n", 442 | "1 2 This is an example of why the majority of acti... \n", 443 | "2 3 First of all I hate those moronic rappers, who... \n", 444 | "3 4 Not even the Beatles could write songs everyon... \n", 445 | "4 5 Brass pictures movies is not a fitting word fo... \n", 446 | "\n", 447 | " text_pt sentiment classificacao \n", 448 | "0 Mais uma vez, o Sr. Costner arrumou um filme p... neg 0 \n", 449 | "1 Este é um exemplo do motivo pelo qual a maiori... neg 0 \n", 450 | "2 Primeiro de tudo eu odeio esses raps imbecis, ... neg 0 \n", 451 | "3 Nem mesmo os Beatles puderam escrever músicas ... neg 0 \n", 452 | "4 Filmes de fotos de latão não é uma palavra apr... neg 0 " 453 | ] 454 | }, 455 | "execution_count": 10, 456 | "metadata": { 457 | "tags": [] 458 | }, 459 | "output_type": "execute_result" 460 | } 461 | ], 462 | "source": [ 463 | "resenha.head()" 464 | ] 465 | }, 466 | { 467 | "cell_type": "code", 468 | "execution_count": 0, 469 | "metadata": { 470 | "colab": {}, 471 | "colab_type": "code", 472 | "id": "AIf9qI59UCrR", 473 | "outputId": "8b5375d6-3b95-4b34-9630-9c2e98f65e8d" 474 | }, 475 | "outputs": [ 476 | { 477 | "data": { 478 | "text/html": [ 479 | "
\n", 480 | "\n", 493 | "\n", 494 | " \n", 495 | " \n", 496 | " \n", 497 | " \n", 498 | " \n", 499 | " \n", 500 | " \n", 501 | " \n", 502 | " \n", 503 | " \n", 504 | " \n", 505 | " \n", 506 | " \n", 507 | " \n", 508 | " \n", 509 | " \n", 510 | " \n", 511 | " \n", 512 | " \n", 513 | " \n", 514 | " \n", 515 | " \n", 516 | " \n", 517 | " \n", 518 | " \n", 519 | " \n", 520 | " \n", 521 | " \n", 522 | " \n", 523 | " \n", 524 | " \n", 525 | " \n", 526 | " \n", 527 | " \n", 528 | " \n", 529 | " \n", 530 | " \n", 531 | " \n", 532 | " \n", 533 | " \n", 534 | " \n", 535 | " \n", 536 | " \n", 537 | " \n", 538 | " \n", 539 | " \n", 540 | " \n", 541 | " \n", 542 | " \n", 543 | " \n", 544 | " \n", 545 | " \n", 546 | "
idtext_entext_ptsentimentclassificacao
4945449456Seeing as the vote average was pretty low, and...Como a média de votos era muito baixa, e o fat...pos1
4945549457The plot had some wretched, unbelievable twist...O enredo teve algumas reviravoltas infelizes e...pos1
4945649458I am amazed at how this movieand most others h...Estou espantado com a forma como este filme e ...pos1
4945749459A Christmas Together actually came before my t...A Christmas Together realmente veio antes do m...pos1
4945849460Working-class romantic drama from director Mar...O drama romântico da classe trabalhadora do di...pos1
\n", 547 | "
" 548 | ], 549 | "text/plain": [ 550 | " id text_en \\\n", 551 | "49454 49456 Seeing as the vote average was pretty low, and... \n", 552 | "49455 49457 The plot had some wretched, unbelievable twist... \n", 553 | "49456 49458 I am amazed at how this movieand most others h... \n", 554 | "49457 49459 A Christmas Together actually came before my t... \n", 555 | "49458 49460 Working-class romantic drama from director Mar... \n", 556 | "\n", 557 | " text_pt sentiment \\\n", 558 | "49454 Como a média de votos era muito baixa, e o fat... pos \n", 559 | "49455 O enredo teve algumas reviravoltas infelizes e... pos \n", 560 | "49456 Estou espantado com a forma como este filme e ... pos \n", 561 | "49457 A Christmas Together realmente veio antes do m... pos \n", 562 | "49458 O drama romântico da classe trabalhadora do di... pos \n", 563 | "\n", 564 | " classificacao \n", 565 | "49454 1 \n", 566 | "49455 1 \n", 567 | "49456 1 \n", 568 | "49457 1 \n", 569 | "49458 1 " 570 | ] 571 | }, 572 | "execution_count": 11, 573 | "metadata": { 574 | "tags": [] 575 | }, 576 | "output_type": "execute_result" 577 | } 578 | ], 579 | "source": [ 580 | "resenha.tail()" 581 | ] 582 | }, 583 | { 584 | "cell_type": "markdown", 585 | "metadata": {}, 586 | "source": [ 587 | "## Aula 2 - Bag of Words: criando representações da linguagem humana." 588 | ] 589 | }, 590 | { 591 | "cell_type": "code", 592 | "execution_count": 0, 593 | "metadata": { 594 | "colab": {}, 595 | "colab_type": "code", 596 | "id": "5fmFA8bFUCrZ" 597 | }, 598 | "outputs": [], 599 | "source": [ 600 | "from sklearn.feature_extraction.text import CountVectorizer\n", 601 | "\n", 602 | "texto = [\"Assisti um filme ótimo\", \"Assisti um filme ruim\"]\n", 603 | "\n", 604 | "vetorizar = CountVectorizer(lowercase=False)\n", 605 | "bag_of_words = vetorizar.fit_transform(texto)" 606 | ] 607 | }, 608 | { 609 | "cell_type": "code", 610 | "execution_count": 0, 611 | "metadata": { 612 | "colab": {}, 613 | "colab_type": "code", 614 | "id": "x9FUAN43UCrc", 615 | "outputId": "cc95248b-9146-4165-81f8-0f4b9b3c3bb7" 616 | }, 617 | "outputs": [ 618 | { 619 | "data": { 620 | "text/plain": [ 621 | "['Assisti', 'filme', 'ruim', 'um', 'ótimo']" 622 | ] 623 | }, 624 | "execution_count": 13, 625 | "metadata": { 626 | "tags": [] 627 | }, 628 | "output_type": "execute_result" 629 | } 630 | ], 631 | "source": [ 632 | "vetorizar.get_feature_names()" 633 | ] 634 | }, 635 | { 636 | "cell_type": "code", 637 | "execution_count": 0, 638 | "metadata": { 639 | "colab": {}, 640 | "colab_type": "code", 641 | "id": "mMTeI_PRUCri", 642 | "outputId": "177cbdc2-2570-43e5-d6c3-471d9cf295f1", 643 | "scrolled": true 644 | }, 645 | "outputs": [ 646 | { 647 | "data": { 648 | "text/plain": [ 649 | "<2x5 sparse matrix of type ''\n", 650 | "\twith 8 stored elements in Compressed Sparse Row format>" 651 | ] 652 | }, 653 | "execution_count": 14, 654 | "metadata": { 655 | "tags": [] 656 | }, 657 | "output_type": "execute_result" 658 | } 659 | ], 660 | "source": [ 661 | "bag_of_words" 662 | ] 663 | }, 664 | { 665 | "cell_type": "code", 666 | "execution_count": 0, 667 | "metadata": { 668 | "colab": {}, 669 | "colab_type": "code", 670 | "id": "h4F7BWAfUCrn" 671 | }, 672 | "outputs": [], 673 | "source": [ 674 | "matriz_esparsa = pd.SparseDataFrame(bag_of_words,\n", 675 | " columns=vetorizar.get_feature_names())" 676 | ] 677 | }, 678 | { 679 | "cell_type": "code", 680 | "execution_count": 0, 681 | "metadata": { 682 | "colab": {}, 683 | "colab_type": "code", 684 | "id": "obinAArSUCrt", 685 | "outputId": "5499c83f-8e19-4655-8541-69631421e0df", 686 | "scrolled": false 687 | }, 688 | "outputs": [ 689 | { 690 | "data": { 691 | "text/html": [ 692 | "
\n", 693 | "\n", 706 | "\n", 707 | " \n", 708 | " \n", 709 | " \n", 710 | " \n", 711 | " \n", 712 | " \n", 713 | " \n", 714 | " \n", 715 | " \n", 716 | " \n", 717 | " \n", 718 | " \n", 719 | " \n", 720 | " \n", 721 | " \n", 722 | " \n", 723 | " \n", 724 | " \n", 725 | " \n", 726 | " \n", 727 | " \n", 728 | " \n", 729 | " \n", 730 | " \n", 731 | " \n", 732 | " \n", 733 | " \n", 734 | " \n", 735 | "
Assistifilmeruimumótimo
011NaN11.0
1111.01NaN
\n", 736 | "
" 737 | ], 738 | "text/plain": [ 739 | " Assisti filme ruim um ótimo\n", 740 | "0 1 1 NaN 1 1.0\n", 741 | "1 1 1 1.0 1 NaN" 742 | ] 743 | }, 744 | "execution_count": 16, 745 | "metadata": { 746 | "tags": [] 747 | }, 748 | "output_type": "execute_result" 749 | } 750 | ], 751 | "source": [ 752 | "matriz_esparsa" 753 | ] 754 | }, 755 | { 756 | "cell_type": "code", 757 | "execution_count": 0, 758 | "metadata": { 759 | "colab": {}, 760 | "colab_type": "code", 761 | "id": "Fa_TP5dEUCr5", 762 | "outputId": "0a577d0e-0cc7-4cba-a934-63916f766509" 763 | }, 764 | "outputs": [ 765 | { 766 | "name": "stdout", 767 | "output_type": "stream", 768 | "text": [ 769 | "(49459, 50)\n" 770 | ] 771 | } 772 | ], 773 | "source": [ 774 | "vetorizar = CountVectorizer(lowercase=False, max_features=50)\n", 775 | "bag_of_words = vetorizar.fit_transform(resenha.text_pt)\n", 776 | "print(bag_of_words.shape)" 777 | ] 778 | }, 779 | { 780 | "cell_type": "code", 781 | "execution_count": 0, 782 | "metadata": { 783 | "colab": {}, 784 | "colab_type": "code", 785 | "id": "6bDsMPtaUCsF", 786 | "outputId": "6fba557d-455b-4b4a-b61a-d4e757cd970b" 787 | }, 788 | "outputs": [ 789 | { 790 | "name": "stdout", 791 | "output_type": "stream", 792 | "text": [ 793 | "0.6583097452486858\n" 794 | ] 795 | } 796 | ], 797 | "source": [ 798 | "def classificar_texto(texto, coluna_texto, coluna_classificacao):\n", 799 | " vetorizar = CountVectorizer(lowercase=False, max_features=50)\n", 800 | " bag_of_words = vetorizar.fit_transform(texto[coluna_texto])\n", 801 | " treino, teste, classe_treino, classe_teste = train_test_split(bag_of_words,\n", 802 | " texto[coluna_classificacao],\n", 803 | " random_state = 42)\n", 804 | " regressao_logistica = LogisticRegression(solver = \"lbfgs\")\n", 805 | " regressao_logistica.fit(treino, classe_treino)\n", 806 | " return regressao_logistica.score(teste, classe_teste)\n", 807 | "print(classificar_texto(resenha, \"text_pt\", \"classificacao\"))\n", 808 | "\n", 809 | "\n", 810 | "\n", 811 | "\n", 812 | "\n", 813 | "\n", 814 | "\n", 815 | "\n" 816 | ] 817 | } 818 | ], 819 | "metadata": { 820 | "colab": { 821 | "name": "PLN.ipynb", 822 | "provenance": [], 823 | "version": "0.3.2" 824 | }, 825 | "kernelspec": { 826 | "display_name": "Python 3", 827 | "language": "python", 828 | "name": "python3" 829 | }, 830 | "language_info": { 831 | "codemirror_mode": { 832 | "name": "ipython", 833 | "version": 3 834 | }, 835 | "file_extension": ".py", 836 | "mimetype": "text/x-python", 837 | "name": "python", 838 | "nbconvert_exporter": "python", 839 | "pygments_lexer": "ipython3", 840 | "version": "3.7.2" 841 | } 842 | }, 843 | "nbformat": 4, 844 | "nbformat_minor": 1 845 | } 846 | -------------------------------------------------------------------------------- /Processamento de Linguagem Natural.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alura-cursos/introducao-ao-pln-com-python/acb29c10ba17bd6a5bb39d36146a50a9f854e5f5/Processamento de Linguagem Natural.pdf --------------------------------------------------------------------------------