code: def get_category_group_dict(
      self,
      category_order: List[str] = None,
      number_of_splits: int = 10,
      verbose=False,
  ) -> Dict[str, str]:
      category_order = (
          sorted(self._get_categories())
          if category_order is None
          else category_order
      )
      assert len(category_order) == self.corpus.get_num_categories()
      embedding_mat = self.rank_embedder.embed_categories(
          corpus=self.corpus, non_text=self.non_text
      )
      cat_boundaries = (
          self.get_change_point_candidates(
              embeddings=embedding_mat,
              ordered_category_names=category_order,
          )
          .iloc[:number_of_splits]
          .sort_values(by="Order")
      )
      intervals = []
      interval_names = []
      last = 0
      for _, row in cat_boundaries.iterrows():
          intervals.append((last, int(row.Order)))
          interval_names.append(
              str(category_order[last + 1 if last > 0 else 0])
              + self.to_text
              + str(category_order[int(row.Order)])
          )
          last = int(row.Order)
      intervals.append((last, len(category_order)))
      interval_names.append(
          str(category_order[last + 1])
          + self.to_text
          + str(category_order[-1])
      )
      interval_index = pd.IntervalIndex.from_tuples(intervals)
      category_to_bin_dict = {
          category: interval_names[
              interval_index.get_loc(i) if i > 0 else 0
          ]
          for i, category in enumerate(category_order)
      }
      return category_to_bin_dict
  
file_path: scattertext/scattertext/categorygrouping/characteristic_grouper.py
imports: from typing import List, Optional, Callable, Dict, Tuple
  import pandas
  import numpy
  from scipy.stats import spearmanr
  from tqdm.auto import tqdm
  from scattertext.TermDocMatrix import TermDocMatrix
  from scattertext.categorygrouping.characteristic_embedder_base import CategoryEmbedderABC
  from scattertext.categorygrouping.rank_embedder import RankEmbedder
label_desc: Use image node_id 4 for calling the CharacteristicGrouper obj's underlying member method code with example usage: obj.get_category_group_dict(category_order, number_of_splits, verbose) and returns: category_to_bin_dict