code: def evaluate(self, category_projection):
      assert issubclass(
          type(category_projection), CategoryProjectionBase
      )
      topics = category_projection.get_nearest_terms()
      total_similarity = 0
      for topic in topics.values():
          topic_vectors = np.array(
              [self.get_vector(term) for term in topic]
          )
          # simport pdb; pdb.set_trace()
          sim_matrix = cosine_similarity(topic_vectors)
          tril_sim_matrix = np.tril(sim_matrix)
          mean_similarity = (
              tril_sim_matrix.sum()
              / (
                  tril_sim_matrix.shape[0] ** 2
                  - tril_sim_matrix.shape[0]
              )
              / 2
          )
          total_similarity += mean_similarity
      return total_similarity / len(topics)
  
file_path: scattertext/scattertext/categoryprojector/CategoryProjectorEvaluator.py
imports: import scipy
  import numpy
  from sklearn.metrics.pairwise import cosine_similarity
  from scattertext.Scalers import stretch_0_to_1
  from scattertext.categoryprojector.CategoryProjection import CategoryProjection, CategoryProjectionBase
label_desc: Use image node_id 2 for calling the EmbeddingsProjectorEvaluator obj's underlying member method code with example usage: obj.evaluate(category_projection) and returns: unknown