Skip to content

O Review Analyser é um projeto com o objetivo de auxiliar na análise e classificação de reviews com exemplo e snippets

License

Notifications You must be signed in to change notification settings

deeplearningunb/review_analyzer

Repository files navigation

Review Analyzer

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.

Tecnologias

TensorflowKerasPythonKibanaElasticSearchScikitDockerGithub

Utilização

Utilizando Online

Atualmente não temos um servidor com o nosso ambiente.

Instalando Localmente

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 :)

Rodando o Ambiente

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.

Rodando nossas ferramentas

Web Scrapping

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

Comunicação Elasticsearch

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

TF-IDF

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.

Contribuidores

Agradecimentos para essas pessoas maravilhosas (emoji key):

Cleber Júnior
Cleber Júnior

💻
Lucas Hiroshi Horinouchi
Lucas Hiroshi Horinouchi

💻 📖
Mateus Nóbrega
Mateus Nóbrega

💻
Francisco Heronildo
Lorrany Azevedo

💻

Este projeto segue all-contributors. Contribuições de todos os tipos são bem-vindas!

License

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.

About

O Review Analyser é um projeto com o objetivo de auxiliar na análise e classificação de reviews com exemplo e snippets

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •