Spaces:
Runtime error
Runtime error
# Copyright 2023 The TensorFlow Authors. All Rights Reserved. | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
"""Test functions in compute_blue.py.""" | |
import tempfile | |
import tensorflow as tf, tf_keras | |
from official.nlp.metrics import bleu | |
class ComputeBleuTest(tf.test.TestCase): | |
def _create_temp_file(self, text): | |
temp_file = tempfile.NamedTemporaryFile(delete=False) | |
with tf.io.gfile.GFile(temp_file.name, "w") as w: | |
w.write(text) | |
return temp_file.name | |
def test_bleu_same(self): | |
ref = self._create_temp_file("test 1 two 3\nmore tests!") | |
hyp = self._create_temp_file("test 1 two 3\nmore tests!") | |
uncased_score = bleu.bleu_wrapper(ref, hyp, False) | |
cased_score = bleu.bleu_wrapper(ref, hyp, True) | |
self.assertEqual(100, uncased_score) | |
self.assertEqual(100, cased_score) | |
def test_bleu_same_different_case(self): | |
ref = self._create_temp_file("Test 1 two 3\nmore tests!") | |
hyp = self._create_temp_file("test 1 two 3\nMore tests!") | |
uncased_score = bleu.bleu_wrapper(ref, hyp, False) | |
cased_score = bleu.bleu_wrapper(ref, hyp, True) | |
self.assertEqual(100, uncased_score) | |
self.assertLess(cased_score, 100) | |
def test_bleu_different(self): | |
ref = self._create_temp_file("Testing\nmore tests!") | |
hyp = self._create_temp_file("Dog\nCat") | |
uncased_score = bleu.bleu_wrapper(ref, hyp, False) | |
cased_score = bleu.bleu_wrapper(ref, hyp, True) | |
self.assertLess(uncased_score, 100) | |
self.assertLess(cased_score, 100) | |
def test_bleu_tokenize(self): | |
s = "Test0, 1 two, 3" | |
tokenized = bleu.bleu_tokenize(s) | |
self.assertEqual(["Test0", ",", "1", "two", ",", "3"], tokenized) | |
def test_bleu_list(self): | |
ref = ["test 1 two 3", "more tests!"] | |
hyp = ["test 1 two 3", "More tests!"] | |
uncased_score = bleu.bleu_on_list(ref, hyp, False) | |
cased_score = bleu.bleu_on_list(ref, hyp, True) | |
self.assertEqual(uncased_score, 100) | |
self.assertLess(cased_score, 100) | |
if __name__ == "__main__": | |
tf.test.main() | |