Bleu
类keras_nlp.metrics.Bleu(
tokenizer=None, max_order=4, smooth=False, dtype="float32", name="bleu", **kwargs
)
BLEU 指标。
此类实现 BLEU 指标。BLEU 通常用于评估机器翻译系统。默认情况下,此实现复制 SacreBLEU,但可以传递用户定义的分词器来处理其他语言。
对于 BLEU 分数,我们计算候选翻译和参考文本中匹配的 n 元组的数量。我们找到匹配 n 元组的“剪切计数”,以避免对具有冗余、重复标记的(参考,预测)对给予高分。其次,BLEU 分数往往会奖励更短的预测,这就是为什么应用简短惩罚来惩罚简短预测的原因。有关更多详细信息,请参阅以下文章:https://cloud.google.com/translate/automl/docs/evaluate#bleu。
关于输入形状的说明:对于未批处理的输入,y_pred
应该是一个形状为 ()
的张量,而 y_true
应该是一个形状为 (num_references,)
的张量。对于批处理输入,y_pred
应该是一个形状为 (batch_size,)
的张量,而 y_true
应该是一个形状为 (batch_size, num_references)
的张量。在批处理输入的情况下,如果不同的样本具有不同的参考数量,y_true
也可以是一个形状为 (batch_size, None)
的不规则张量。
参数
tf.RaggedTensor
(任何形状),并对张量中的字符串进行分词。如果未指定分词器,则使用默认分词器。默认分词器复制 SacreBLEU 的 "tokenizer_13a"
分词器(https://github.com/mjpost/sacrebleu/blob/v2.1.0/sacrebleu/tokenizers/tokenizer_13a.py)的行为。max_order
设置为 3,则将考虑一元组、二元组和三元组。默认为 4
。False
。"float32"
。参考资料