From: <lor...@us...> - 2013-05-10 13:27:06
|
Revision: 3978 http://sourceforge.net/p/dl-learner/code/3978 Author: lorenz_b Date: 2013-05-10 13:27:03 +0000 (Fri, 10 May 2013) Log Message: ----------- Write eval stats to DB. Modified Paths: -------------- trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternUsageEvaluation.java Modified: trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternUsageEvaluation.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternUsageEvaluation.java 2013-05-10 11:48:50 UTC (rev 3977) +++ trunk/scripts/src/main/java/org/dllearner/scripts/pattern/OWLAxiomPatternUsageEvaluation.java 2013-05-10 13:27:03 UTC (rev 3978) @@ -1132,25 +1132,33 @@ } else if(axiom.isOfType(AxiomType.SUBCLASS_OF)){ superClass = ((OWLSubClassOfAxiom)axiom).getSuperClass(); } + //count subclass+superClass + Query query = converter.asQuery("?x", df.getOWLObjectIntersectionOf(cls, superClass), true);System.out.println(query); + rs = executeSelectQuery(query); + int overlap = rs.next().getLiteral("cnt").getInt(); //count subclass - Query query = converter.asQuery("?x", cls, true); + query = converter.asQuery("?x", cls, true); if(subClassCnt == -1){ System.out.println(query); rs = executeSelectQuery(query); subClassCnt = rs.next().getLiteral("cnt").getInt(); } + + //compute recall + double recall = wald(subClassCnt, overlap); + //if recall is too low we can skip the computation of the precision + if(recall < 0.2){ + logger.warn("Recall(" + recall + ") too low. Skipping precision computation."); + continue; + } //count superClass query = converter.asQuery("?x", superClass, true);System.out.println(query); rs = executeSelectQuery(query); int superClassCnt = rs.next().getLiteral("cnt").getInt(); - //count subclass+superClass - query = converter.asQuery("?x", df.getOWLObjectIntersectionOf(cls, superClass), true);System.out.println(query); - rs = executeSelectQuery(query); - int overlap = rs.next().getLiteral("cnt").getInt(); - + //compute precision double precision = wald(superClassCnt, overlap); - double recall = wald(subClassCnt, overlap); + double fScore = 0; if(axiom.isOfType(AxiomType.SUBCLASS_OF)){ fScore = Heuristics.getFScore(recall, precision, 3); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |