"""simple docstring"""
import numpy as np
from nltk.translate import meteor_score

import datasets
from datasets.config import importlib_metadata, version


lowercase__ 	=     version.parse(importlib_metadata.version('nltk'))
if NLTK_VERSION >= version.Version('3.6.4'):
 from nltk import word_tokenize


lowercase__ 	=     '\\n@inproceedings{banarjee2005,\n  title     = {{METEOR}: An Automatic Metric for {MT} Evaluation with Improved Correlation with Human Judgments},\n  author    = {Banerjee, Satanjeev  and Lavie, Alon},\n  booktitle = {Proceedings of the {ACL} Workshop on Intrinsic and Extrinsic Evaluation Measures for Machine Translation and/or Summarization},\n  month     = jun,\n  year      = {2005},\n  address   = {Ann Arbor, Michigan},\n  publisher = {Association for Computational Linguistics},\n  url       = {https://www.aclweb.org/anthology/W05-0909},\n  pages     = {65--72},\n}\n'

lowercase__ 	=     '\\nMETEOR, an automatic metric for machine translation evaluation\nthat is based on a generalized concept of unigram matching between the\nmachine-produced translation and human-produced reference translations.\nUnigrams can be matched based on their surface forms, stemmed forms,\nand meanings; furthermore, METEOR can be easily extended to include more\nadvanced matching strategies. Once all generalized unigram matches\nbetween the two strings have been found, METEOR computes a score for\nthis matching using a combination of unigram-precision, unigram-recall, and\na measure of fragmentation that is designed to directly capture how\nwell-ordered the matched words in the machine translation are in relation\nto the reference.\n\nMETEOR gets an R correlation value of 0.347 with human evaluation on the Arabic\ndata and 0.331 on the Chinese data. This is shown to be an improvement on\nusing simply unigram-precision, unigram-recall and their harmonic F1\ncombination.\n'

lowercase__ 	=     '\nComputes METEOR score of translated segments against one or more references.\nArgs:\n    predictions: list of predictions to score. Each prediction\n        should be a string with tokens separated by spaces.\n    references: list of reference for each prediction. Each\n        reference should be a string with tokens separated by spaces.\n    alpha: Parameter for controlling relative weights of precision and recall. default: 0.9\n    beta: Parameter for controlling shape of penalty as a function of fragmentation. default: 3\n    gamma: Relative weight assigned to fragmentation penalty. default: 0.5\nReturns:\n    \'meteor\': meteor score.\nExamples:\n\n    >>> meteor = datasets.load_metric(\'meteor\')\n    >>> predictions = ["It is a guide to action which ensures that the military always obeys the commands of the party"]\n    >>> references = ["It is a guide to action that ensures that the military will forever heed Party commands"]\n    >>> results = meteor.compute(predictions=predictions, references=references)\n    >>> print(round(results["meteor"], 4))\n    0.6944\n'




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



      def   lowerCamelCase_       (						self)     ->      Optional[int]:





        '''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'),
                })   ,      codebase_urls=['https://github.com/nltk/nltk/blob/develop/nltk/translate/meteor_score.py']   ,      reference_urls=[
                'https://www.nltk.org/api/nltk.translate.html#module-nltk.translate.meteor_score',
                'https://en.wikipedia.org/wiki/METEOR',
            ]   ,      )



      def   lowerCamelCase_       (						self   ,      lowercase)     ->      Dict:





        '''simple docstring'''





        import nltk

        nltk.download('wordnet')
        if NLTK_VERSION >= version.Version('3.6.5'):
          nltk.download('punkt')
        if NLTK_VERSION >= version.Version('3.6.6'):
          nltk.download('omw-1.4')



      def   lowerCamelCase_       (						self   ,      lowercase   ,      lowercase   ,      lowercase=0.9   ,      lowercase=3   ,      lowercase=0.5)     ->      Tuple:





        '''simple docstring'''





        if NLTK_VERSION >= version.Version('3.6.5'):
          a__:					Optional[Any]      							=     [
              meteor_score.single_meteor_score(
                  word_tokenize(lowercase)   ,      word_tokenize(lowercase)   ,      alpha=lowercase   ,      beta=lowercase   ,      gamma=lowercase)
              for ref, pred in zip(lowercase   ,      lowercase)
          ]
        else:
          a__:					Tuple      							=     [
              meteor_score.single_meteor_score(lowercase   ,      lowercase   ,      alpha=lowercase   ,      beta=lowercase   ,      gamma=lowercase)
              for ref, pred in zip(lowercase   ,      lowercase)
          ]

        return {"meteor": np.mean(lowercase)}



"""simple docstring"""
def 						__a       (     _SCREAMING_SNAKE_CASE = 1000000       )     ->int:
  a__:					Any      							=     limit + 1
  a__:					List[str]      							=     [0] * limit
  for first_term in range(1		,					_SCREAMING_SNAKE_CASE       ):
    for n in range(_SCREAMING_SNAKE_CASE		,					_SCREAMING_SNAKE_CASE		,					_SCREAMING_SNAKE_CASE       ):
      a__:					Any      							=     first_term + n / first_term
      if common_difference % 4:  # d must be divisble by 4
        continue
      else:
        common_difference /= 4
        if (
            first_term > common_difference
            and first_term < 4 * common_difference
        ):  # since x,y,z are positive integers
          frequency[n] += 1  # so z>0 and a>d ,also 4d<a

  a__:					Optional[int]      							=     sum(1 for x in frequency[1:limit] if x == 10       )

  return count


if __name__ == "__main__":
 print(f"{solution() = }")


