code: def rouge_mean(
      targets,
      predictions,
      score_keys=("rouge1", "rouge2", "rougeLsum"),
      **kwargs,
  ):
      """Computes rouge score deterministically (no bootstrap).
  
      Args:
        targets: list of strings
        predictions: list of strings
        score_keys: list of strings with the keys to compute
        **kwargs: additional keyword arguments for RougeScorer.
  
      Returns:
        dict with score_key: rouge score across all targets and predictions
      """
  
      scorer = rouge_scorer.RougeScorer(
          rouge_types=score_keys, **kwargs
      )
      count = 0
      sum_scores = collections.defaultdict(float)
      for prediction, target in zip(predictions, targets):
          target = _prepare_summary_rouge(target)
          prediction = _prepare_summary_rouge(prediction)
          scores = scorer.score(target=target, prediction=prediction)
          count += 1
          for k, v in scores.items():
              sum_scores[k] += v.fmeasure
      if count == 0:
          raise ValueError(
              "Predictions and targets must both have nonzero length"
          )
      result = {k: v / count for k, v in sum_scores.items()}
      return {key: result[key] * 100 for key in score_keys}
  
imports: import collections
  import itertools
  import re
  import string
  from typing import Any, Dict, Mapping, Optional, Sequence, Tuple, Union
  from absl import logging
  import editdistance
  import flax
  import jax.numpy
  import numpy
  import sacrebleu
  import scipy.stats
  import seqio
  import sklearn.metrics
  from t5.evaluation import qa_utils
  import tensorflow.compat.v2
  from rouge_score import rouge_scorer
  from rouge_score import scoring
label_desc: Use image node_id 4 for calling a global function with example usage: rouge_mean(targets, predictions, score_keys) and returns: unknown