From: <lor...@us...> - 2011-10-31 22:11:44
|
Revision: 3345 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3345&view=rev Author: lorenz_b Date: 2011-10-31 22:11:38 +0000 (Mon, 31 Oct 2011) Log Message: ----------- Fixed small bug. Modified Paths: -------------- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/learning/SPARQLTemplateBasedLearner.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/search/SolrQueryResultItem.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/util/SolrQueryResultStringSimilarityComparator.java Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/learning/SPARQLTemplateBasedLearner.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/learning/SPARQLTemplateBasedLearner.java 2011-10-31 14:14:31 UTC (rev 3344) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/learning/SPARQLTemplateBasedLearner.java 2011-10-31 22:11:38 UTC (rev 3345) @@ -150,7 +150,7 @@ String propertiesIndexUrl = options.fetch("solr.properties.url"); String propertiesIndexSearchField = options.fetch("solr.properties.searchfield"); - SolrSearch labelBasedPropertyIndex = new SolrSearch(propertiesIndexUrl, propertiesIndexSearchField, "label"); + SolrSearch labelBasedPropertyIndex = new ThresholdSlidingSolrSearch(propertiesIndexUrl, propertiesIndexSearchField, "label", 1.0, 0.1); String boaPatternIndexUrl = options.fetch("solr.boa.properties.url"); String boaPatternIndexSearchField = options.fetch("solr.boa.properties.searchfield"); @@ -536,13 +536,15 @@ } tmp.addAll(rs.getItems()); - int i = 0; + for(SolrQueryResultItem item : tmp){ - sortedURIs.add(item.getUri()); - if(i == MAX_URIS_PER_SLOT){ + if(!sortedURIs.contains(item.getUri())){ + sortedURIs.add(item.getUri()); + } + if(sortedURIs.size() == MAX_URIS_PER_SLOT){ break; } - i++; + } tmp.clear(); @@ -787,7 +789,7 @@ // Logger.getLogger(DefaultHttpParams.class).setLevel(Level.OFF); // Logger.getLogger(HttpClient.class).setLevel(Level.OFF); // Logger.getLogger(HttpMethodBase.class).setLevel(Level.OFF); - String question = "Is Natalie Portman an actress?"; + String question = "Who developed the video game World of Warcraft?"; // String question = "Give me all books written by authors influenced by Ernest Hemingway."; SPARQLTemplateBasedLearner learner = new SPARQLTemplateBasedLearner(); Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/search/SolrQueryResultItem.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/search/SolrQueryResultItem.java 2011-10-31 14:14:31 UTC (rev 3344) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/search/SolrQueryResultItem.java 2011-10-31 22:11:38 UTC (rev 3345) @@ -62,6 +62,11 @@ return false; return true; } + + @Override + public String toString() { + return uri + "(label: " + label + ", score: " + score + ")"; + } } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/util/SolrQueryResultStringSimilarityComparator.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/util/SolrQueryResultStringSimilarityComparator.java 2011-10-31 14:14:31 UTC (rev 3344) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/util/SolrQueryResultStringSimilarityComparator.java 2011-10-31 22:11:38 UTC (rev 3345) @@ -1,28 +1,48 @@ package org.dllearner.algorithm.tbsl.util; import java.util.Comparator; +import java.util.HashMap; +import java.util.Map; import org.dllearner.algorithm.tbsl.search.SolrQueryResultItem; public class SolrQueryResultStringSimilarityComparator implements Comparator<SolrQueryResultItem>{ private String s; + private Map<String, Double> cache; public SolrQueryResultStringSimilarityComparator(String s) { this.s = s; + cache = new HashMap<String, Double>(); } @Override public int compare(SolrQueryResultItem item1, SolrQueryResultItem item2) { - double sim1 = Similarity.getSimilarity(s, item1.getLabel()); - double sim2 = Similarity.getSimilarity(s, item2.getLabel()); - + double sim1 = 0; + if(cache.containsKey(item1.getLabel())){ + sim1 = cache.get(item1.getLabel()); + } else { + sim1 = Similarity.getSimilarity(s, item1.getLabel()); + cache.put(item1.getLabel(), sim1); + } + double sim2 = 0; + if(cache.containsKey(item2.getLabel())){ + sim2 = cache.get(item2.getLabel()); + } else { + sim2 = Similarity.getSimilarity(s, item2.getLabel()); + cache.put(item2.getLabel(), sim2); + } + if(sim1 < sim2){ return 1; } else if(sim1 > sim2){ return -1; } else { - return item1.getLabel().compareTo(item2.getLabel()); + int val = item1.getLabel().compareTo(item2.getLabel()); + if(val == 0){ + return item1.getUri().compareTo(item2.getUri()); + } + return val; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |