我正在尝试使用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

10-06 12:40
查看更多