Skip to content
This repository has been archived by the owner on May 25, 2021. It is now read-only.

Latest commit

 

History

History
122 lines (95 loc) · 4.76 KB

README.md

File metadata and controls

122 lines (95 loc) · 4.76 KB

Google Play Analysis

Google Play Analysis é uma aplicação web que extrai informações de aplicativos da Google Play e realiza uma avaliação do aplicativo baseada nos comentários dos usuários. As informações extraídas, passam por um processo de análise de sentimento utilizando o Vader, e então são adicionadas num banco de dados noSQL, o MongoDB.
A aplicação apresenta alguns dados coletados: nome, categoria, número de avaliações, estrelas, número de comentários analisados; a avaliação (estimativa) com base nos comentários, que é apresentada num valor convertido pra estrelas (1 a 5); e os 5 comentários com o maior número de curtidas, para que possamos ter uma ideia dos comentários mais importantes.

P.S.: A aplicação só extrai informações da página em inglês.

Exemplo

example

Tecnologias

  • Python
  • Django - Framework Python para criação de aplicações web
  • MongoDB - Banco de dados noSQL orientado a documentos
  • NLTK - Conjunto de bibliotecas Python para processamento de linguagem natural

Dependências (pip)

  • Django
  • Pymongo
  • bs4
  • selenium
  • nltk
  • matplotlib
  • wordcloud

Executar os comandos no terminal:

cd pasta/da/aplicacao  
python  
import nltk  
nltk.download('vader_lexicon')  
nltk.download('punkt')
exit()

Será utilizado também o GeckoDriver, por isso a aplicação já conta com uma versão Linux e uma Windows, basta selecionar em crawler.py:

# selecionar geckodriver compativel com o sistema
# driver = webdriver.Firefox(executable_path = os.path.join(BASE_DIR, 'geckodriver/geckodriver_win.exe'))
driver = webdriver.Firefox(executable_path=os.path.join(BASE_DIR, 'geckodriver/geckodriver_linux'))

Caso queira utilizar sua versão preferida do GeckoDriver, modifique o caminho em crawler.py.

Processamento das informações

As informações coletadas passam pelo processo de análise e então são salvas no banco de dados. A descrição (código) desse processo se encontra em program.py.

Coleta de informações

A coleta de informações se dá através do crawler que coleta as informações das aplicações e comentários no site Google Play. As informações coletadas são:

  • Aplicativos:
    • id
    • nome
    • desenvolvedora
    • categoria
    • avaliação (estrelas)
    • quantidade de avaliações
    • imagem do aplicativo
  • Comentários:
    • nome do usuário
    • avaliação (estrelas)
    • texto
    • quantidade de likes

Análise dos comentários

Após a coleta, os comentários passam por um processo de analíse de sentimento, utilizando o Vader. Cada comentário recebe 4 valores, relacionados a análise feita, que são positivo, neutro, negativo e compound. Positivo, neutro e negativo são as porcentagens relativas a cada um, os 3 valores somados resultam em 1 (100%). O compoud é um valor baseado nesses 3, que nos dá uma "média" do sentimento do texto, esse valor vai de -1 a 1.
No final, os valores compound são somados e divididos pelo número de comentários, tendo-se assim a média do sentimento dos comentários de um aplicativo específico. Cria-se então uma worldcloud com as palavras (positivas e negativas) mais utilizadas nos comentários.

As worldclouds não são salvas no banco. Salva-se apenas o caminho de acesso no disco físico.

Adição no banco de dados

Para a adição e recuperação das informações no banco, é utilizado o wrapper Pymongo. As informações são salvas em documentos no formato BSON (Binary JSON).
Além do que já foi coletado anteriormente, agora temos mais alguns componentes:

  • Aplicativos:
    • média obtida na avaliação de sentimento
    • caminho da worldcloud
  • Comentários:
    • compound
    • sentimento final (positivo/neutro/negativo)

Execução do processamento de informações

Para fazer o processamento dos dados, executamos program passando as urls dos aplicativos como argumentos. Exemplo:

cd pasta/da/aplicacao
python program.py https://play.google.com/store/apps/details?id=com.github.android URL2 URL3 URL...

Lançar aplicação

cd pasta/da/aplicacao
python manage.py runserver

Podemos então acessar a aplicação através do link.

P.S.: a aplicação só deve ser lançada quando já houver pelo menos um aplicativo no banco, senão as wordclouds não carregam. Após o lançamento da aplicação, os aplicativos vão aparecer na lista de forma dinâmica assim que forem adicionados ao banco.