svenwey commited on
Commit
b705ef3
·
1 Parent(s): 88e224c

make logentries same length before computing linecontent-scores. Remove jaccard

Browse files
Files changed (1) hide show
  1. 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
- # compute jaccard pair-wise, then take mean of all results
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 cut off the longer list, since we only want to compute the content-scores for actually predicted lines
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
- # print("min_logentries:", min_logentries)
256
- pred_logMessages = pred_logMessages[:min_logentries]
257
- ref_logMessages = ref_logMessages[:min_logentries]
258
 
259
 
260
- linecontent_sacrebleu, linecontent_jaccard, linecontentlength_difference_SMAPE = self.getLineContentScore(pred_logMessages, ref_logMessages)
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