Escolar Documentos
Profissional Documentos
Cultura Documentos
Projeto lp2-2011 Especificacao
Projeto lp2-2011 Especificacao
Viso geral
Sistemas de recomendao so softwares capazes de lhe ajudar a achar itens (produtos, servios, lugares, ...) que lhe interessam baseados nos seus hbitos e gostos. O elemento chave da lgica destes sistemas , naturalmente, o algoritmo de recomendao. Idealmente, o algoritmo deve produzir recomendaes precisas para os usurios sem inund-los com 1000 sugestes todos os dias. Uma caracterstica muito interessante desses algoritmos de recomendao que eles so independentes do problema no qual eles so usados. Podemos usar um mesmo algoritmo para realizar recomendaes de livros, msicas, jogos, restaurantes, etc. Isso possvel porque eles se baseiam apenas em opinies dos usurios para realizar o clculo das similaridades/dissimilaridades entre essas opinies e com isso realizar as recomendaes. Neste projeto, voc implementar um sistema de recomendao de lugares para almoar em Campina Grande (CG) capaz de usar mltiplos algoritmos para recomendar almoos para os usurios. Com essa funcionalidade, o sistema ser tanto til para usurios, que descobriro novos lugares para almoar, quanto para os alunos de computao, que podero explorar como diferentes algoritmos se comportam ao gerar recomendaes. Esse sistema tem semelhana com o Desafio 4, mas mais completo e sofisticado. Voc vai dar um nome ao seu sistema, mas aqui chamaremos ele de Pd12 (sigla para Pitaqueiro das 12h ) para facilitar a explicao. O Pd12 tem uma interface para que o usurio informe suas preferncias e receba recomendaes e uma interface para que o usurio compare algoritmos usando os dados j existentes no sistema. Ele tambm ter mais algoritmos e tipos de usurio que o sistema desenvolvido no Desafio 4, alm de funcionalidades. Alm disso, h uma parte pr-definida (bloco bsico) no projeto e uma outra parte que depende de sua criatividade (bloco avanado). Implementar corretamente a parte prdefinida vale 80% da nota. A parte que depende de sua criatividade vale os outros 20% (este documento descreve algumas sugestes de funcionalidades para a parte que depende de sua criatividade).
O sistema carrega de dois arquivos com formato semelhante aos usados no Desafio 4 uma lista de estabelecimentos que oferecem almoo em CG e uma lista de opinies de usurios sobre esses estabelecimentos. Cada estabelecimento tm, alm do nome, um endereo e o tipo de almoo servido: self service, prato feito, a la carte. O perfil de um usurio composto por suas opinies sobre os estabelecimentos. Uma opinio de um usurio um nmero de -5 a 5. Valores negativos representam que o usurio no gosta do estabelecimento (-5 significa que o usurio o detesta). Um valor positivo indica que o usurio gosta do estabelecimento (5 significa que o usurio adora ele). Zero significa que o usurio no possui opinio sobre aquele estabelecimento. Esse caso de uso satisfeito quando o usurio informa os arquivos que o sistema precisa e este fornece em sua interface uma lista que mostre todas as opinies dos usurios sobre os estabelecimentos cadastrados no sistema. Caso de uso 2: Lista de estabelecimentos com popularidade O usurio requisita do sistema uma lista ordenada dos estabelecimentos por popularidade. A popularidade de um estabelecimento a soma das opinies de todos os usurios no sistema sobre aquele estabelecimento. Esse caso de uso satisfeito quando o sistema, ao receber a requisio do usurio, produz a lista ordenada em sua interface. Caso de uso 3: Gerar Recomendao para usurio cadastrado O usurio do sistema deve ser capaz de selecionar um usurio que j possui as suas opinies cadastradas, escolher um algoritmo de recomendao entre os conhecidos no sistema, informar uma quantidade de itens a ser recomendados e receber recomendaes para o usurio selecionado. Os algoritmos de recomendao cuja implementao obrigatria so: 1. Popularidade global O sistema computa a popularidade de um lugar para almoar (restaurante, cantina, boteco) como a soma da opinio de todos os usurios sobre esse lugar. Os R lugares mais populares so recomendados para qualquer usurio independente das opinies que ele j tenha. 2. Personalizado, baseado no usurio mais semelhante A semelhana dos gostos de dois usurios pode ser calculada usando um conceito que voc aprendeu em clculo vetorial: produto escalar de dois vetores (pra voc lembrar, o produto escalar de [a, b, c] e [c,d,e] a.c + b.d + c.e). Se voc considerar as opinies do usurio A sobre trs lugares como um vetor [1, 1, -3] e a opinio de B e C sobre os trs mesmos lugares sendo [1, 2, 5] e [2, 1, -5], voc ver que as opinies de A e C so mais parecidas que as de A e B, e que o produto escalar dos vetores dos gostos de A e C um nmero maior que os de A e B. O algoritmo de recomendaes personalizadas procura, para um dado usurio U, quem o outro usurio U que tem o gosto mais semelhante a U, e recomenda a U os itens que U mais gostou que U ainda no conhece (no recomende itens que U no
gostou ou no leu!). Se o algoritmo precisar recomendar mais itens, ele considera tambm o segundo usurio mais semelhante a U, o terceiro, e assim por diante, at que a quantidade de R recomendaes seja atendida. Caso de uso 4: Recomendaes para usurio no cadastrado O usurio do sistema deve ser capaz de criar um novo usurio, informar seu nome e suas preferncias, e, selecionando um algoritmo de recomendao e uma quantidade de itens a ser recomendados, gerar recomendaes para esse novo usurio criado. Ele deve ser capaz tambm de alterar as opinies no perfil criado e gerar novas recomendaes quantas vezes quiser. No possvel gerar um perfil com um nome que j exista no sistema. Caso de uso 5: Inserir usurio O usurio do sistema deve ser capaz de salvar o perfil criado no Caso de uso 4. O perfil deve ser salvo no arquivo de dados atualmente usado pelo sistema. Caso de uso 6: Comparar algoritmos de recomendao nos dados
O sistema pergunta ao usurio a quantidade de itens a ser usada em cada recomendao e usa a lgica descrita no Desafio 4 para comparar todos os algoritmos de recomendao implementados nos sistema. Caso de uso 7: Filtros para recomendaes O usurio do sistema deve ser capaz de, ao selecionar um usurio para o qual o sistema deve recomendar estabelecimentos, definir um ou mais filtros para as recomendaes. O sistema deve oferecer uma lista de filtros possveis com ao menos dois filtros: por palavras-chave e por tipo de estabelecimento. Um filtro remove estabelecimentos da lista de recomendaes obtidas para o usurio com base na regra especificada pelo usurio do sistema. O filtro por palavras-chave remove todos os estabelecimentos cujo nome contenha (sem se importar com maisculas e minsculas) uma palavra informada pelo usurio. Por exemplo, o usurio pode estar interessado em recomendaes de estabelecimentos cujos nomes no contenham a palavra bar. O filtro por tipo de estabelecimento seleciona apenas estabelecimentos de um tipo (por exemplo, self-service). Caso de uso 8: Ordenao para recomendaes O usurio do sistema deve poder tambm, ao selecionar um usurio para o qual o sistema deve recomendar estabelecimentos, definir critrios de ordenao para as recomendaes que sero apresentadas, alm de indicar a quantidade de recomendaes que devem ser fornecidas. O sistema deve oferecer pelo menos dois tipos de ordenao: ordenao alfabtica baseada nos nomes dos estabelecimentos e ordenao por tipo de refeio oferecida.