class_docstr: Calculate `BLEU score`_ of machine translated text with one or more references.
  
  As input to ``forward`` and ``update`` the metric accepts the following input:
  
  - ``preds`` (:class:`~Sequence`): An iterable of machine translated corpus
  - ``target`` (:class:`~Sequence`): An iterable of iterables of reference corpus
  
  As output of ``forward`` and ``update`` the metric returns the following output:
  
  - ``bleu`` (:class:`~torch.Tensor`): A tensor with the BLEU Score
  
  Args:
      n_gram: Gram value ranged from 1 to 4
      smooth: Whether or not to apply smoothing, see `Machine Translation Evolution`_
      kwargs: Additional keyword arguments, see :ref:`Metric kwargs` for more info.
      weights:
          Weights used for unigrams, bigrams, etc. to calculate BLEU score.
          If not provided, uniform weights are used.
  
  Raises:
      ValueError: If a length of a list of weights is not ``None`` and not equal to ``n_gram``.
  
  Example:
      >>> from torchmetrics.text import BLEUScore
      >>> preds = ['the cat is on the mat']
      >>> target = [['there is a cat on the mat', 'a cat is on the mat']]
      >>> bleu = BLEUScore()
      >>> bleu(preds, target)
      tensor(0.7598)
class_docstr_tok: ["Calculate","`","BLEU","score","`","_","of","machine","translated","text","with","one","or","more","references",".","As","input","to","``","forward","``","and","``","update","``","the","metric","accepts","the","following","input",":","-","``","preds","``","(",":","class",":","`","~Sequence","`",")",":","An","iterable","of","machine","translated","corpus","-","``","target","``","(",":","class",":","`","~Sequence","`",")",":","An","iterable","of","iterables","of","reference","corpus","As","output","of","``","forward","``","and","``","update","``","the","metric","returns","the","following","output",":","-","``","bleu","``","(",":","class",":","`","~torch.Tensor","`",")",":","A","tensor","with","the","BLEU","Score","Args",":","n_gram",":","Gram","value","ranged","from","1","to","4","smooth",":","Whether","or","not","to","apply","smoothing",",","see","`","Machine","Translation","Evolution","`","_","kwargs",":","Additional","keyword","arguments",",","see",":","ref",":","`","Metric","kwargs","`","for","more","info",".","weights",":","Weights","used","for","unigrams",",","bigrams",",","etc",".","to","calculate","BLEU","score",".","If","not","provided",",","uniform","weights","are","used",".","Raises",":","ValueError",":","If","a","length","of","a","list","of","weights","is","not","``","None","``","and","not","equal","to","``","n_gram","``",".","Example",":",">",">",">","from","torchmetrics.text","import","BLEUScore",">",">",">","preds","=","[","'the","cat","is","on","the","mat","'","]",">",">",">","target","=","[","[","'there","is","a","cat","on","the","mat","'",",","'","a","cat","is","on","the","mat","'","]","]",">",">",">","bleu","=","BLEUScore","(",")",">",">",">","bleu","(","preds",",","target",")","tensor","(","0.7598",")"]
docstr: Plot a single or multiple values from the metric.
  
  Args:
      val: Either a single result from calling `metric.forward` or `metric.compute` or a list of these results.
          If no value is provided, will automatically call `metric.compute` and plot that result.
      ax: An matplotlib axis object. If provided will add plot to that axis
  
  Returns:
      Figure and Axes object
  
  Raises:
      ModuleNotFoundError:
          If `matplotlib` is not installed
  
  .. plot::
      :scale: 75
  
      >>> # Example plotting a single value
      >>> from torchmetrics.text import BLEUScore
      >>> metric = BLEUScore()
      >>> preds = ['the cat is on the mat']
      >>> target = [['there is a cat on the mat', 'a cat is on the mat']]
      >>> metric.update(preds, target)
      >>> fig_, ax_ = metric.plot()
  
  .. plot::
      :scale: 75
  
      >>> # Example plotting multiple values
      >>> from torchmetrics.text import BLEUScore
      >>> metric = BLEUScore()
      >>> preds = ['the cat is on the mat']
      >>> target = [['there is a cat on the mat', 'a cat is on the mat']]
      >>> values = [ ]
      >>> for _ in range(10):
      ...     values.append(metric(preds, target))
      >>> fig_, ax_ = metric.plot(values)
