code: def _generate_enums(
      hypothesis: Iterable[str],
      reference: Iterable[str],
      preprocess: Callable[[str], str] = str.lower,
  ) -> Tuple[List[Tuple[int, str]], List[Tuple[int, str]]]:
      """
      Takes in pre-tokenized inputs for hypothesis and reference and returns
      enumerated word lists for each of them
  
      :param hypothesis: pre-tokenized hypothesis
      :param reference: pre-tokenized reference
      :preprocess: preprocessing method (default str.lower)
      :return: enumerated words list
      """
      if isinstance(hypothesis, str):
          raise TypeError(
              f'"hypothesis" expects pre-tokenized hypothesis (Iterable[str]): {hypothesis}'
          )
  
      if isinstance(reference, str):
          raise TypeError(
              f'"reference" expects pre-tokenized reference (Iterable[str]): {reference}'
          )
  
      enum_hypothesis_list = list(
          enumerate(map(preprocess, hypothesis))
      )
      enum_reference_list = list(enumerate(map(preprocess, reference)))
      return enum_hypothesis_list, enum_reference_list
  
file_path: nltk/nltk/translate/meteor_score.py
imports: from itertools import chain, product
  from typing import Callable, Iterable, List, Tuple
  from nltk.corpus import WordNetCorpusReader, wordnet
  from nltk.stem.api import StemmerI
  from nltk.stem.porter import PorterStemmer
label_desc: Use image node_id 1 for calling a global function with example usage: _generate_enums(hypothesis, reference, preprocess) and returns: enum_hypothesis_list,  enum_reference_list