/** * {@inheritDoc} */ @Override public DataModelIF<Long, Long> parseData(final File f) throws IOException { DataModelIF<Long, Long> dataset = new DataModel<>(); Reader in = new InputStreamReader(new FileInputStream(f), "UTF-8"); Iterable<CSVRecord> records; if (isHasHeader()) { records = CSVFormat.EXCEL.withDelimiter(getDelimiter()).withHeader().parse(in); } else { records = CSVFormat.EXCEL.withDelimiter(getDelimiter()).parse(in); } for (CSVRecord record : records) { long userID = Long.parseLong(record.get(getUserTok())); long itemID = Long.parseLong(record.get(getItemTok())); double preference = Double.parseDouble(record.get(getPrefTok())); dataset.addPreference(userID, itemID, preference); } in.close(); return dataset; } }
/** * {@inheritDoc} */ @Override public TemporalDataModelIF<Long, Long> parseTemporalData(final File f) throws IOException { TemporalDataModelIF<Long, Long> dataset = DataModelFactory.getDefaultTemporalModel(); Reader in = new InputStreamReader(new FileInputStream(f), "UTF-8"); Iterable<CSVRecord> records; if (isHasHeader()) { records = CSVFormat.EXCEL.withDelimiter(getDelimiter()).withHeader().parse(in); } else { records = CSVFormat.EXCEL.withDelimiter(getDelimiter()).parse(in); } for (CSVRecord record : records) { long userID = Long.parseLong(record.get(getUserTok())); long itemID = Long.parseLong(record.get(getItemTok())); long timestamp = -1L; if (getTimeTok() != -1) { timestamp = Long.parseLong(record.get(getTimeTok())); } double preference = Double.parseDouble(record.get(getPrefTok())); dataset.addPreference(userID, itemID, preference); dataset.addTimestamp(userID, itemID, timestamp); } in.close(); return dataset; }