make logentries same length before computing linecontent-scores. Remove jaccard
Browse files- logmetric.py +5 -11
logmetric.py
CHANGED
@@ -167,10 +167,7 @@ class LogMetric(evaluate.Metric):
|
|
167 |
preds_split = [p.split() for p in pred_logMessages]
|
168 |
refs_split = [r.split() for r in ref_logMessages]
|
169 |
|
170 |
-
|
171 |
-
mean_jaccard_score = np.mean([self.get_jaccard_similarity(set(p_split), set(r_split)) for p_split, r_split in zip(preds_split,refs_split)])
|
172 |
-
|
173 |
-
return sacrebleu_score, mean_jaccard_score, smape_length_score
|
174 |
|
175 |
# get different scores regarding the timestamp
|
176 |
def getTimestampsScore(self, pred_timestamps, ref_timestamps):
|
@@ -249,15 +246,13 @@ class LogMetric(evaluate.Metric):
|
|
249 |
ref_timestamps.append(ref_split_log[i])
|
250 |
ref_logMessages.append(ref_split_log[i+1])
|
251 |
|
252 |
-
# We
|
253 |
-
# -> hence, the content score can be good, even if the amount of predicted lines are wrong
|
254 |
min_logentries = min(len(pred_logMessages), len(ref_logMessages))
|
255 |
-
|
256 |
-
|
257 |
-
ref_logMessages = ref_logMessages[:min_logentries]
|
258 |
|
259 |
|
260 |
-
linecontent_sacrebleu,
|
261 |
|
262 |
timestamps_difference_SMAPE, timestamps_formatConsistency_absolute, timestamps_monotinicity_absolute = self.getTimestampsScore(pred_timestamps, ref_timestamps)
|
263 |
|
@@ -269,7 +264,6 @@ class LogMetric(evaluate.Metric):
|
|
269 |
return {"linecount_difference_SMAPE_score": linecount_difference_SMAPE,
|
270 |
"linecontentlength_difference_SMAPE_score": linecontentlength_difference_SMAPE,
|
271 |
"linecontent_sacrebleu_score": linecontent_sacrebleu,
|
272 |
-
"linecontent_jaccard_score": linecontent_jaccard,
|
273 |
"timestamps_SMAPE_difference_score": timestamps_difference_SMAPE,
|
274 |
"timestamps_formatConsistency_score": timestamps_formatConsistency_absolute,
|
275 |
"timestamps_monotinicity_score": timestamps_monotinicity_absolute
|
|
|
167 |
preds_split = [p.split() for p in pred_logMessages]
|
168 |
refs_split = [r.split() for r in ref_logMessages]
|
169 |
|
170 |
+
return sacrebleu_score, smape_length_score
|
|
|
|
|
|
|
171 |
|
172 |
# get different scores regarding the timestamp
|
173 |
def getTimestampsScore(self, pred_timestamps, ref_timestamps):
|
|
|
246 |
ref_timestamps.append(ref_split_log[i])
|
247 |
ref_logMessages.append(ref_split_log[i+1])
|
248 |
|
249 |
+
# We extend the shorter list to the length of the longer one
|
|
|
250 |
min_logentries = min(len(pred_logMessages), len(ref_logMessages))
|
251 |
+
pred_logMessages += (len(pred_logMessages) - min_logentries) * [""]
|
252 |
+
ref_logMessages += (len(ref_logMessages) - min_logentries) * [""]
|
|
|
253 |
|
254 |
|
255 |
+
linecontent_sacrebleu, linecontentlength_difference_SMAPE = self.getLineContentScore(pred_logMessages, ref_logMessages)
|
256 |
|
257 |
timestamps_difference_SMAPE, timestamps_formatConsistency_absolute, timestamps_monotinicity_absolute = self.getTimestampsScore(pred_timestamps, ref_timestamps)
|
258 |
|
|
|
264 |
return {"linecount_difference_SMAPE_score": linecount_difference_SMAPE,
|
265 |
"linecontentlength_difference_SMAPE_score": linecontentlength_difference_SMAPE,
|
266 |
"linecontent_sacrebleu_score": linecontent_sacrebleu,
|
|
|
267 |
"timestamps_SMAPE_difference_score": timestamps_difference_SMAPE,
|
268 |
"timestamps_formatConsistency_score": timestamps_formatConsistency_absolute,
|
269 |
"timestamps_monotinicity_score": timestamps_monotinicity_absolute
|