public String getMax() { double max = Double.MIN_VALUE; String maxterm = null; for (Object2DoubleMap.Entry<String> entry : object2DoubleEntrySet()) { if (max < entry.getDoubleValue()) { max = entry.getDoubleValue(); maxterm = entry.getKey(); } } return maxterm; }
public double cossimDebug(TermVectorDouble v) { if (this.size() > v.size()) { return v.cossimDebug(this); } double dotproduct = 0; for (Object2DoubleMap.Entry<String> entry : object2DoubleEntrySet()) { dotproduct += v.getDouble(entry.getKey()) * entry.getDoubleValue(); log.info( "%s %f %f %s", entry.getKey(), v.getDouble(entry.getKey()), entry.getDoubleValue(), dotproduct); } double magnitude = magnitude() * v.magnitude(); log.info("magnitude %s %s %s", magnitude(), v.magnitude(), dotproduct / magnitude); return (magnitude == 0) ? 0 : dotproduct / magnitude; }
public TermVectorDouble normalize() { double total = total(); if (total != 1) { for (Object2DoubleMap.Entry<String> entry : object2DoubleEntrySet()) { entry.setValue(entry.getDoubleValue() / total); } } magnitude = null; total = 1; return this; }
public void remove(TermVectorDouble v) { for (Object2DoubleMap.Entry<String> entry : v.object2DoubleEntrySet()) { add(entry.getKey(), -entry.getDoubleValue()); } magnitude = null; }