RougeN度量

[source]

RougeN class

keras_nlp.metrics.RougeN(order=2, use_stemmer=False, name="rouge-n", **kwargs)

ROUGE-N metric.

This class implements the ROUGE-N variant of the ROUGE metric. The ROUGE-N metric is traditionally used for evaluating summarisation systems. Succinctly put, ROUGE-N is a score based on the number of matching n-grams between the reference text and the hypothesis text.

Note on input shapes: For y_true and y_pred, this class supports scalar values and batch inputs of shapes (), (batch_size,) and (batch_size, 1).

Arguments

  • order: The order of n-grams which are to be matched. It should lie in range [1, 9]. Defaults to 2.
  • use_stemmer: bool. Whether Porter Stemmer should be used to strip word suffixes to improve matching. Defaults to False.
  • dtype: string or tf.dtypes.Dtype. Precision of metric computation. If not specified, it defaults to "float32".
  • name: string. Name of the metric instance.
  • **kwargs: Other keyword arguments.

References

Examples

  1. Python string.
>>> rouge_n = keras_nlp.metrics.RougeN(order=2)
>>> y_true = "the tiny little cat was found under the big funny bed"
>>> y_pred = "the cat was under the bed"
>>> rouge_n(y_true, y_pred)["f1_score"]
<tf.Tensor: shape=(), dtype=float32, numpy=0.26666668>
  1. List inputs.
>>> rouge_n = keras_nlp.metrics.RougeN(order=2)
>>> y_true = [
...     "the tiny little cat was found under the big funny bed",
...     "i really love contributing to KerasNLP",
... ]
>>> y_pred = [
...     "the cat was under the bed",
...     "i love contributing to KerasNLP",
... ]
>>> rouge_n(y_true, y_pred)["f1_score"]
<tf.Tensor: shape=(), dtype=float32, numpy=0.4666667>
  1. 2D inputs.
>>> rouge_n = keras_nlp.metrics.RougeN(order=2)
>>> y_true =[
...     ["the tiny little cat was found under the big funny bed"],
...     ["i really love contributing to KerasNLP"],
... ]
>>> y_pred =[
...     ["the cat was under the bed"],
...     ["i love contributing to KerasNLP"],
... ]
>>> rouge_n(y_true, y_pred)["f1_score"]
<tf.Tensor: shape=(), dtype=float32, numpy=0.4666667>
  1. Trigrams.
>>> rouge_n = keras_nlp.metrics.RougeN(order=3)
>>> y_true = [
...     "the tiny little cat was found under the big funny bed",
...     "i really love contributing to KerasNLP",
... ]
>>> y_pred = [
...     "the cat was under the bed",
...     "i love contributing to KerasNLP",
... ]
>>> rouge_n(y_true, y_pred)["f1_score"]
<tf.Tensor: shape=(), dtype=float32, numpy=0.2857143>