From de66afa512cfbe35aff097a0f9120a98dea7c5c8 Mon Sep 17 00:00:00 2001 From: Tom Morris Date: Fri, 25 Sep 2015 16:44:25 -0400 Subject: [PATCH] Revert " Use new algorithm for levenshtein clustering" --- .../refine/clustering/knn/kNNClusterer.java | 66 ++---------------- .../webapp/WEB-INF/lib/EditDistanceJoiner.jar | Bin 13268 -> 0 bytes .../scripts/dialogs/clustering-dialog.html | 5 +- .../core/scripts/dialogs/clustering-dialog.js | 2 - 4 files changed, 8 insertions(+), 65 deletions(-) delete mode 100644 main/webapp/WEB-INF/lib/EditDistanceJoiner.jar diff --git a/main/src/com/google/refine/clustering/knn/kNNClusterer.java b/main/src/com/google/refine/clustering/knn/kNNClusterer.java index e2c455b85..9c4499c57 100644 --- a/main/src/com/google/refine/clustering/knn/kNNClusterer.java +++ b/main/src/com/google/refine/clustering/knn/kNNClusterer.java @@ -71,8 +71,6 @@ import edu.mit.simile.vicino.distances.JaroWinklerTFIDFDistance; import edu.mit.simile.vicino.distances.LevenshteinDistance; import edu.mit.simile.vicino.distances.PPMDistance; -import edu.tsinghua.dbgroup.EditDistanceClusterer; - public class kNNClusterer extends Clusterer { private Distance _distance; @@ -150,6 +148,7 @@ public class kNNClusterer extends Clusterer { int _blockingNgramSize = 6; HashSet _data; NGramClusterer _clusterer; + public BlockingClusteringRowVisitor(Distance d, JSONObject o) { _distance = d; _config = o; @@ -192,48 +191,6 @@ public class kNNClusterer extends Clusterer { return _clusterer.getClusters(_radius); } } - - class EditDistanceClusteringRowVisitor implements RowVisitor { - - int _radius = 2; - EditDistanceClusterer _clusterer; - public EditDistanceClusteringRowVisitor(JSONObject o) { - try { - JSONObject params = o.getJSONObject("params"); - _radius = params.getInt("radius"); - logger.debug("Use radius: {}", _radius); - } catch (JSONException e) { - logger.debug("No parameters found, using defaults"); - } - _clusterer = new EditDistanceClusterer(_radius); - } - - @Override - public void start(Project project) { - // nothing to do - } - - @Override - public void end(Project project) { - // nothing to do - } - - @Override - public boolean visit(Project project, int rowIndex, Row row) { - Cell cell = row.getCell(_colindex); - if (cell != null && cell.value != null) { - Object v = cell.value; - String s = (v instanceof String) ? ((String) v) : v.toString().intern(); - _clusterer.populate(s); - count(s); - } - return false; - } - - public List> getClusters() { - return _clusterer.getClusters(); - } - } @Override public void initializeFromJSON(Project project, JSONObject o) throws Exception { @@ -243,21 +200,12 @@ public class kNNClusterer extends Clusterer { @Override public void computeClusters(Engine engine) { - if(_distance != _distances.get("levenshtein")) { - //VPTreeClusteringRowVisitor visitor = new VPTreeClusteringRowVisitor(_distance,_config); - BlockingClusteringRowVisitor visitor = new BlockingClusteringRowVisitor(_distance,_config); - FilteredRows filteredRows = engine.getAllFilteredRows(); - filteredRows.accept(_project, visitor); - - _clusters = visitor.getClusters(); - } else { - EditDistanceClusteringRowVisitor visitor = - new EditDistanceClusteringRowVisitor(_config); - FilteredRows filteredRows = engine.getAllFilteredRows(); - filteredRows.accept(_project, visitor); - - _clusters = visitor.getClusters(); - } + //VPTreeClusteringRowVisitor visitor = new VPTreeClusteringRowVisitor(_distance,_config); + BlockingClusteringRowVisitor visitor = new BlockingClusteringRowVisitor(_distance,_config); + FilteredRows filteredRows = engine.getAllFilteredRows(); + filteredRows.accept(_project, visitor); + + _clusters = visitor.getClusters(); } public static class ValuesComparator implements Comparator>, Serializable { diff --git a/main/webapp/WEB-INF/lib/EditDistanceJoiner.jar b/main/webapp/WEB-INF/lib/EditDistanceJoiner.jar deleted file mode 100644 index 275ba2be50eb21556e0cd42befff7c84737da818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13268 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 L?FfET+5!F#7=5g* diff --git a/main/webapp/modules/core/scripts/dialogs/clustering-dialog.html b/main/webapp/modules/core/scripts/dialogs/clustering-dialog.html index 19a2755d4..3e23fbf43 100644 --- a/main/webapp/modules/core/scripts/dialogs/clustering-dialog.html +++ b/main/webapp/modules/core/scripts/dialogs/clustering-dialog.html @@ -33,10 +33,7 @@ - -