mindspore.nn.BleuScore

class mindspore.nn.BleuScore(n_gram=4, smooth=False)[源代码]

计算BLEU分数。BLEU指的是具有一个或多个引用的机器翻译文本的metric。

参数:
  • n_gram (int) - 取值范围为1~4。默认值:4。

  • smooth (bool) - 是否采用平滑计算的方式。默认值:False。

异常:
  • ValueError - n_gram 的取值范围不在1~4之间。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore.nn as nn
>>>
>>> candidate_corpus = [['i', 'have', 'a', 'pen', 'on', 'my', 'desk']]
>>> reference_corpus = [[['i', 'have', 'a', 'pen', 'in', 'my', 'desk'],
...                      ['there', 'is', 'a', 'pen', 'on', 'the', 'desk']]]
>>> metric = nn.BleuScore()
>>> metric.clear()
>>> metric.update(candidate_corpus, reference_corpus)
>>> bleu_score = metric.eval()
>>> print(bleu_score)
0.5946035575013605
clear()[源代码]

重置评估结果。

eval()[源代码]

计算BLEU分数。

返回:

numpy.ndarray,numpy类型的BLEU分数。

异常:
  • RuntimeError - 调用该方法前没有先调用update方法。

update(*inputs)[源代码]

使用输入的内容更新内部评估结果。

参数:
  • *inputs (iterator) - 输入的元组,第一个输入是机器翻译语料库列表,第二个输入是引用语料库列表。

异常:
  • ValueError - 输入参数的数量不等于2。

  • ValueError - candidate_corpus 的长度与 reference_corpus 不同。