From: <and...@us...> - 2013-09-04 09:38:10
|
Revision: 4048 http://sourceforge.net/p/dl-learner/code/4048 Author: andremelo Date: 2013-09-04 09:38:06 +0000 (Wed, 04 Sep 2013) Log Message: ----------- Adding getNormalizedRelvance, which returns a value in [0,1] Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/algorithms/isle/metrics/PMIRelevanceMetric.java trunk/components-core/src/main/java/org/dllearner/algorithms/isle/metrics/RelevanceMetric.java Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/isle/metrics/PMIRelevanceMetric.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/isle/metrics/PMIRelevanceMetric.java 2013-09-04 09:18:50 UTC (rev 4047) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/isle/metrics/PMIRelevanceMetric.java 2013-09-04 09:38:06 UTC (rev 4048) @@ -30,9 +30,25 @@ double dPClass = nrOfDocuments == 0 ? 0 : ((double) documentsA.size() / (double) nrOfDocuments); double dPClassEntity = documentsB.size() == 0 ? 0 : (double) documentsAB.size() / (double) documentsB.size(); - double pmi = Math.log(dPClassEntity / dPClass); + double pmi = Math.log(dPClassEntity / dPClass); return pmi; } + + @Override + public double getNormalizedRelevance(Entity entityA, Entity entityB){ + Set<AnnotatedDocument> documentsA = index.getDocuments(entityA); + Set<AnnotatedDocument> documentsB = index.getDocuments(entityB); + Set<AnnotatedDocument> documentsAB = Sets.intersection(documentsA, documentsB); + int nrOfDocuments = index.getSize(); + + double dPClass = nrOfDocuments == 0 ? 0 : ((double) documentsA.size() / (double) nrOfDocuments); + double dPClassEntity = documentsB.size() == 0 ? 0 : (double) documentsAB.size() / (double) documentsB.size(); + double pmi = Math.log(dPClassEntity / dPClass); + + double normalizedPMI = (pmi/-Math.log(dPClassEntity) + 1)/2; + + return normalizedPMI; + } } Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/isle/metrics/RelevanceMetric.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/isle/metrics/RelevanceMetric.java 2013-09-04 09:18:50 UTC (rev 4047) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/isle/metrics/RelevanceMetric.java 2013-09-04 09:38:06 UTC (rev 4048) @@ -30,4 +30,12 @@ * @return */ double getRelevance(Entity entity1, Entity entity2); + + /** + * Get normalized relevance value in [0,1] * + * @param entity1 + * @param entity2 + * @return + */ + double getNormalizedRelevance(Entity entity1, Entity entity2); } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |