class_docstr: Calculate `BLEU score`_ of machine translated text with one or more references.
  
  This implementation follows the behaviour of `SacreBLEU`_. The SacreBLEU implementation differs from the NLTK BLEU
  implementation in tokenization techniques.
  
  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 ``compute`` the metric returns the following output:
  
  - ``sacre_bleu`` (:class:`~torch.Tensor`): A tensor with the SacreBLEU Score
  
  Args:
      n_gram: Gram value ranged from 1 to 4
      smooth: Whether to apply smoothing, see `SacreBLEU`_
      tokenize: Tokenization technique to be used. Choose between ``'none'``, ``'13a'``, ``'zh'``, ``'intl'``,
          ``'char'``, ``'ja-mecab'``, ``'ko-mecab'``, ``'flores101'`` and ``'flores200'``.
      lowercase:  If ``True``, BLEU score over lowercased text is calculated.
      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 ``tokenize`` not one of 'none', '13a', 'zh', 'intl' or 'char'
      ValueError:
          If ``tokenize`` is set to 'intl' and `regex` is not installed
      ValueError:
          If a length of a list of weights is not ``None`` and not equal to ``n_gram``.
  
  
  Example:
      >>> from torchmetrics.text import SacreBLEUScore
      >>> preds = ['the cat is on the mat']
      >>> target = [['there is a cat on the mat', 'a cat is on the mat']]
      >>> sacre_bleu = SacreBLEUScore()
      >>> sacre_bleu(preds, target)
      tensor(0.7598)
  
  Additional References:
  
      - Automatic Evaluation of Machine Translation Quality Using Longest Common Subsequence
        and Skip-Bigram Statistics by Chin-Yew Lin and Franz Josef Och `Machine Translation Evolution`_
code: def __init__(
      self,
      n_gram: int = 4,
      smooth: bool = False,
      tokenize: _TokenizersLiteral = "13a",
      lowercase: bool = False,
      weights: Optional[Sequence[float]] = None,
      **kwargs: Any,
  ) -> None:
      super().__init__(
          n_gram=n_gram, smooth=smooth, weights=weights, **kwargs
      )
      self.tokenizer = _SacreBLEUTokenizer(tokenize, lowercase)
  
file_path: torchmetrics/src/torchmetrics/text/sacre_bleu.py
imports: from typing import Any, Optional, Sequence, Union
  from torch import Tensor
  from torchmetrics.functional.text.bleu import _bleu_score_update
  from torchmetrics.functional.text.sacre_bleu import _SacreBLEUTokenizer, _TokenizersLiteral
  from torchmetrics.text.bleu import BLEUScore
  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 SacreBLEUScore object from inherited base classes: BLEUScore with example: obj = SacreBLEUScore(n_gram, smooth, tokenize, lowercase, weights)