Мне нужно вычислить точность и восстановить значение в люцене, и я использую этот исходный код, чтобы сделать это
public class PrecisionRecall {
public static void main(String[] args) throws Throwable {
File topicsFile = new File("C:/Users/Raden/Documents/lucene/LuceneHibernate/LIA/lia2e/src/lia/benchmark/topics.txt");
File qrelsFile = new File("C:/Users/Raden/Documents/lucene/LuceneHibernate/LIA/lia2e/src/lia/benchmark/qrels.txt");
Directory dir = FSDirectory.open(new File("C:/Users/Raden/Documents/myindex"));
Searcher searcher = new IndexSearcher(dir, true);
String docNameField = "filename";
PrintWriter logger = new PrintWriter(System.out, true);
TrecTopicsReader qReader = new TrecTopicsReader(); //#1
QualityQuery qqs[] = qReader.readQueries( //#1
new BufferedReader(new FileReader(topicsFile))); //#1
Judge judge = new TrecJudge(new BufferedReader( //#2
new FileReader(qrelsFile))); //#2
judge.validateData(qqs, logger); //#3
QualityQueryParser qqParser = new SimpleQQParser("title", "contents"); //#4
QualityBenchmark qrun = new QualityBenchmark(qqs, qqParser, searcher, docNameField);
SubmissionReport submitLog = null;
QualityStats stats[] = qrun.execute(judge, //#5
submitLog, logger);
QualityStats avg = QualityStats.average(stats); //#6
avg.log("SUMMARY",2,logger, " ");
dir.close();
}
}
а вот содержимое файла тем
<top>
<num> Number: 0
<title> apache source
<desc> Description:
<narr> Narrative:
</top>
и это содержимое qrelsfile
# Format:
#
# qnum 0 doc-name is-relevant
#
#
0 0 apache1.0.txt 1
0 0 apache1.1.txt 1
0 0 apache2.0.txt 1
теперь проблема возникает, когда я запускаю тот исходный код, который отображает значение точности и возвращает ноль. вот результат, когда я запустил исходный код.
0 - contents:apache contents:source
0 Stats:
Search Seconds: 0.047
DocName Seconds: 0.039
Num Points: 56.000
Num Good Points: 0.000
Max Good Points: 3.000
Average Precision: 0.000
MRR: 0.000
Recall: 0.000
Precision At 1: 0.000
Precision At 2: 0.000
Precision At 3: 0.000
Precision At 4: 0.000
Precision At 5: 0.000
Precision At 6: 0.000
Precision At 7: 0.000
Precision At 8: 0.000
Precision At 9: 0.000
Precision At 10: 0.000
Precision At 11: 0.000
Precision At 12: 0.000
Precision At 13: 0.000
Precision At 14: 0.000
Precision At 15: 0.000
Precision At 16: 0.000
Precision At 17: 0.000
Precision At 18: 0.000
Precision At 19: 0.000
Precision At 20: 0.000
SUMMARY
Search Seconds: 0.047
DocName Seconds: 0.039
Num Points: 56.000
Num Good Points: 0.000
Max Good Points: 3.000
Average Precision: 0.000
MRR: 0.000
Recall: 0.000
Precision At 1: 0.000
Precision At 2: 0.000
Precision At 3: 0.000
Precision At 4: 0.000
Precision At 5: 0.000
Precision At 6: 0.000
Precision At 7: 0.000
Precision At 8: 0.000
Precision At 9: 0.000
Precision At 10: 0.000
Precision At 11: 0.000
Precision At 12: 0.000
Precision At 13: 0.000
Precision At 14: 0.000
Precision At 15: 0.000
Precision At 16: 0.000
Precision At 17: 0.000
Precision At 18: 0.000
Precision At 19: 0.000
Precision At 20: 0.000
теперь можете ли вы сказать мне, что я сделал неправильно, из-за чего точность и возвращаемые значения стали нулями? а также что это значит, когда точность и значение возврата равны нулю? причина, по которой я это делаю, заключается в том, что мне нужно измерить производительность своей поисковой системы, а точность и отзыв - один из способов достижения этого.
спасибо, хотя