@Override public void setFeatureValue(int fid, float fval) { if(fid <= 0 || fid >= fVals.length) { throw RankLibError.create("Error in DenseDataPoint::setFeatureValue(): feature (id=" + fid + ") not found."); } fVals[fid] = fval; }
@Override public void setFeatureValue(final int fid, final float fval) { if (fid <= 0 || fid >= fVals.length) { throw RankLibError.create("Error in DenseDataPoint::setFeatureValue(): feature (id=" + fid + ") not found."); } fVals[fid] = fval; }
public static double mean(final double[] values) { double mean = 0.0; if (values.length == 0) { throw RankLibError.create("Error in BasicStats::mean(): Empty input array."); } for (final double value : values) { mean += value; } return mean / values.length; } }
public void await() { for (int i = 0; i < size; i++) { try { semaphore.acquire(); } catch (final Exception ex) { throw RankLibError.create("Error in MyThreadPool.await(): ", ex); } } for (int i = 0; i < size; i++) { semaphore.release(); } }
public void execute(Runnable task) { try { semaphore.acquire(); super.execute(task); } catch(Exception ex) { throw RankLibError.create("Error in MyThreadPool.execute(): ", ex); } } protected void afterExecute(Runnable r, Throwable t)
@Override public void execute(final Runnable task) { try { semaphore.acquire(); super.execute(task); } catch (final Exception ex) { throw RankLibError.create("Error in MyThreadPool.execute(): ", ex); } }
public void await() { for(int i=0;i<size;i++) { try { semaphore.acquire(); } catch(Exception ex) { throw RankLibError.create("Error in MyThreadPool.await(): ", ex); } } for(int i=0;i<size;i++) semaphore.release(); } public int[] partition(int listSize)
/** * Write a text to a file. * @param filename The output filename. * @param encoding The encoding of the file. * @param strToWrite The string to write. */ public static void write(final String filename, final String encoding, final String strToWrite) { try (final BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename), encoding))) { out.write(strToWrite); } catch (final Exception e) { throw RankLibError.create(e); } }
/** * Copy a file. * @param srcFile The source file. * @param dstFile The copied file. */ public static void copyFile(final String srcFile, final String dstFile) { try (FileInputStream fis = new FileInputStream(new File(srcFile)); FileOutputStream fos = new FileOutputStream(new File(dstFile))) { final byte[] buf = new byte[40960]; int i = 0; while ((i = fis.read(buf)) != -1) { fos.write(buf, 0, i); } } catch (final IOException e) { throw RankLibError.create("Error in FileUtils.copyFile: ", e); } }
public void copyModel(final CoorAscent ranker) { weight = new double[features.length]; if (ranker.weight.length != weight.length) { throw RankLibError.create("These two models use different feature set!!"); } copy(ranker.weight, weight); logger.info(() -> "Model loaded."); }
@Override public void setFeatureValue(final int fid, final float fval) { if (fid <= 0 || fid > getFeatureCount()) { throw RankLibError.create("Error in SparseDataPoint::setFeatureValue(): feature (id=" + fid + ") out of range."); } final int pos = locate(fid); if (pos >= 0) { fVals[pos] = fval; } else { throw RankLibError.create("Error in SparseDataPoint::setFeatureValue(): feature (id=" + fid + ") not found."); } }
@Override public float getFeatureValue(int fid) { if(fid <= 0 || fid >= fVals.length) { throw RankLibError.create("Error in DenseDataPoint::getFeatureValue(): requesting unspecified feature, fid=" + fid); } if(isUnknown(fVals[fid]))//value for unspecified feature is 0 return 0; return fVals[fid]; }
@Override public float getFeatureValue(final int fid) { if (fid <= 0 || fid >= fVals.length) { if (missingZero) { return 0f; } throw RankLibError.create("Error in DenseDataPoint::getFeatureValue(): requesting unspecified feature, fid=" + fid); } if (isUnknown(fVals[fid])) { return 0; } return fVals[fid]; }
/** * Save a sample set to file * @param samples * @param outputFile */ public static void save(final List<RankList> samples, final String outputFile) { try (final BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile)))) { for (final RankList sample : samples) { save(sample, out); } } catch (final Exception ex) { throw RankLibError.create("Error in FeatureManager::save(): ", ex); } }
public Ranker loadRankerFromString(final String fullText) { try (BufferedReader in = new BufferedReader(new StringReader(fullText))) { final String content = in.readLine().replace("## ", "").trim();//read the first line to get the name of the ranking algorithm logger.info(() -> "Model: " + content); final Ranker r = createRanker(map.get(content.toUpperCase())); r.loadFromString(fullText); return r; } catch (final Exception ex) { throw RankLibError.create(ex); } } }
public static List<String> readLine(final String filename, final String encoding) { final List<String> lines = new ArrayList<>(); try (final BufferedReader in = smartReader(filename, encoding)) { String content = null; while ((content = in.readLine()) != null) { content = content.trim(); if (content.length() == 0) { continue; } lines.add(content); } } catch (final Exception ex) { throw RankLibError.create(ex); } return lines; }
public void save(final String modelFile) { // Determine if the directory to write to exists. If not, create it. final Path parentPath = Paths.get(modelFile).toAbsolutePath().getParent(); // Create the directory if it doesn't exist. Give it 755 perms if (Files.notExists(parentPath)) { try { final Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxr-xr-x"); final FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms); Files.createDirectory(parentPath, attr); } catch (final Exception e) { throw RankLibError.create("Error creating kcv model file directory " + modelFile, e); } } FileUtils.write(modelFile, "ASCII", model()); }
@Override public float getFeatureValue(final int fid) { if (fid <= 0 || fid > getFeatureCount()) { if (missingZero) { return 0f; } throw RankLibError.create("Error in SparseDataPoint::getFeatureValue(): requesting unspecified feature, fid=" + fid); } final int pos = locate(fid); if (pos >= 0) { return fVals[pos]; } return 0; // Should ideally be returning unknown? }
@Override public void normalize(final RankList rl) { if (rl.size() == 0) { throw RankLibError.create("Error in LinearNormalizor::normalize(): The input ranked list is empty"); } final int nFeature = rl.getFeatureCount(); final int[] fids = new int[nFeature]; for (int i = 1; i <= nFeature; i++) { fids[i - 1] = i; } normalize(rl, fids); }
@Override public void normalize(RankList rl) { if(rl.size() == 0) { throw RankLibError.create("Error in LinearNormalizor::normalize(): The input ranked list is empty"); } int nFeature = DataPoint.getFeatureCount(); int[] fids = new int[nFeature]; for(int i=1;i<=nFeature;i++) fids[i-1] = i; normalize(rl, fids); } @Override