001package org.dllearner.algorithms.isle.metrics; 002 003import org.dllearner.algorithms.isle.index.Index; 004import org.semanticweb.owlapi.model.OWLEntity; 005 006/** 007 * @author Andre Melo 008 * 009 */ 010public class JaccardRelevanceMetric extends AbstractRelevanceMetric{ 011 012 public JaccardRelevanceMetric(Index index) { 013 super(index); 014 } 015 016 @Override 017 public double getRelevance(OWLEntity entityA, OWLEntity entityB) { 018 long nrOfDocumentsA = index.getNumberOfDocumentsFor(entityA); 019 long nrOfDocumentsB = index.getNumberOfDocumentsFor(entityB); 020 021 if (nrOfDocumentsA==0 || nrOfDocumentsB==0) 022 return 0; 023 024 double nrOfDocumentsAandB = index.getNumberOfDocumentsFor(entityA, entityB); 025 double nrOfDocumentsAorB = nrOfDocumentsA + nrOfDocumentsB - nrOfDocumentsAandB; 026 027 double jaccard = nrOfDocumentsAandB / nrOfDocumentsAorB; 028 029 return jaccard; 030 } 031 032 @Override 033 public double getNormalizedRelevance(OWLEntity entity1, OWLEntity entity2) { 034 return getRelevance(entity1, entity2); 035 } 036 037 038}