(predicted, golden, lengths, ignore_index=-1)
| 40 | return spans |
| 41 | |
| 42 | def score_aspect(predicted, golden, lengths, ignore_index=-1): |
| 43 | assert len(predicted) == len(golden) |
| 44 | golden_set = set() |
| 45 | predict_set = set() |
| 46 | for i in range(len(golden)): |
| 47 | golden_spans = get_aspects(golden[i], lengths[i], ignore_index) |
| 48 | for l, r in golden_spans: |
| 49 | golden_set.add('-'.join([str(i), str(l), str(r)])) |
| 50 | |
| 51 | predict_spans = get_aspects(predicted[i], lengths[i], ignore_index) |
| 52 | for l, r in predict_spans: |
| 53 | predict_set.add('-'.join([str(i), str(l), str(r)])) |
| 54 | |
| 55 | correct_num = len(golden_set & predict_set) |
| 56 | precision = correct_num / len(predict_set) if len(predict_set) > 0 else 0 |
| 57 | recall = correct_num / len(golden_set) if len(golden_set) > 0 else 0 |
| 58 | f1 = 2 * precision * recall / (precision + recall) if (precision + recall) > 0 else 0 |
| 59 | return precision, recall, f1 |
| 60 | |
| 61 | |
| 62 | def score_opinion(predicted, golden, lengths, ignore_index=-1): |
nothing calls this directly
no test coverage detected