





'''simple docstring'''




import re
import string

import numpy as np

import datasets


lowercase__    :      str						=    '''\nReturns the rate at which the input predicted strings exactly match their references, ignoring any strings input as part of the regexes_to_ignore list.\n'''

lowercase__    :      int						=    '''\nArgs:\n    predictions: List of predicted texts.\n    references: List of reference texts.\n    regexes_to_ignore: List, defaults to None. Regex expressions of characters to\n        ignore when calculating the exact matches. Note: these regexes are removed\n        from the input data before the changes based on the options below (e.g. ignore_case,\n        ignore_punctuation, ignore_numbers) are applied.\n    ignore_case: Boolean, defaults to False. If true, turns everything\n        to lowercase so that capitalization differences are ignored.\n    ignore_punctuation: Boolean, defaults to False. If true, removes all punctuation before\n        comparing predictions and references.\n    ignore_numbers: Boolean, defaults to False. If true, removes all punctuation before\n        comparing predictions and references.\nReturns:\n    exact_match: Dictionary containing exact_match rate. Possible values are between 0.0 and 100.0, inclusive.\nExamples:\n    >>> exact_match = datasets.load_metric("exact_match")\n    >>> refs = ["the cat", "theater", "YELLING", "agent007"]\n    >>> preds = ["cat?", "theater", "yelling", "agent"]\n    >>> results = exact_match.compute(references=refs, predictions=preds)\n    >>> print(round(results["exact_match"], 1))\n    25.0\n\n    >>> exact_match = datasets.load_metric("exact_match")\n    >>> refs = ["the cat", "theater", "YELLING", "agent007"]\n    >>> preds = ["cat?", "theater", "yelling", "agent"]\n    >>> results = exact_match.compute(references=refs, predictions=preds, regexes_to_ignore=["the ", "yell"], ignore_case=True, ignore_punctuation=True)\n    >>> print(round(results["exact_match"], 1))\n    50.0\n\n\n    >>> exact_match = datasets.load_metric("exact_match")\n    >>> refs = ["the cat", "theater", "YELLING", "agent007"]\n    >>> preds = ["cat?", "theater", "yelling", "agent"]\n    >>> results = exact_match.compute(references=refs, predictions=preds, regexes_to_ignore=["the ", "yell", "YELL"], ignore_case=True, ignore_punctuation=True)\n    >>> print(round(results["exact_match"], 1))\n    75.0\n\n    >>> exact_match = datasets.load_metric("exact_match")\n    >>> refs = ["the cat", "theater", "YELLING", "agent007"]\n    >>> preds = ["cat?", "theater", "yelling", "agent"]\n    >>> results = exact_match.compute(references=refs, predictions=preds, regexes_to_ignore=["the ", "yell", "YELL"], ignore_case=True, ignore_punctuation=True, ignore_numbers=True)\n    >>> print(round(results["exact_match"], 1))\n    100.0\n\n    >>> exact_match = datasets.load_metric("exact_match")\n    >>> refs = ["The cat sat on the mat.", "Theaters are great.", "It\'s like comparing oranges and apples."]\n    >>> preds = ["The cat sat on the mat?", "Theaters are great.", "It\'s like comparing apples and oranges."]\n    >>> results = exact_match.compute(references=refs, predictions=preds)\n    >>> print(round(results["exact_match"], 1))\n    33.3\n\n'''

lowercase__    :      int						=    '''\n'''


