code: def group_corpus_categories(
      self,
      category_order: Optional[List[str]] = None,
      number_of_splits: int = 10,
  ) -> TermDocMatrix:
      (
          new_categories,
          new_categories_order,
      ) = self.get_new_doc_categories(category_order, number_of_splits)
      return self.corpus.recategorize(new_categories)
  
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 2 for calling the CharacteristicGrouper obj's underlying member method code with example usage: obj.group_corpus_categories(category_order, number_of_splits) and returns: self