001/**
002 * 
003 */
004package org.dllearner.algorithms.isle.metrics;
005
006import org.dllearner.algorithms.isle.index.Index;
007import org.semanticweb.owlapi.model.OWLEntity;
008
009/**
010 * @author Andre Melo
011 *
012 */
013public class TTestRelevanceMetric extends AbstractRelevanceMetric {
014
015        public TTestRelevanceMetric(Index index) {
016                super(index);
017        }
018
019        @Override
020        public synchronized double getRelevance(OWLEntity entityA, OWLEntity entityB){
021                double nrOfDocumentsA = index.getNumberOfDocumentsFor(entityA);
022                double nrOfDocumentsB = index.getNumberOfDocumentsFor(entityB);
023                double nrOfDocumentsAB = index.getNumberOfDocumentsFor(entityA, entityB);
024                
025                double nrOfDocuments = index.getTotalNumberOfDocuments();
026                
027                if (nrOfDocumentsA==0 || nrOfDocumentsB==0 || nrOfDocumentsAB==0)
028                        return 0;
029                
030                double ttest =  (nrOfDocumentsAB - (nrOfDocumentsA*nrOfDocumentsB)/nrOfDocuments) /
031                                                Math.sqrt(nrOfDocumentsAB*(1-nrOfDocumentsAB/nrOfDocuments));
032                
033                return ttest;
034        }
035        
036        @Override
037        public synchronized double getNormalizedRelevance(OWLEntity entityA, OWLEntity entityB){
038                //TODO
039                return Double.NaN;
040        }
041
042}