code: def project_separate(self, projector=None):
      if projector is None:
          from umap import UMAP
  
          projector = UMAP(n_components=2, metric="cosine")
      both_category_embeddings = np.vstack(
          [self.cat1_dwe_ar_norm, self.cat2_dwe_ar_norm]
      )
      projected_ar = projector.fit_transform(both_category_embeddings)
      df = pd.DataFrame(
          projected_ar, columns=["x", "y"], index=self.labeled_terms
      )
      df["category"] = [self.category1] * len(self.terms) + [
          self.category2
      ] * len(self.terms)
      return df
  
imports: import itertools
  import re
  import warnings
  import numpy
  import pandas
  import scipy
  from sklearn.metrics.pairwise import cosine_similarity
  from scattertext.ParsedCorpus import ParsedCorpus
  from scattertext.representations.Word2VecFromParsedCorpus import Word2VecDefault
label_desc: Use image node_id 3 for calling the EmbeddingAligner obj's underlying member method code with example usage: obj.project_separate(projector) and returns: df