docstr_tok: ["Plot","a","single","or","multiple","values","from","the","metric",".","Args",":","val",":","Either","a","single","result","from","calling","`","metric.forward","`","or","`","metric.compute","`","or","a","list","of","these","results",".","If","no","value","is","provided",",","will","automatically","call","`","metric.compute","`","and","plot","that","result",".","ax",":","An","matplotlib","axis","object",".","If","provided","will","add","plot","to","that","axis","Returns",":","Figure","and","Axes","object","Raises",":","ModuleNotFoundError",":","If","`","matplotlib","`","is","not","installed","..","plot",":",":",":","scale",":","75",">",">",">","#","Example","plotting","a","single","value",">",">",">","from","torchmetrics.text","import","BLEUScore",">",">",">","metric","=","BLEUScore","(",")",">",">",">","preds","=","[","'the","cat","is","on","the","mat","'","]",">",">",">","target","=","[","[","'there","is","a","cat","on","the","mat","'",",","'","a","cat","is","on","the","mat","'","]","]",">",">",">","metric.update","(","preds",",","target",")",">",">",">","fig_",",","ax_","=","metric.plot","(",")","..","plot",":",":",":","scale",":","75",">",">",">","#","Example","plotting","multiple","values",">",">",">","from","torchmetrics.text","import","BLEUScore",">",">",">","metric","=","BLEUScore","(",")",">",">",">","preds","=","[","'the","cat","is","on","the","mat","'","]",">",">",">","target","=","[","[","'there","is","a","cat","on","the","mat","'",",","'","a","cat","is","on","the","mat","'","]","]",">",">",">","values","=","[","]",">",">",">","for","_","in","range","(","10",")",":","...","values.append","(","metric","(","preds",",","target",")",")",">",">",">","fig_",",","ax_","=","metric.plot","(","values",")"]
code: def plot(
      self,
      val: Optional[Union[Tensor, Sequence[Tensor]]] = None,
      ax: Optional[_AX_TYPE] = None,
  ) -> _PLOT_OUT_TYPE:
      """Plot a single or multiple values from the metric.
  
      Args:
          val: Either a single result from calling `metric.forward` or `metric.compute` or a list of these results.
              If no value is provided, will automatically call `metric.compute` and plot that result.
          ax: An matplotlib axis object. If provided will add plot to that axis
  
      Returns:
          Figure and Axes object
  
      Raises:
          ModuleNotFoundError:
              If `matplotlib` is not installed
  
      .. plot::
          :scale: 75
  
          >>> # Example plotting a single value
          >>> from torchmetrics.text import BLEUScore
          >>> metric = BLEUScore()
          >>> preds = ['the cat is on the mat']
          >>> target = [['there is a cat on the mat', 'a cat is on the mat']]
          >>> metric.update(preds, target)
          >>> fig_, ax_ = metric.plot()
  
      .. plot::
          :scale: 75
  
          >>> # Example plotting multiple values
          >>> from torchmetrics.text import BLEUScore
          >>> metric = BLEUScore()
          >>> preds = ['the cat is on the mat']
          >>> target = [['there is a cat on the mat', 'a cat is on the mat']]
          >>> values = [ ]
          >>> for _ in range(10):
          ...     values.append(metric(preds, target))
          >>> fig_, ax_ = metric.plot(values)
  
      """
      return self._plot(val, ax)
  
file_path: torchmetrics/src/torchmetrics/text/bleu.py
imports: from typing import Any, Optional, Sequence, Union
  import torch
  from torch import Tensor, tensor
  from torchmetrics import Metric
  from torchmetrics.functional.text.bleu import _bleu_score_compute, _bleu_score_update, _tokenize_fn
  from torchmetrics.utilities.imports import _MATPLOTLIB_AVAILABLE
  from torchmetrics.utilities.plot import _AX_TYPE, _PLOT_OUT_TYPE
label_desc: Use image node_id 4 for calling the BLEUScore obj's underlying member method code with example usage: obj.plot(val, ax) and returns: self