Result.java
2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package pl.waw.ipipan.zil.core.scoreference.utils;
public class Result {
private Double precisionNominator = 0.0;
private Double precisionDenominator = 0.0;
private Double recallNominator = 0.0;
private Double recallDenominator = 0.0;
private Double precision = null;
private Double recall = null;
private Double f1 = null;
public Result(double precisionNominator, double precisionDenominator, double recallNominator,
double recallDenominator) {
this.precisionNominator = precisionNominator;
this.precisionDenominator = precisionDenominator;
this.recallNominator = recallNominator;
this.recallDenominator = recallDenominator;
}
public Result() {
}
public Result(double p, double r) {
this.precisionNominator = p;
this.recallNominator = r;
this.precisionDenominator = 1.0;
this.recallDenominator = 1.0;
}
public Result(double avgP, double avgR, double avgF1) {
this.precision = avgP;
this.recall = avgR;
this.f1 = avgF1;
}
public double getPrecision() {
if (precision != null)
return precision;
return precisionNominator / precisionDenominator;
}
public double getRecall() {
if (recall != null)
return recall;
return recallNominator / recallDenominator;
}
public String getPrecisionString() {
return precisionNominator + "/" + precisionDenominator;
}
public String getRecallString() {
return recallNominator + "/" + recallDenominator;
}
public double getF1() {
if (f1 != null)
return f1;
double recall = getRecall();
double precision = getPrecision();
return (recall + precision) == 0 ? 0 : 2 * precision * recall / (recall + precision);
}
@Override
public String toString() {
String precLine = "Precision: " + getPrecision() + "\n";
String recLine = "Recall: " + getRecall() + "\n";
return precLine + recLine + "F1: " + getF1();
}
public void add(Result textResult) {
this.precisionDenominator += textResult.precisionDenominator;
this.precisionNominator += textResult.precisionNominator;
this.recallDenominator += textResult.recallDenominator;
this.recallNominator += textResult.recallNominator;
}
}