code: def __get_eval_string(
              task_id, system_id,
              system_dir, system_filename,
              model_dir, model_filenames):
          
          peer_elems = "<P ID=\"{id}\">{name}</P>".format(
              id=system_id, name=system_filename)
  
          model_elems = ["<M ID=\"{id}\">{name}</M>".format(
              id=chr(65 + i), name=name)
              for i, name in enumerate(model_filenames)]
  
          model_elems = "\n\t\t\t".join(model_elems)
          eval_string = """
      <EVAL ID="{task_id}">
          <MODEL-ROOT>{model_root}</MODEL-ROOT>
          <PEER-ROOT>{peer_root}</PEER-ROOT>
          <INPUT-FORMAT TYPE="SEE">
          </INPUT-FORMAT>
          <PEERS>
              {peer_elems}
          </PEERS>
          <MODELS>
              {model_elems}
          </MODELS>
      </EVAL>
  """.format(
              task_id=task_id,
              model_root=model_dir, model_elems=model_elems,
              peer_root=system_dir, peer_elems=peer_elems)
          return eval_string
docs: ROUGE can evaluate several system summaries for a given text
          against several model summaries, i.e. there is an m-to-n
          relation between system and model summaries. The system
          summaries are listed in the <PEERS> tag and the model summaries
          in the <MODELS> tag. pyrouge currently only supports one system
          summary per text, i.e. it assumes a 1-to-n relation between
          system and model summaries.