package ldbc.snb.datagen.objects.similarity; import ldbc.snb.datagen.objects.Person; import java.util.Set; import java.util.TreeSet; /** * Created by aprat on 22/01/16. */ public class InterestsSimilarity implements Person.PersonSimilarity { public float Similarity(Person personA, Person personB) { Set<Integer> union = new TreeSet<Integer>(personA.interests()); union.addAll(personB.interests()); union.add(personA.mainInterest()); union.add(personB.mainInterest()); Set<Integer> intersection = new TreeSet<Integer>(personA.interests()); intersection.retainAll(personB.interests()); if(personA.mainInterest() == personB.mainInterest()) intersection.add(personA.mainInterest()); return union.size() > 0 ? intersection.size() / (float)union.size() : 0; } }