Example usage for org.apache.lucene.benchmark.quality QualityStats getAvp

List of usage examples for org.apache.lucene.benchmark.quality QualityStats getAvp

Introduction

In this page you can find the example usage for org.apache.lucene.benchmark.quality QualityStats getAvp.

Prototype

public double getAvp() 

Source Link

Document

Return the average precision at recall points.

Usage

From source file:PrecisionRecall.PrecisionRecallMain.java

public BeanPrecisionRecall caculate() throws Throwable {

    File topicsFile = new File(getTopicsFile());
    File qrelsFile = new File(getQrelsFile());
    Directory dir = FSDirectory.open(new File(getIndexPath()));

    IndexReader reader = DirectoryReader.open(dir);
    IndexSearcher searcher = new IndexSearcher(reader);
    String docNameField = "filename";

    PrintWriter logger = new PrintWriter(System.out, true);

    TrecTopicsReader qReader = new TrecTopicsReader();
    QualityQuery qqs[] = qReader.readQueries(new BufferedReader(new FileReader(topicsFile)));

    Judge judge = new TrecJudge(new BufferedReader(new FileReader(qrelsFile)));

    judge.validateData(qqs, logger);//from   w  ww  . ja  va 2  s.  c o  m

    QualityQueryParser qqParser = new SimpleQQParser("title", "contents");

    QualityBenchmark qrun = new QualityBenchmark(qqs, qqParser, searcher, docNameField);
    SubmissionReport submitLog = null;

    QualityStats stats[] = qrun.execute(judge, submitLog, logger);

    QualityStats avg = QualityStats.average(stats);

    BeanPrecisionRecall bpr = new BeanPrecisionRecall();

    bpr.setAveragePrecision(avg.getAvp());
    bpr.setMmr(avg.getMRR());
    bpr.setRecall(avg.getRecall());
    bpr.setSearchTime(avg.getSearchTime());

    dir.close();
    return bpr;
}