MBA em Ciência de Dados

Técnicas Avançadas de Captura e Tratamento de Dados

Avaliação Final

Aluno: Rafael Capaci Pereira

Professores: Luis Gustavo Nonato e Moacir Antonelli Ponti

Cemeai - ICMC/USP São Carlos

A avaliação vale 10 pontos. As questões de 1 a 4, caso respondidas da forma correta, já totalizam 10 pontos.

**ATENÇÃO:**

Bibliotecas a serem instaladas:

Questão 1 (2.5 pontos)

Considere o arquivo modcovid.pdf (disponível para download no moodle). Escreva um código para extrair o texto (ASCII) do arquivo PDF e escreva o texto extraído em um arquivo chamado modcovid.txt.

Para resolver a questão, foram desenvolvidas as funções convert_pdf_to_string e write_string_to_file. O arquivo .pdf é lido como imagem e o conteúdo de todas as páginas é retornado como uma string.

Questão 2 (2.5 pontos)

Leia o arquivo modcovid.txt e realize as seguinte operações:

  1. Extraia todas palavras contidas no arquivo e armazene em uma lista de palavras (utilize o método word_tokenize do pacote nltk).

  2. Remova da lista de palavras todas as "palavras" que não sejam formadas exclusivamente de caracteres do alfabeto.

  3. Quantas palavras com apenas 1 caractere sobraram na lista?

Desenvolvimento da resposta

A função get_tokens_from_file lê um arquivo e extrai as palavras do texto, retornando-as em uma lista através da função word_tokenize, do pacote nltk

A função abaixo remove todas as palavras que não são formadas exclusivamente por caracteres alfanuméricos

A próxima função filtra as palavras de uma lista pelo tamanho

A seguir, as três funções declaradas anteriormente são executadas, lendo o arquivo modcovid.txt, removendo as palavras não alfanuméricas e por fim, filtrando as palavras de tamanho 1, de modo a responder a terceira pergunta.

Ao executar esses passos, observa-se que o número de palavras de tamanho 1 é 44


Questão 3 (2.5 pontos)

Carregue o arquivo artists_mba21.csv e armazene em um pandas DataFrame.

Esse arquivo possui os atributos:

3.a (1.5 pontos)

Exiba um histograma contendo a frequência dos diferentes gêneros dos artistas. Note que um artista pode ter mais do que um gênero associado.

Dica: use a função str.split(',') para separar múltiplos gêneros

Desenvolvimento da resposta

Podemos verificar que na coluna genre, os dados estão dentro de uma string, onde os gêneros de um artista são separados por vírgula.

Inicialmente, o método str.split() é utilizado para converter cada string em um array contendo os gêneros.

Como estamos interessados somente na frequência dos gêneros, utilizaremos o método explode para "concatenar" todas as listas em uma nova série do pandas.

A partir da série genres montamos o gráfico de barras com as frequências de cada gênero, ordenadas de maneira decrescente.