Durante a cadeira de extracção e análise de dados web fizemos uma aplicação rails que intrepreta ficheiros gerados por scripts python que analisam os sentimentos das noticias em que politicos portugueses são mencionados.
Recolhemos noticias do site do Jornal de Noticias e Diário de Notícias através do beautifull soup. Adicionamos o corpo das noticias a uma base de dados SQlite (titulo, descriçao, link, summary, noticia, data). A pesquisa e noticias é feita a partir do whoosh com BM25. Pesquisa de entidades (Politicos) é feita a partir de regular expressions. Para identificar sentimentos utilizamos o sentilex-len.
No sevidor Rails utilizamos um controlador para gerir todas as views da app, e em cada view utilizamos apenas um gráfico por tipo de pesquisa. Para geração de gráficos utilizamos a biblioteca highcharts.
The default directory structure of a generated Ruby on Rails application:
|-- app | | | |-- controllers | | `-- graph_controller.rb | | | `-- views | |-- all_days.html.erb | |-- dois_politicos.html.erb | |-- index.html.erb | |-- mais_positivo.html.erb | |-- mais_referenciado.html.erb | |-- politico_referenciado.html.erb | |-- politico_referenciado_acumulado.html.erb | |-- positividade_dia.html.erb | `-- site_politcos.html.erb | `-- python_proj
app/controllers/graph_controller.rb
Controlador que vai buscar os dados gerados pelos scripts python para mandar para os gráficos das views
app/views/all_days.html.erb
Contains subdirectories for images, stylesheets, and JavaScript files.
app/views/dois_politicos.html.erb
A partir da análise do numero de noticias positivas/negativas em comum entre dois politicos, tenta inferir se dois politicos são amigos, ou não
app/views/index.html.erb
Pagina root do site onde se pode escolher varios tipos de pesquisa
app/views/mais_positivo.html.erb
Mostra o politico com mais noticias positivas num determinado dia
app/views/politico_referenciado.html.erb
Numero de referncias em noticias de um politico ao longo do tempo
app/views/mais_referenciado.html.erb
Mostra o numero de referencias a politicos nas noticias de um determinado dia
app/views/politico_referenciado_acumulado.html.erb
Numero de referncias acumuladas em noticias de um politico ao longo do tempo
app/views/positividade_dia.html.erb
Mostra o numero de noticias positivas, negativas ou neutras de um determinado dia
app/views/site_politicos.html.erb
Sites onde o politico é referencias
app/views/all_days.html.erb
Mostra o numero de noticias positivas, negativas ou neutras de todos os dias
Instala rails 3.2 e ruby 1.9.3 da maneira mais engraçada que arranjares. gem install bundle (se ainda não usavas bundle...) bundle install rails s