/** * Read predictions from a CSV file. * @param buf A CSV file reader. * @return The item scorer. */ public static PrecomputedItemScorer fromCSV(@WillClose BufferedReader buf) { StringTokenizer tok = new StringTokenizer((String) null, ","); Builder bld = new Builder(); try (ObjectStream<List<String>> rows = new LineStream(buf).tokenize(tok)) { for (List<String> row : rows) { // FIXME Add error checking long user = Long.parseLong(row.get(0)); long item = Long.parseLong(row.get(1)); double score = Double.parseDouble(row.get(2)); bld.addScore(user, item, score); } } return bld.build(); }
/** * Read predictions from a CSV file. * @param buf A CSV file reader. * @return The item scorer. */ public static PrecomputedItemScorer fromCSV(@WillClose BufferedReader buf) { StrTokenizer tok = new StrTokenizer((String) null, ","); Builder bld = new Builder(); try (ObjectStream<List<String>> rows = new LineStream(buf).tokenize(tok)) { for (List<String> row : rows) { // FIXME Add error checking long user = Long.parseLong(row.get(0)); long item = Long.parseLong(row.get(1)); double score = Double.parseDouble(row.get(2)); bld.addScore(user, item, score); } } return bld.build(); }
/** * Construct a new builder for precomputed item scorers. This is useful for building item * scorers for mocks. * * @return A new builder for item scorers. */ public static Builder newBuilder() { return new Builder(); } }
/** * Construct a new builder for precomputed item scorers. This is useful for building item * scorers for mocks. * * @return A new builder for item scorers. */ public static Builder newBuilder() { return new Builder(); } }