code: def get_rouge_score(self, pred, gold):
      pred = pred.strip()
      gold = gold.strip()
      if self.language == "zh":
          hypothesis = " ".join(jieba.cut(pred))
          reference = " ".join(jieba.cut(gold))
          if hypothesis == "" and reference != "":
              return 0, 0, 0
          elif hypothesis != "" and reference == "":
              return 0, 0, 0
          elif hypothesis == "" and reference == "":
              return 1, 1, 1
          score = self.rouge.get_scores(hypothesis, reference)
          score = score[0]
      else:
          if pred == "" and gold != "":
              return 0, 0, 0
          elif pred != "" and gold == "":
              return 0, 0, 0
          elif pred == "" and gold == "":
              return 1, 1, 1
          pred = normalize_answer(pred)
          gold = normalize_answer(gold)
          _evaluator = rouge.Rouge()
          try:
              score = _evaluator.get_scores(pred, gold)
          except LookupError:
              raise LookupError
          score = score[0]
      return (
          score["rouge-1"]["f"],
          score["rouge-2"]["f"],
          score["rouge-l"]["f"],
      )
  
imports: from typing import Any
  import jieba
  from rouge_chinese import Rouge
  import rouge
  import re
  from copy import deepcopy
  from collections import defaultdict
label_desc: Use image node_id 4 for calling the Metric obj's underlying member method code with example usage: obj.get_rouge_score(pred, gold) and returns: score,  score,  score, int,  int,  int, int,  int,  int, int,  int,  int, int,  int,  int, int,  int,  int, int,  int,  int