You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by sm...@apache.org on 2013/11/15 15:48:18 UTC
svn commit: r1542279 - in /mahout/trunk: CHANGELOG
core/src/main/java/org/apache/mahout/vectorizer/encoders/InteractionValueEncoder.java
core/src/test/java/org/apache/mahout/vectorizer/encoders/InteractionValueEncoderTest.java
Author: smarthi
Date: Fri Nov 15 14:48:18 2013
New Revision: 1542279
URL: http://svn.apache.org/r1542279
Log:
MAHOUT-1357: InteractionValueEncoder produces wrong traceDictionary entries
Modified:
mahout/trunk/CHANGELOG
mahout/trunk/core/src/main/java/org/apache/mahout/vectorizer/encoders/InteractionValueEncoder.java
mahout/trunk/core/src/test/java/org/apache/mahout/vectorizer/encoders/InteractionValueEncoderTest.java
Modified: mahout/trunk/CHANGELOG
URL: http://svn.apache.org/viewvc/mahout/trunk/CHANGELOG?rev=1542279&r1=1542278&r2=1542279&view=diff
==============================================================================
--- mahout/trunk/CHANGELOG (original)
+++ mahout/trunk/CHANGELOG Fri Nov 15 14:48:18 2013
@@ -2,6 +2,8 @@ Mahout Change Log
Release 0.9 - unreleased
+ MAHOUT-1355: InteractionValueEncoder produces wrong traceDictionary entries (Johannes Schulte via smarthi)
+
MAHOUT-1343: JSON output format support in cluster dumper (Telvis Calhoun via sslavic)
MAHOUT-1333: Fixed examples bin directory permissions in distribution archives (Mike Percy via sslavic)
Modified: mahout/trunk/core/src/main/java/org/apache/mahout/vectorizer/encoders/InteractionValueEncoder.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/vectorizer/encoders/InteractionValueEncoder.java?rev=1542279&r1=1542278&r2=1542279&view=diff
==============================================================================
--- mahout/trunk/core/src/main/java/org/apache/mahout/vectorizer/encoders/InteractionValueEncoder.java (original)
+++ mahout/trunk/core/src/main/java/org/apache/mahout/vectorizer/encoders/InteractionValueEncoder.java Fri Nov 15 14:48:18 2013
@@ -17,10 +17,11 @@
package org.apache.mahout.vectorizer.encoders;
+import java.util.Locale;
+
import org.apache.mahout.math.Vector;
-import java.util.Arrays;
-import java.util.Locale;
+import com.google.common.base.Charsets;
public class InteractionValueEncoder extends FeatureVectorEncoder {
private final FeatureVectorEncoder firstEncoder;
@@ -86,7 +87,8 @@ public class InteractionValueEncoder ext
for (Integer j : jValues) {
int n = (k + j) % data.size();
if (isTraceEnabled()) {
- trace(String.format("%s:%s", Arrays.toString(originalForm1), Arrays.toString(originalForm2)), n);
+ trace(String.format("%s:%s", new String(originalForm1, Charsets.UTF_8), new String(originalForm2,
+ Charsets.UTF_8)), n);
}
data.set(n, data.get(n) + w);
}
Modified: mahout/trunk/core/src/test/java/org/apache/mahout/vectorizer/encoders/InteractionValueEncoderTest.java
URL: http://svn.apache.org/viewvc/mahout/trunk/core/src/test/java/org/apache/mahout/vectorizer/encoders/InteractionValueEncoderTest.java?rev=1542279&r1=1542278&r2=1542279&view=diff
==============================================================================
--- mahout/trunk/core/src/test/java/org/apache/mahout/vectorizer/encoders/InteractionValueEncoderTest.java (original)
+++ mahout/trunk/core/src/test/java/org/apache/mahout/vectorizer/encoders/InteractionValueEncoderTest.java Fri Nov 15 14:48:18 2013
@@ -17,6 +17,12 @@
package org.apache.mahout.vectorizer.encoders;
+import java.util.Map;
+import java.util.Set;
+
+import static com.google.common.collect.Iterables.getFirst;
+
+import com.google.common.collect.Maps;
import org.apache.mahout.common.MahoutTestCase;
import org.apache.mahout.math.DenseVector;
import org.apache.mahout.math.Vector;
@@ -73,5 +79,25 @@ public class InteractionValueEncoderTest
// should interact "a" with each of "some","text" and "here"
assertEquals((float) k*3, v1.norm(1), 0);
}
+
+ @Test
+ public void testTraceDictionary() {
+ StaticWordValueEncoder encoder1 = new StaticWordValueEncoder("first");
+ StaticWordValueEncoder encoder2 = new StaticWordValueEncoder("second");
+
+ Map<String, Set<Integer>> traceDictionary = Maps.newHashMap();
+
+ InteractionValueEncoder interactions = new InteractionValueEncoder("interactions", encoder1, encoder2);
+ interactions.setProbes(1);
+ interactions.setTraceDictionary(traceDictionary);
+
+ Vector v = new DenseVector(10);
+ interactions.addInteractionToVector("a", "b", 1, v);
+
+ assertEquals(1, v.getNumNonZeroElements());
+ assertEquals(1, traceDictionary.size());
+ assertEquals("interactions=a:b", getFirst(traceDictionary.keySet(), null));
+
+ }
}