Skip to content

USP - ACH2098 - Web Semântica - Implementação do Exercício Programa

License

Notifications You must be signed in to change notification settings

pinha-usp/usp.ach2098.ep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ontologia

Classes e propriedades

Classe SubClassOf Propriedades
Indivíduo
  • Nome (String)
  • Ano de nascimento (Inteiro)
Usuário Indivíduo
  • Email (String)
Ator Indivíduo
Diretor Indivíduo
Temática
  • Nome (String)
  • Descrição (String)
Filme
  • Título (String)
  • Ano de lançamento (Inteiro)
  • Atores (Ator[], min 1)
  • Diretores (Diretor[], min 1)
  • Nacionalidade (String)
  • Temática (Temática)
  • Prêmios (Prêmio[])
  • Avaliações (Avaliação[])
Visualização
  • DeFilme (Filme)
  • VistoPor (Usuário)
Avaliação
  • SobreFilme (Filme)
  • FeitaPor (Usuário)
  • Nota (Inteiro (min 1, max 5))
Prêmio
  • Nome (String)
  • VencidoPor (Filme)
Evento
  • Nome (String)
  • Ano (Inteiro)
  • Prêmios (Prêmio[])

Sobre o sistema

Algoritmo de recomendação

O algoritmo de recomendação será baseado no histórico de visualizações de filmes do usuário. Quando um usuário assiste a um filme, uma nova instância Visualização é criada. O sistema então busca pelas últimas visualizações do usuário e, com base nas informações dos filmes assistidos, recomenda novos filmes

As propriedades dos filmes que são levadas em consideração nas recomendações são:

  • Temática
  • Atores
  • Nacionalidade

Por exemplo, se o usuário anda assistindo muitos filmes de terror (temática) do japão (nacionalidade), o sistema recomendará filmes que sejam, preferencialmente, de terror no japão

Outro exemplo, se o usuário adora filmes do Adam Sandler, o sistema irá recomendar outros filmes em que o ator aparece

Para o sistema saber se um filme deve ser recomendado, ele utiliza o seguinte algoritmo:

  1. Obtém os últimos filmes assistidos pelo usuário (no máximo 10)
  2. Lista todas as propriedades de todos os filmes
  3. Para cada propriedade, obtém aquelas que aparecem em mais de 30% dos filmes
  4. Para saber se um filme é recomendável, verifica se ele tem ao menos uma propriedade em comum com as propriedades acima de 30% obtidas anteriormente

Caso nenhuma das propriedades apareçam em mais de 30% dos filmes, o sistema leva em consideração que os filmes que o usuário assistiu são muito diversificados, e portanto apenas recomenda os filmes mais populares da plataforma

Exemplo de implementação

Queremos saber se o filme com as seguintes propriedades é recomendável:

  • Temática Comédia
  • Atores Adam Sandler
  • Nacionalidade Indiano
  1. Obtém os últimos filmes assistidos pelo usuário
Temática Atores Nacionalidade
Terror Adam Sandler Brasileiro
Terror João, Eddie Murphy Indiano
Comédia Eddie Murphy Brasileiro
  1. Lista todas as propriedades de todos os filmes
Temática Atores Nacionalidade
  • Terror (2)
  • Comédia (1)
  • Adam Sandler (1)
  • Eddie Murphy (2)
  • João (1)
  • Brasileiro (2)
  • Indiano (1)
  1. Para cada propriedade, obtém aquelas que aparecem em mais de 30% dos filmes
Temática Atores Nacionalidade
Terror Eddie Murphy Brasileiro
  1. Para saber se um filme é recomendável, verifica se ele tem ao menos uma propriedade em comum com as propriedades acima de 30% obtidas anteriormente

Como o filme em questão que estamos validando não possui nenhuma propriedade em comum com as propriedades calculadas, então o filme não é recomendável para o usuário

Agora se, por exemplo, tivessemos um filme brasileiro, que fosse de terror ou que tivesse o Eddie Murphy, então ele seria recomendável

Por fim, é dever do sistema iterar pelos filmes existentes na ontologia e verificar quais são recomendáveis para o usuário

About

USP - ACH2098 - Web Semântica - Implementação do Exercício Programa

Topics

Resources

License

Stars

Watchers

Forks

Languages