@datasets.utils.file_utils.add_start_docstrings(_DESCRIPTION					,		_KWARGS_DESCRIPTION							)
class  SCREAMING_SNAKE_CASE    (datasets.Metric							):


     def 							SCREAMING_SNAKE_CASE  (						self):

          '''simple docstring'''






          return datasets.MetricInfo(
              description=_DESCRIPTION						,	citation=_CITATION						,	inputs_description=_KWARGS_DESCRIPTION						,	features=datasets.Features(
                  {
                      'predictions': datasets.Value('string'						,	id='sequence'),
                      'references': datasets.Value('string'						,	id='sequence'),
                  })						,	reference_urls=[]						,	)


     def 							SCREAMING_SNAKE_CASE  (						self						,	_UpperCAmelCase						,	_UpperCAmelCase						,	_UpperCAmelCase=None						,	_UpperCAmelCase=False						,	_UpperCAmelCase=False						,	_UpperCAmelCase=False						,	):

          '''simple docstring'''






          if regexes_to_ignore is not None:
               for s in regexes_to_ignore:
                    __A						: Dict      =       np.array([re.sub(_snake_case						,	''						,	_snake_case) for x in predictions])
                    __A						: Optional[Any]      =       np.array([re.sub(_snake_case						,	''						,	_snake_case) for x in references])
          else:
               __A						: Optional[Any]      =       np.asarray(_snake_case)
               __A						: Any      =       np.asarray(_snake_case)

          if ignore_case:
               __A						: List[str]      =       np.char.lower(_snake_case)
               __A						: Tuple      =       np.char.lower(_snake_case)

          if ignore_punctuation:
               __A						: Union[str, Any]      =       string.punctuation.maketrans(''						,	''						,	string.punctuation)
               __A						: int      =       np.char.translate(_snake_case						,	table=_snake_case)
               __A						: Optional[int]      =       np.char.translate(_snake_case						,	table=_snake_case)

          if ignore_numbers:
               __A						: Optional[Any]      =       string.digits.maketrans(''						,	''						,	string.digits)
               __A						: Tuple      =       np.char.translate(_snake_case						,	table=_snake_case)
               __A						: List[str]      =       np.char.translate(_snake_case						,	table=_snake_case)

          __A						: Any      =       predictions == references

          return {"exact_match": np.mean(_snake_case) * 100}




"""simple docstring"""







from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_sentencepiece_available,
    is_torch_available,
)


lowerCAmelCase_   						=   {
    'configuration_speecht5': [
        'SPEECHT5_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'SPEECHT5_PRETRAINED_HIFIGAN_CONFIG_ARCHIVE_MAP',
        'SpeechT5Config',
        'SpeechT5HifiGanConfig',
    ],
    'feature_extraction_speecht5': ['SpeechT5FeatureExtractor'],
    'processing_speecht5': ['SpeechT5Processor'],
}

try:
							if not is_sentencepiece_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							lowerCAmelCase_   						=   ['SpeechT5Tokenizer']

try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							lowerCAmelCase_   						=   [
							    'SPEECHT5_PRETRAINED_MODEL_ARCHIVE_LIST',
							    'SpeechT5ForSpeechToText',
							    'SpeechT5ForSpeechToSpeech',
							    'SpeechT5ForTextToSpeech',
							    'SpeechT5Model',
							    'SpeechT5PreTrainedModel',
							    'SpeechT5HifiGan',
							]

if TYPE_CHECKING:
							from .configuration_speechta import (
							    SPEECHT5_PRETRAINED_CONFIG_ARCHIVE_MAP,
							    SPEECHT5_PRETRAINED_HIFIGAN_CONFIG_ARCHIVE_MAP,
							    SpeechTaConfig,
							    SpeechTaHifiGanConfig,
							)
							from .feature_extraction_speechta import SpeechTaFeatureExtractor
							from .processing_speechta import SpeechTaProcessor

							try:
														if not is_sentencepiece_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .tokenization_speechta import SpeechTaTokenizer

							try:
														if not is_torch_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_speechta import (
														    SPEECHT5_PRETRAINED_MODEL_ARCHIVE_LIST,
														    SpeechTaForSpeechToSpeech,
														    SpeechTaForSpeechToText,
														    SpeechTaForTextToSpeech,
														    SpeechTaHifiGan,
														    SpeechTaModel,
														    SpeechTaPreTrainedModel,
														)

else:
							import sys

							lowerCAmelCase_   						=   _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)
