



'''simple docstring'''




import numpy as np
from scipy.spatial.distance import cdist
from sklearn.metrics import fa_score

import datasets


UpperCamelCase_       :  Optional[int]					=  "\\n    @inproceedings{kakwani2020indicnlpsuite,\n    title={{IndicNLPSuite: Monolingual Corpora, Evaluation Benchmarks and Pre-trained Multilingual Language Models for Indian Languages}},\n    author={Divyanshu Kakwani and Anoop Kunchukuttan and Satish Golla and Gokul N.C. and Avik Bhattacharyya and Mitesh M. Khapra and Pratyush Kumar},\n    year={2020},\n    booktitle={Findings of EMNLP},\n}\n"

UpperCamelCase_       :  Union[str, Any]					=  "\\n    IndicGLUE is a natural language understanding benchmark for Indian languages. It contains a wide\n    variety of tasks and covers 11 major Indian languages - as, bn, gu, hi, kn, ml, mr, or, pa, ta, te.\n"

UpperCamelCase_       :  List[Any]					=  "\nCompute IndicGLUE evaluation metric associated to each IndicGLUE dataset.\nArgs:\n    predictions: list of predictions to score (as int64),\n        except for 'cvit-mkb-clsr' where each prediction is a vector (of float32).\n    references: list of ground truth labels corresponding to the predictions (as int64),\n        except for 'cvit-mkb-clsr' where each reference is a vector (of float32).\nReturns: depending on the IndicGLUE subset, one or several of:\n    \"accuracy\": Accuracy\n    \"f1\": F1 score\n    \"precision\": Precision@10\nExamples:\n\n    >>> indic_glue_metric = datasets.load_metric('indic_glue', 'wnli')  # 'wnli' or any of [\"copa\", \"sna\", \"csqa\", \"wstp\", \"inltkh\", \"bbca\", \"iitp-mr\", \"iitp-pr\", \"actsa-sc\", \"md\"]\n    >>> references = [0, 1]\n    >>> predictions = [0, 1]\n    >>> results = indic_glue_metric.compute(predictions=predictions, references=references)\n    >>> print(results)\n    {'accuracy': 1.0}\n\n    >>> indic_glue_metric = datasets.load_metric('indic_glue', 'wiki-ner')\n    >>> references = [0, 1]\n    >>> predictions = [0, 1]\n    >>> results = indic_glue_metric.compute(predictions=predictions, references=references)\n    >>> print(results)\n    {'accuracy': 1.0, 'f1': 1.0}\n\n    >>> indic_glue_metric = datasets.load_metric('indic_glue', 'cvit-mkb-clsr')\n    >>> references = [[0.5, 0.5, 0.5], [0.1, 0.2, 0.3]]\n    >>> predictions = [[0.5, 0.5, 0.5], [0.1, 0.2, 0.3]]\n    >>> results = indic_glue_metric.compute(predictions=predictions, references=references)\n    >>> print(results)\n    {'precision@10': 1.0}\n\n"






def 		_lowerCAmelCase				(_lowercase   ,					_lowercase			):

       """simple docstring"""

       return float((preds == labels).mean()			)






def 		_lowerCAmelCase				(_lowercase   ,					_lowercase			):

       """simple docstring"""

       a__								= simple_accuracy(lowerCamelCase__   ,					lowerCamelCase__			)
       a__								= float(fa_score(y_true=lowerCamelCase__   ,					y_pred=lowerCamelCase__			)			)
       return {
           "accuracy": acc,
           "f1": fa,
       }






