code: def _rouge(
      rouge_type: str,
      name: str,
      eval_config: config_pb2.EvalConfig,
      model_name: str,
      output_name: str,
      use_stemmer: bool,
      split_summaries: bool,
      tokenizer: tokenizers.Tokenizer,
  ) -> metric_types.MetricComputations:
      """Returns metric computations for ROUGE."""
      key = metric_types.MetricKey(name=name)
      return [
          metric_types.MetricComputation(
              keys=[key],
              preprocessors=None,
              combiner=RougeCombiner(
                  rouge_type=rouge_type,
                  key=key,
                  eval_config=eval_config,
                  model_name=model_name,
                  output_name=output_name,
                  use_stemmer=use_stemmer,
                  split_summaries=split_summaries,
                  tokenizer=tokenizer,
              ),
          )
      ]
  
imports: import dataclasses
  from typing import Dict, Iterable, Optional
  from absl import logging
  import apache_beam
  import nltk
  from tensorflow_model_analysis.metrics import metric_types
  from tensorflow_model_analysis.metrics import metric_util
  from tensorflow_model_analysis.proto import config_pb2
  from rouge_score import rouge_scorer
  from rouge_score import scoring
  from rouge_score import tokenizers
label_desc: Use image node_id 1 for calling a global function with example usage: _rouge(rouge_type, name, eval_config, model_name, output_name, use_stemmer, split_summaries, tokenizer) and returns: list