我正在尝试使用Movielens 100k电影数据集开发推荐系统。对于已经存在于数据集中的用户ID来说,它不能很好地工作,但是我想注册一个新用户,并以固定编号获得其评级。电影(例如5),然后根据分析给他推荐。为了进行分析,我需要将他提供的评级(至5部电影)添加到csv格式的数据集中。从屏幕快照中检查我的Eclipse Maven目录结构。我想修改data文件夹下的rating.csv。
从前端获取数据后,如何将其附加到rating.csv中以扩展数据集,从而允许新用户获得建议。
rating.csv包含以下列
user_id movie_id ratings
我可以以某种方式将数据附加到rating.csv
最佳答案
private static void writeToCSV(List<Data> dataList) throws FileNotFoundException {
PrintWriter pw = new PrintWriter(new File("D:\\test.csv"));
StringBuilder sb = new StringBuilder();
sb.append("PAN,");
sb.append("REASON,");
sb.append("DATE");
sb.append("\n");
dataList.stream().map((data) -> {
sb.append(data.getPan() + ",");
return data;
}).map((data) -> {
sb.append(data.getReason() + ",");
return data;
}).map((data) -> {
sb.append(data.getDateTime() + "");
return data;
}).forEach((_item) -> {
sb.append("\n");
});
pw.write(sb.toString());
pw.close();
System.out.println("done!");
}
如果要使用空格格式化csv数据,则可以使用StringUtils(org.apache.commons.lang)
private static String rightPad(String text, int length) {
return StringUtils.rightPad(text, length, " ");
}
private static String leftPad(String text, int length) {
return StringUtils.leftPad(text, length, " ");
}
因此,将数据写入csv文件,我认为不需要另一个lib