From b43c227778508e554f8bbefe3b748bf6d4330dba Mon Sep 17 00:00:00 2001 From: Ryan Shaw Date: Wed, 25 Mar 2015 15:33:14 -0400 Subject: [PATCH 1/2] We are counting (near) matches, not edits, so we want 1-weight. --- segeval/similarity/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/segeval/similarity/__init__.py b/segeval/similarity/__init__.py index 220811b..d1ff32a 100644 --- a/segeval/similarity/__init__.py +++ b/segeval/similarity/__init__.py @@ -103,7 +103,7 @@ def __boundary_confusion_matrix__(*args, **kwargs): # Add weighted near misses for transposition in statistics['transpositions']: match = transposition[2] - matrix[match][match] += fnc_weight_t([transposition], n_t) + matrix[match][match] += (1 - fnc_weight_t([transposition], n_t)) # Add confusion errors for substitution in statistics['substitutions']: hyp, ref = substitution From bf1f2573dcbae8321f366e7ba0d00aec9e18fdc9 Mon Sep 17 00:00:00 2001 From: Ryan Shaw Date: Thu, 26 Mar 2015 12:15:47 -0400 Subject: [PATCH 2/2] Added test to confirm fix. --- segeval/similarity/test.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/segeval/similarity/test.py b/segeval/similarity/test.py index 0042198..57bdbcd 100644 --- a/segeval/similarity/test.py +++ b/segeval/similarity/test.py @@ -37,6 +37,16 @@ def test_boundary_confusion_matrix(self): self.assertEqual(cm[1][1], Decimal('1.5')) self.assertEqual(cm[2][2], 0) + def test_boundary_confusion_matrix_wide_transposition(self): + cm1 = boundary_confusion_matrix([5,5], [4,6], n_t=4) + self.assertEqual(cm1[None][1], 0) + self.assertEqual(cm1[1][None], 0) + self.assertEqual(cm1[1][1], Decimal('0.75')) + cm2 = boundary_confusion_matrix([5,5], [2,8], n_t=4) + self.assertEqual(cm2[None][1], 0) + self.assertEqual(cm2[1][None], 0) + self.assertEqual(cm2[1][1], Decimal('0.25')) + def test_boundary_statistics(self): ''' Test boundary statistics.