package dk.daoas.daoadresseservice; import org.apache.commons.lang3.StringUtils; import dk.daoas.daoadresseservice.admin.ServiceConfig; import dk.daoas.daoadresseservice.beans.SearchRequest; import dk.daoas.daoadresseservice.beans.SearchResult; public class LevenshteinStreetnameHelper implements StreetnameHelper { ServiceConfig conf; public LevenshteinStreetnameHelper(ServiceConfig conf) { this.conf = conf; } @Override public String proposeStreetName(SearchRequest request, SearchResult result) { if (conf.useLevenshtein == false) return null; result.levenshtein = true; for(String vej : request.streetNames.keySet() ) { if ( StringUtils.getLevenshteinDistance(result.vasketVejnavn, vej) == 1) { System.out.println("Levenstein: " + result.vasketVejnavn + "->" + vej + " distance=1"); result.levenshteinDistance = 1; return vej; } } /* Distance=2 laver også false positives - så udkommenter denne sektion indtil at den er mere robust //prøv igen med distance=2 for(String vej : request.streetNames.keySet() ) { if ( StringUtils.getLevenshteinDistance(result.vasketVejnavn, vej) == 2) { System.out.println("Levenstein: " + result.vasketVejnavn + "->" + vej + " distance=2"); result.levenshteinDistance = 2; return vej; } }*/ return null; } }