diff options
Diffstat (limited to 'src/de/lmu/ifi/dbs/elki/datasource/filter/normalization/InverseDocumentFrequencyNormalization.java')
-rw-r--r-- | src/de/lmu/ifi/dbs/elki/datasource/filter/normalization/InverseDocumentFrequencyNormalization.java | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/de/lmu/ifi/dbs/elki/datasource/filter/normalization/InverseDocumentFrequencyNormalization.java b/src/de/lmu/ifi/dbs/elki/datasource/filter/normalization/InverseDocumentFrequencyNormalization.java index 9350426b..24f3a850 100644 --- a/src/de/lmu/ifi/dbs/elki/datasource/filter/normalization/InverseDocumentFrequencyNormalization.java +++ b/src/de/lmu/ifi/dbs/elki/datasource/filter/normalization/InverseDocumentFrequencyNormalization.java @@ -40,15 +40,17 @@ import de.lmu.ifi.dbs.elki.data.type.TypeUtil; * @author Erich Schubert * * @apiviz.uses SparseNumberVector + * + * @param <V> Vector type */ -public class InverseDocumentFrequencyNormalization<V extends SparseNumberVector<V, ?>> extends AbstractNormalization<V> { +public class InverseDocumentFrequencyNormalization<V extends SparseNumberVector<?>> extends AbstractNormalization<V> { /** - * The IDF storage + * The IDF storage. */ TIntDoubleMap idf = new TIntDoubleHashMap(); /** - * The number of objects in the dataset + * The number of objects in the dataset. */ int objcnt = 0; @@ -73,13 +75,7 @@ public class InverseDocumentFrequencyNormalization<V extends SparseNumberVector< BitSet b = featureVector.getNotNullMask(); for(int i = b.nextSetBit(0); i >= 0; i = b.nextSetBit(i + 1)) { if(featureVector.doubleValue(i) >= 0.0) { - Number c = idf.get(i); - if(c == null) { - idf.put(i, 1); - } - else { - idf.put(i, c.intValue() + 1); - } + idf.put(i, idf.get(i) + 1); } } objcnt += 1; @@ -103,7 +99,7 @@ public class InverseDocumentFrequencyNormalization<V extends SparseNumberVector< for(int i = b.nextSetBit(0); i >= 0; i = b.nextSetBit(i + 1)) { vals.put(i, (float) (featureVector.doubleValue(i) * idf.get(i))); } - return featureVector.newNumberVector(vals, featureVector.getDimensionality()); + return ((SparseNumberVector.Factory<V, ?>) factory).newNumberVector(vals, featureVector.getDimensionality()); } @Override @@ -113,7 +109,7 @@ public class InverseDocumentFrequencyNormalization<V extends SparseNumberVector< for(int i = b.nextSetBit(0); i >= 0; i = b.nextSetBit(i + 1)) { vals.put(i, (float) (featureVector.doubleValue(i) / idf.get(i))); } - return featureVector.newNumberVector(vals, featureVector.getDimensionality()); + return ((SparseNumberVector.Factory<V, ?>) factory).newNumberVector(vals, featureVector.getDimensionality()); } @Override |