2010-03-31 6 views
6

Necesito ayuda para diseñar un algoritmo para recomendaciones sobre películas.Algoritmo: cree una recomendación para películas que le gusten

Todos los usuarios del sistema graban películas con una puntuación entre 1-100.

Tablas consisten en:

Table Movies 
ID Name Year Rating Runtime 

Table Con_MoviesToGenres 
MovieID GenreID 

Table Con_MovieToUser 
MovieID UserID Grade 

Estoy intentando crear una consulta SELECT para volver 5 películas más recomendadas para una película específica.

Teniendo en cuenta, quiero integrar de alguna manera, géneros similares, grados más altos & clasificación de películas (por lo que se recomienda una película con clasificación R para una película con clasificación PG, a menos que realmente se recomiende en todos los demás aspectos). Además, si la película coincide con más de un género, aumentará su índice de recomendación.

Bonificación: si un usuario le da un grado bajo a una película -> perderá la proporción de recomendación.

Actualización: Me refiero a un usuario y un título. Cada vez que un usuario ingresa en una "página de película", obtendrá recomendaciones para otras películas que le puedan gustar.

Respuesta

4
+0

ahhhhhhhhhhhhhhhhhhhhhhhhhh – Faruz

+0

Esto es complicado, lo sé, pero nunca dije que no lo fuera. (esta línea es stolon;) –

1

Esto tiene que hacerse a nivel atómico: calcule las recomendaciones de un título O usuario a la vez.

No hay forma de que pueda ajustar todos los detalles en una consulta SQL. Esto tiene que hacerse es código real.

+0

I destinados a un usuario y un título. Cada vez que un usuario ingresa en una "página de película", obtendrá recomendaciones para otras películas que le puedan gustar. – Faruz

+0

Bueno para ti. Mi respuesta sigue siendo la misma. –

1

no pueden ser relevantes para SQL, pero si te gusta pitón, hay algunos tutorial sobre este tema en un libro llamado Collective Intelligence

2

Si los usuarios A y B han visto 10 películas en común, y hay una alta correlación positiva entre sus calificaciones (lo que implica que ambos tienen opiniones similares sobre películas), podría tomar una película que el usuario B le haya dado una calificación alta y recomendarla al usuario A.

Para hacer algo como esto, tal vez podría calcular previamente una tabla adicional que asigna el usuario X y el usuario Y a la cantidad de películas que han visto en común y la correlación de Pearson entre sus clasificaciones

Cuando un usuario solicita una recomendación que podría utilizar esta tabla para encontrar un usuario altamente correlacionada, y luego recomendar algo que ha visto y gustado lo que esta persona no tiene

Para situaciones en las que un usuario no tiene suficientes usuarios comunes con cualquier otra persona, puede recurrir a recomendar la película con la calificación más alta en general que el usuario no ha visto

+0

Pero si ambos vieron las mismas películas, pero al usuario B realmente no les gustó, mientras que el usuario A los amaba? – Faruz

+0

entonces su correlación sería menor y usted podría elegir a alguien más en lugar del Usuario B, para encontrar una película para el usuario A –

1

Es posible que desee comprobar la competencia de NetFlix. Encontrado un artículo sobre él here. Al menos puede darle algunas buenas ideas ...

Cuestiones relacionadas