O Review Analyzer é um projeto open source com o objetivo de analisar reviews.
Utilizamos o Kibana como interface de visualização, para guardar os dados usamos o Elasticsearch que é um servidor de buscas distribuído e o Logstash para fazer o processamento dos dados.
Para treinar os nossos modelos usamos as bilbioteca do Tensorflow e a do Scikit Learn.
Fique a vontade para contribuir para o repositório com mais exemplos seja de dados ou de modelos.
Atualmente não temos um servidor com o nosso ambiente.
Primeiramente é necessário ter Docker e o Docker-Compose. Com eles é possível subir a parte de visualização dos dados.
Para o Web Scrapping e subir os dados no kibana pelo Elasticsearch, instale as dependências que se encontram no requirements.txt
.
Recomendamos que instale todo o ambiente necessário para a execução da aplicação dentro uma virtualenv, ou faça um container, você decide. Neste exemplo vamos configurar o ambiente dentro de uma virtualenv. Começando a partir da instalção da virtualenv.
pip install virtualenv
virtualenv review_analyzer
Agora temos uma virtualenv, vamos ativa-lá e instalar os requirements.txt.
source /caminho/para/review_analyzer/bin/activate
pip install -r requirements.txt
Instalando os requirements.txt
você também consegue rodar nossos exemplos de classificadores :)
Para baixar
cd ~/your/directory/
git clone https://github.com/deeplearningunb/review_analyzer.git
cd review_analyzer
Para subir os containers do Docker
docker-compose build
docker-compose up
Se tudo deu certo, já é possível utilizar o Kibana entrando no endereço http://localhost:5601/
. Entrando nele, você verá a interface do Kibana. Acessando http://localhost:9200/
, você terá acesso ao Elasticsearch.
Para ter acesso aos nossos jupyter notebooks é necessário que você inicie o jupyter-notebook ou o jupyter-lab, ele tem modo dark para programar de madrugada :D.
Para o lab
jupyter lab
Para versão normal
jupyter-notebook
E após entre em http://localhost:8888/
e pode começar a olhar nossos exemplos.
Para facilitar a análise de sentimentos, nós desenvolvemos algumas funções:
O Web Scrapping de reviews de filmes foi criado usando as bibliotecas do Beautiful Soup e do request, atualmente ela só suporta o https://www.rottentomatoes.com/
.
Para utilizar é necessário criar um arquivo de urls da seguinte forma:
cd web_scrapping
touch nome_do_arquivo_de_urls
vim nome_do_arquivo_de_urls
Dentro do arquivo escreva o nome das urls que você quer que seja feito a extração das reviews. Como no exemplo abaixo:
https://www.rottentomatoes.com/m/black_panther_2018
https://www.rottentomatoes.com/m/mission_impossible_fallout
https://www.rottentomatoes.com/m/blackkklansman
https://www.rottentomatoes.com/m/spider_man_into_the_spider_verse
https://www.rottentomatoes.com/m/roma_2018
Depois disso basta passar o arquivo como parâmetro.
cd web_scrapping
python3 get_review.py nome_do_arquivo_de_urls
Para importar os arquivos csv, é necessário fazer várias requisições. Para agilizar esse processo, nós criamos uma função que faz isso para você, você só precisa passar os parâmetros e ela fará todo o resto.
cd import_to_kibana
python3 import_csv.py nome_do_arquivo_csv index tipo_doc
Analisar os dados é um parte importante no processo de treinar os modelos, para isso fizemos um tf–idf (abreviação do inglês term frequency–inverse document frequency, que significa frequência do termo–inverso da frequência nos documentos), que é uma medida estatística que tem o intuito de indicar a importância de uma palavra dentro de uma review.
A sua utilização é feita conforme o exemplo abaixo:
cd exploratory_data_analysis
python3 tfidf.py nome_do_arquivo_csv
Ele irá retornar as palavras e o seu valor para os Fresh e os Rotten, estes são os parâmetros que avaliam se a review foi classificada como positiva ou negativa.
Agradecimentos para essas pessoas maravilhosas (emoji key):
Cleber Júnior 💻 |
Lucas Hiroshi Horinouchi 💻 📖 |
Mateus Nóbrega 💻 |
Lorrany Azevedo 💻 |
Este projeto segue all-contributors. Contribuições de todos os tipos são bem-vindas!
O nosso código e as ferramentas desenvolvidas pela equipe estão dentro da MIT License, mas as ferramentas externas como o Kibana e o Elastic Search são Apache.