summaryrefslogtreecommitdiff
path: root/src/de/lmu/ifi/dbs/elki/datasource/filter/normalization/InverseDocumentFrequencyNormalization.java
diff options
context:
space:
mode:
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.java20
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