【发布时间】:2019-04-10 23:31:41
【问题描述】:
我正在制作一个程序,可以根据用户之前看过的电影(存储在数据库中)向用户推荐一些新电影。在这种情况下,我考虑了过去电影的类型,然后将其用于查找新电影(具有相似类型)。我现在遇到的问题是实现算法,这是我到目前为止的代码
MovieWatchedDao.java
public Movie recommendMovie(String username) throws DaoException {
Connection con = null;
PreparedStatement ps = null;
Movie m = null;
String jsonStr = m.getGenre();
String[] temp;
String delimiter = ",";
temp = jsonStr.split(delimiter);
String genre = temp [0];
String genre1 = temp [1];
String genre2 = temp[2];
try {
String query = "SELECT * FROM MOVIES WHERE GENRE LIKE ? OR GENRE LIKE ? OR GENRE LIKE ? ";
ps = con.prepareStatement(query);
ps.setString(1, genre);
ps.setString(2, genre1);
ps.setString(3, genre2);
ps.execute();
System.out.println(query);
System.out.println("Recommend movies");
}catch (SQLException e)
{
throw new DaoException(e.getMessage());
}
return m;
}
server.java
else if ("recommend".equals(command))
{
String username = tokens[1];
try {
Movie m = IMovieWatched.findMovieByUser(username);
//Get the genres
String jsonStr = m.getGenre();
// socketWriter.println(jsonStr);
String[] items = jsonStr.split(",");
List<String> itemList = Arrays.asList(items);
socketWriter.println(itemList);
}catch(DaoException e)
{
e.printStackTrace();
}
}
这里的想法是让用户输入 recommend tommy,算法将从数据库中取出 Tommy 看过的电影列表并收集这些电影的类型。然后,返回给用户 3 部相似类型的电影。
【问题讨论】:
-
指定。您在实现类/接口/其他方面有什么困难?
-
用语言来解释是相当复杂的。我的代码是根据存储在数据库中的用户名推荐电影(我有一个 watched 表,其中存储了用户名和电影 ID)。我还有一个单独的表格,专门用于存储所有电影数据的电影。
-
我想从特定用户的观看表中获取电影 ID,假设电影 ID 为 55 的 Tommy。然后我从电影表中获取 ID 为 55 的电影并获取该电影的流派.
-
最后,我想向 Tommy 推荐一份与他已经看过的电影类型相似的电影列表
-
但是您的代码没有得到推荐的电影吗?还有什么要补充的?也许您需要将结果保存到类内部/外部的变量中。
标签: java