/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package arida.ufc.br.moap.function.sim; import arida.ufc.br.moap.function.api.ISimilarityFunction; import java.util.HashSet; import java.util.Set; /** * * @author igobrilhante */ public class JaccardSimilarity<T> implements ISimilarityFunction<Set<T>> { public String getName() { // TODO Auto-generated method stub return null; } @Override public Double evaluate(Set<T> arg0, Set<T> arg1) { HashSet<T> inter = new HashSet<T>(arg0); inter.retainAll(arg1); int interSize = inter.size(); int set1Size = arg0.size(); int set2Size = arg1.size(); // HashSet<T> union = new HashSet<T>(arg0); // union.addAll(arg1); int unionSize = set1Size + set2Size - interSize; return (double)interSize/unionSize; } }