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",")"]
code: def __init__(
      self,
      n_gram: int = 4,
      smooth: bool = False,
      weights: Optional[Sequence[float]] = None,
      **kwargs: Any,
  ) -> None:
      super().__init__(**kwargs)
      self.n_gram = n_gram
      self.smooth = smooth
      if weights is not None and len(weights) != n_gram:
          raise ValueError(
              f"List of weights has different weights than `n_gram`: {len(weights)} != {n_gram}"
          )
      self.weights = (
          weights if weights is not None else [1.0 / n_gram] * n_gram
      )
  
      self.add_state("preds_len", tensor(0.0), dist_reduce_fx="sum")
      self.add_state("target_len", tensor(0.0), dist_reduce_fx="sum")
      self.add_state(
          "numerator", torch.zeros(self.n_gram), dist_reduce_fx="sum"
      )
      self.add_state(
          "denominator", torch.zeros(self.n_gram), dist_reduce_fx="sum"
      )
  
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 1 to create a new BLEUScore object from inherited base classes: Metric with example: obj = BLEUScore(n_gram, smooth, weights)