From a0627e36d6afae814a6545b8d061faa98ddc44e7 Mon Sep 17 00:00:00 2001 From: Doi Kento Date: Mon, 30 Nov 2020 17:57:01 +0900 Subject: [PATCH 1/2] :bug: fix encode/decode bug in _score() --- meteor/meteor.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/meteor/meteor.py b/meteor/meteor.py index 61916f4..d782392 100755 --- a/meteor/meteor.py +++ b/meteor/meteor.py @@ -62,15 +62,15 @@ def _score(self, hypothesis_str, reference_list): # SCORE ||| reference 1 words ||| reference n words ||| hypothesis words hypothesis_str = hypothesis_str.replace('|||','').replace(' ',' ') score_line = ' ||| '.join(('SCORE', ' ||| '.join(reference_list), hypothesis_str)) - self.meteor_p.stdin.write('{}\n'.format(score_line)) - stats = self.meteor_p.stdout.readline().strip() + self.meteor_p.stdin.write('{}\n'.format(score_line).encode()) + stats = self.meteor_p.stdout.readline().decode().strip() eval_line = 'EVAL ||| {}'.format(stats) # EVAL ||| stats - self.meteor_p.stdin.write('{}\n'.format(eval_line)) - score = float(self.meteor_p.stdout.readline().strip()) + self.meteor_p.stdin.write('{}\n'.format(eval_line).encode()) + score = float(self.meteor_p.stdout.readline().decode().strip()) # bug fix: there are two values returned by the jar file, one average, and one all, so do it twice # thanks for Andrej for pointing this out - score = float(self.meteor_p.stdout.readline().strip()) + score = float(self.meteor_p.stdout.readline().decode().strip()) self.lock.release() return score From 7f86b26fda217df4cb1f09522fd09e34dc05883f Mon Sep 17 00:00:00 2001 From: Doi Kento Date: Mon, 30 Nov 2020 17:57:46 +0900 Subject: [PATCH 2/2] :bug: remove overlapped line --- meteor/meteor.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/meteor/meteor.py b/meteor/meteor.py index d782392..a9d5775 100755 --- a/meteor/meteor.py +++ b/meteor/meteor.py @@ -68,9 +68,6 @@ def _score(self, hypothesis_str, reference_list): # EVAL ||| stats self.meteor_p.stdin.write('{}\n'.format(eval_line).encode()) score = float(self.meteor_p.stdout.readline().decode().strip()) - # bug fix: there are two values returned by the jar file, one average, and one all, so do it twice - # thanks for Andrej for pointing this out - score = float(self.meteor_p.stdout.readline().decode().strip()) self.lock.release() return score