def 		_lowerCAmelCase				(_lowercase   ,					_lowercase			):

       """simple docstring"""

       a__								= np.array(lowerCamelCase__			)
       a__								= np.array(lowerCamelCase__			)
       a__								= en_sentvecs.shape[0]

       # mean centering
       a__								= en_sentvecs - np.mean(lowerCamelCase__   ,					axis=0			)
       a__								= in_sentvecs - np.mean(lowerCamelCase__   ,					axis=0			)

       a__								= cdist(lowerCamelCase__   ,					lowerCamelCase__   ,					"cosine"			)
       a__								= np.array(range(lowerCamelCase__			)			)
       a__								= sim.argsort(axis=1			)[:, :10]
       a__								= np.any(preds == actual[:, None]   ,					axis=1			)
       return float(matches.mean()			)



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






      """simple docstring"""




      def lowerCAmelCase_					(       self							:     Optional[Any]   ):







             if self.config_name not in [
                 "wnli",
                 "copa",
                 "sna",
                 "csqa",
                 "wstp",
                 "inltkh",
                 "bbca",
                 "cvit-mkb-clsr",
                 "iitp-mr",
                 "iitp-pr",
                 "actsa-sc",
                 "md",
                 "wiki-ner",
             ]:
                    raise KeyError(
                        "You should supply a configuration name selected in "
                        "[\"wnli\", \"copa\", \"sna\", \"csqa\", \"wstp\", \"inltkh\", \"bbca\", "
                        "\"cvit-mkb-clsr\", \"iitp-mr\", \"iitp-pr\", \"actsa-sc\", \"md\", "
                        "\"wiki-ner\"]"   )
             return datasets.MetricInfo(
                 description=_DESCRIPTION			,citation=_CITATION			,inputs_description=_KWARGS_DESCRIPTION			,features=datasets.Features(
                     {
                         "predictions": datasets.Value("int64"   )
                         if self.config_name != "cvit-mkb-clsr"
                         else datasets.Sequence(datasets.Value("float32"   )   ),
                         "references": datasets.Value("int64"   )
                         if self.config_name != "cvit-mkb-clsr"
                         else datasets.Sequence(datasets.Value("float32"   )   ),
                     }   )			,codebase_urls=[]			,reference_urls=[]			,format="numpy" if self.config_name != "cvit-mkb-clsr" else None			,)




      def lowerCAmelCase_					(       self							:     Optional[Any]			,a__							:     Any			,a__							:     Optional[int]   ):







             if self.config_name == "cvit-mkb-clsr":
                    return {"precision@10": precision_at_aa(a__			,a__   )}
             elif self.config_name in ["wiki-ner"]:
                    return acc_and_fa(a__			,a__   )
             elif self.config_name in [
                 "wnli",
                 "copa",
                 "sna",
                 "csqa",
                 "wstp",
                 "inltkh",
                 "bbca",
                 "iitp-mr",
                 "iitp-pr",
                 "actsa-sc",
                 "md",
             ]:
                    return {"accuracy": simple_accuracy(a__			,a__   )}
             else:
                    raise KeyError(
                        "You should supply a configuration name selected in "
                        "[\"wnli\", \"copa\", \"sna\", \"csqa\", \"wstp\", \"inltkh\", \"bbca\", "
                        "\"cvit-mkb-clsr\", \"iitp-mr\", \"iitp-pr\", \"actsa-sc\", \"md\", "
                        "\"wiki-ner\"]"   )




from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tokenizers_available, is_torch_available


UpperCAmelCase   :    Any     =		{
    "configuration_roc_bert": ["ROC_BERT_PRETRAINED_CONFIG_ARCHIVE_MAP", "RoCBertConfig"],
    "tokenization_roc_bert": ["RoCBertTokenizer"],
}

try:
		if not is_tokenizers_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		pass

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		UpperCAmelCase   :    Union[str, Any]     =		[
		    "ROC_BERT_PRETRAINED_MODEL_ARCHIVE_LIST",
		    "RoCBertForCausalLM",
		    "RoCBertForMaskedLM",
		    "RoCBertForMultipleChoice",
		    "RoCBertForPreTraining",
		    "RoCBertForQuestionAnswering",
		    "RoCBertForSequenceClassification",
		    "RoCBertForTokenClassification",
		    "RoCBertLayer",
		    "RoCBertModel",
		    "RoCBertPreTrainedModel",
		    "load_tf_weights_in_roc_bert",
		]

if TYPE_CHECKING:
		from .configuration_roc_bert import ROC_BERT_PRETRAINED_CONFIG_ARCHIVE_MAP, RoCBertConfig
		from .tokenization_roc_bert import RoCBertTokenizer

		try:
				if not is_tokenizers_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				raise OptionalDependencyNotAvailable()

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_roc_bert import (
				    ROC_BERT_PRETRAINED_MODEL_ARCHIVE_LIST,
				    RoCBertForCausalLM,
				    RoCBertForMaskedLM,
				    RoCBertForMultipleChoice,
				    RoCBertForPreTraining,
				    RoCBertForQuestionAnswering,
				    RoCBertForSequenceClassification,
				    RoCBertForTokenClassification,
				    RoCBertLayer,
				    RoCBertModel,
				    RoCBertPreTrainedModel,
				    load_tf_weights_in_roc_bert,
				)


else:
		import sys

		UpperCAmelCase   :    Tuple     =		_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)

