Busca Tretas

Asneiras como a que aconteceu com o I-Online, ou como o fecho do Jornal Semanário em Outubro de 2009, ou ainda como o desperdiçar dos espólios do Primeiro de Janeiro, de valor incalculável, foram alguns dos motivos que nos levaram a criar, em fins de 2009, o projecto Busca Tretas, que apresentamos publicamente, pela primeira vez, neste post. O primeiro commit foi exactamente em 2009-10-31 00:44:14.

Os objectivos do projecto começaram por ser simplesmente termos uma cache dos artigos dos principais media on-line portugueses. A partir deste ponto, as coisas evoluíram de forma quase orgânica.


Reparámos, enquanto paralelamente a este projecto ia-mos trabalhando no tretas.org, que o acesso às notícias dos jornais on-line era dificil através dos motores de busca convencionais, dado que os resultados eram poluídos por inúmeros blogs, posts em fóruns, etc. Reparámos também que os serviços de busca na generalidade dos media on-line era muito pobre. O passo seguinte foi acrescentar ao sistema a capacidade de indexar os artigos recolhidos e fazer buscas sobre estes.

Assim, nascendo quase sempre das necessidades que tínhamos, quer pessoais quer a nível do tretas.org, foi desenvolvido o seguinte conjunto de características principais:

  • Cache das notícias – ao utilizador nunca é mostrado mais do que um pequeno excerto da notícia, por razões de direitos de cópia, ao contrário da Google, não nos podemos dar ao luxo de mostrar a cache;

    Motor de Busca

  • Motor de busca (probabilístico e booleano);

    Motor de Busca - Resultados

  • Artigos relacionados com o artigo corrente (related);
  • Navegação das notícias filtradas por data e por outros filtros;

    Navegar por dia

  • Sistema de bookmarks: um utilizador registado pode fazer bookmarks das notícias que quiser e mais tarde pode catalogar essas notícias com tags e comentários. Os bookmarks são públicos a menos que se faça indicação expressa em contrário. Assim podemos passar a terceiros a nossa lista de bookmarks. Por exemplo, eu ando a investigar os últimos acontecimentos com os nossos tristes serviços de informações, por isso tenho construída esta lista de bookmarks.

    Bookmarks e diálogo de filtragem

  • Neste momento já indexámos fontes como o Público, ou o Diário de Notícias. Conseguimos fazer buscas nos últimos 10 anos de actividade destes e doutros jornais;

Temos na calha o desenvolvimento de outras ideias que julgamos interessantes:

  • Filtragem dos artigos utilizando filtros bayeseanos, da mesma forma que se detectam mensagens de spam. Neste caso identificaríamos artigos sobre determinados assuntos. Poder-se-iam criar feeds de notícias de acordo com temas gerais (em estudo);
  • Alarmes accionados por palavras chave nas notícias, que poderiam ser enviados por email (em desenvolvimento avançado);
  • Comentários em bookmarks (em apreciação, talvez seja para isso que o Reddit existe!);
  • Gravar queries como se fosse mais um bookmark (em apreciação);

Consideramos o software está em estado alfa, há inúmeras tarefas que têm de ser feitas, tais como, limpeza do JS que está espalhado por todo o lado. Fazer o refactoring de algumas partes do código, especialmente adaptar os scraper para ligação a um web robot (os jornais estão a abandonar a identificação dos artigos por ID, o que implica técnicas mais sofisticadas de busca dos artigos), etc (a lista TODO é grande demais para colocar aqui!).

É nossa firme convicção que este trabalho deveria ser feito a nível da Biblioteca Nacional, à semelhança do que já acontece com os jornais em árvore morta. As ferramentas extra de tratamento da informação, seriam apenas um bónus.

Finalmente, apenas uma pequena nota técnica:

  • O sistema foi desenvolvido em Python;
  • A indexação e busca é feita usando a biblioteca Xapian;
  • Como base de dados usamos o PostgreSQL;
  • Usamos o Django para a interface com o utilizador;
  • Neste momento indexamos quase 4 milhões de artigos (3856366 no momento em que escrevo este texto). Todos os dias indexamos em média mais 1500 artigos;
  • O sistema corre num servidor obsoleto, um HP Proliant ML110 G3 com 4GB de RAM (conheço empresas que não conseguiam correr uma firewall numa máquina destas…);
  • A ligação à Internet é uma ligação doméstica com IP dinâmico, de 4Mbps/128kbps (motivo pelo qual não devemos conseguir suportar mais do que meia dúzia de ligações).

A nossa ideia, do Projecto tretas.org, é continuar a utilizar este sistema quase de forma particular, dado que não temos po$$ibilidades de colocar o sistema em hardware decente, com um link que suporte mais do que o modestíssimo tráfego que agora suportamos.

Em todo o caso, resolvemos divulgar este trabalho na esperança de encontrar apoios que permitam levar este projecto para o nível seguinte.

Estamos, como sempre, abertos a críticas construtivas e propostas de colaboração.

Deixe um comentário