class_docstr: This class evaluates a CrossEncoder model for the task of re-ranking.
  
  Given a query and a list of documents, it computes the score [query, doc_i] for all possible
  documents and sorts them in decreasing order. Then, MRR@10 is compute to measure the quality of the ranking.
  
  :param samples: Must be a list and each element is of the form: {'query': '', 'positive': [], 'negative': []}. Query is the search query,
   positive is a list of positive (relevant) documents, negative is a list of negative (irrelevant) documents.
code: def __init__(
      self,
      samples,
      mrr_at_k: int = 10,
      name: str = "",
      write_csv: bool = True,
  ):
      self.samples = samples
      self.name = name
      self.mrr_at_k = mrr_at_k
  
      if isinstance(self.samples, dict):
          self.samples = list(self.samples.values())
  
      self.csv_file = (
          "CERerankingEvaluator"
          + ("_" + name if name else "")
          + "_results.csv"
      )
      self.csv_headers = ["epoch", "steps", "MRR@{}".format(mrr_at_k)]
      self.write_csv = write_csv
  
imports: import logging
  import numpy
  import os
  import csv
label_desc: Use image node_id 1 to create a new CERerankingEvaluator object  with example: obj = CERerankingEvaluator(samples, mrr_at_k, name, write_csv)