From c10f3579c66a3cabad0b9baecb8f9fc9a579ed69 Mon Sep 17 00:00:00 2001 From: Filip Gralinski Date: Wed, 4 Oct 2017 21:56:17 +0200 Subject: [PATCH] fix BLEU for empty output --- src/GEval/Core.hs | 1 + test/Spec.hs | 2 ++ test/bleu-empty/bleu-empty-solution/test-A/out.tsv | 4 ++++ test/bleu-empty/bleu-empty/config.txt | 1 + test/bleu-empty/bleu-empty/test-A/expected.tsv | 4 ++++ 5 files changed, 12 insertions(+) create mode 100644 test/bleu-empty/bleu-empty-solution/test-A/out.tsv create mode 100644 test/bleu-empty/bleu-empty/config.txt create mode 100644 test/bleu-empty/bleu-empty/test-A/expected.tsv diff --git a/src/GEval/Core.hs b/src/GEval/Core.hs index 307ca0b..1e97b1c 100644 --- a/src/GEval/Core.hs +++ b/src/GEval/Core.hs @@ -226,6 +226,7 @@ gevalCore' BLEU _ = gevalCoreWithoutInput (Prelude.map Prelude.words . DLS.split bleuFuse (a1, a2, a3, a4, a5, a6, a7, a8, a9) (b1, b2, b3, b4, b5, b6, b7, b8, b9) = (a1+b1, a2+b2, a3+b3, a4+b4, a5+b5, a6+b6, a7+b7, a8+b8, a9+b9) brevityPenalty c r | c >= r = 1.0 + | c == 0 && r > 0 = 0.0 | otherwise = exp (1.0 - (r /. c)) gevalCore' Accuracy _ = gevalCoreWithoutInput strip strip hitOrMiss averageC id diff --git a/test/Spec.hs b/test/Spec.hs index 74421cc..fbaa0e6 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -48,6 +48,8 @@ main = hspec $ do runGEvalTest "bleu-complex" `shouldReturnAlmost` 0.6211 it "perfect translation" $ runGEvalTest "bleu-perfect" `shouldReturnAlmost` 1.0000 + it "empty translation" $ + runGEvalTest "bleu-empty" `shouldReturnAlmost` 0.0000 describe "Accuracy" $ do it "simple example" $ runGEvalTest "accuracy-simple" `shouldReturnAlmost` 0.6 diff --git a/test/bleu-empty/bleu-empty-solution/test-A/out.tsv b/test/bleu-empty/bleu-empty-solution/test-A/out.tsv new file mode 100644 index 0000000..fd40910 --- /dev/null +++ b/test/bleu-empty/bleu-empty-solution/test-A/out.tsv @@ -0,0 +1,4 @@ + + + + diff --git a/test/bleu-empty/bleu-empty/config.txt b/test/bleu-empty/bleu-empty/config.txt new file mode 100644 index 0000000..32a1b93 --- /dev/null +++ b/test/bleu-empty/bleu-empty/config.txt @@ -0,0 +1 @@ +--metric BLEU diff --git a/test/bleu-empty/bleu-empty/test-A/expected.tsv b/test/bleu-empty/bleu-empty/test-A/expected.tsv new file mode 100644 index 0000000..25af67b --- /dev/null +++ b/test/bleu-empty/bleu-empty/test-A/expected.tsv @@ -0,0 +1,4 @@ +Litwo, Ojczyzno moja! ty jesteś jak zdrowie; +Ile cię trzeba cenić, ten tylko się dowie, +Kto cię stracił. Dziś piękność twą w całej ozdobie +Widzę i opisuję, bo tęsknię po tobie.