Sistema de recomendação em Java
O python domina a área de inteligência artificial, mas sabia que com Java também é possível fazer algumas coisas?
Neste artigo, irei abordar alguns conceitos e faremos uma aplicação bem simples de recomendação de livros e filmes
Primeiramente, você sabe o que é machine learning?
Se trata do aprendizado de máquina, um ramo da IA (inteligência artificial) que se baseia na ideia de que sistemas são capazes de aprender com dados, identificar padrões e realizar tomadas de decisões com o mínimo de intervenção de um ser humano.
E o que são sistemas de recomendação?
São técnicas de software que fornecem sugestões de itens para ajudar usuários deste sistema nos diversos processos de tomada de decisão.
Seria como um vendedor que só com alguns minutos de conversa já sabe qual produto é o ideal para o seu cliente.
Utilizaremos o algoritmo Person Correlation Similarity que se baseia na similaridade entre pessoas na hora de escolher e atribuir notas, para determinar os resultados de sua recomendação.
E aí bora codar?
Antes de tudo verifique se já tem ou instale o Eclipse (versão Java EE Developers).
Se for sua primeira vez utilizando o Maven, que é um gerenciador de dependências, deverá fazer download do mesmo (descompactar) e executar os seguintes passos:
Caso você já tenha o Maven configurado, basta criar um novo Maven project do tipo QuickStart.
Agora vamos realizar a seguinte configuração, dentro do arquivo pom.xml, estão as nossas dependências, vamos adicionar o Mahout e o Hadoop client, seu arquivo deverá estar parecido com este (os comentários são para facilitar a compreensão do que foi utilizado em cada parte do projeto):
Dentro da pasta src\main\java\br\com\(nome da sua organização), vamos criar o arquivo Recomendador.java, que guarda os modelos de dados que serão analisados:
Os arquivos livros.csv e filmes.csv você pode acessar neste link: https://github.com/Kamilahsantos/sistema-de-recomendacao-java-mahout/tree/master/src/main/resources
Ainda nesta pasta, vamos criar o arquivo RecomendadorBuilder.java , que como o nome já diz, constrói a lógica para o nosso recomendador:
Vamos recomendar filmes para os nossos usuários? Vamos criar o arquivo RecomendaFilmes.java:
Tamém vamos recomendar livros, crie o arquivo RecomendaLivros.java
Para avaliar a margem de erro do nosso recomendador, criamos o arquivo Avaliador.java
Agora só executar!!! Escolha se quer executar o Avaliador, RecomendaLivros ou RecomendaFilmes.
Se ao executar exibir um erro referente ao log4j, devemos criar o arquivo log4j.xml com este conteúdo:
Alguma dúvida ou sugestão?
Aqui está o repositório com o código e as referências utilizadas para construir este artigo: