code: def get_hyperparameter_search_space(
      self,
      feat_type: Optional[FEAT_TYPE_TYPE] = None,
      dataset_properties: Optional[DATASET_PROPERTIES_TYPE] = None,
      default: Optional[str] = None,
      include: Optional[Dict[str, str]] = None,
      exclude: Optional[Dict[str, str]] = None,
  ) -> ConfigurationSpace:
      cs = ConfigurationSpace()
  
      if dataset_properties is None:
          dataset_properties = {}
  
      # Compile a list of legal preprocessors for this problem
      available_preprocessors = self.get_available_components(
          dataset_properties=dataset_properties,
          include=include,
          exclude=exclude,
      )
  
      if len(available_preprocessors) == 0:
          raise ValueError(
              "No bag of word encoders found, please add any bag of word encoder"
              "component."
          )
  
      if default is None:
          defaults = ["tfidf_encoding"]
          for default_ in defaults:
              if default_ in available_preprocessors:
                  default = default_
                  break
  
      preprocessor = CategoricalHyperparameter(
          "__choice__",
          list(available_preprocessors.keys()),
          default_value=default,
      )
  
      cs.add_hyperparameter(preprocessor)
      for name in available_preprocessors:
          preprocessor_configuration_space = available_preprocessors[
              name
          ].get_hyperparameter_search_space(
              feat_type=feat_type, dataset_properties=dataset_properties
          )
          parent_hyperparameter = {
              "parent": preprocessor,
              "value": name,
          }
          cs.add_configuration_space(
              name,
              preprocessor_configuration_space,
              parent_hyperparameter=parent_hyperparameter,
          )
  
      self.configuration_space = cs
      self.dataset_properties = dataset_properties
      return cs
  
file_path: auto-sklearn/autosklearn/pipeline/components/data_preprocessing/text_encoding/__init__.py
imports: from typing import Any, Dict, Optional
  import os
  from collections import OrderedDict
  from ConfigSpace import Configuration
  from ConfigSpace.configuration_space import ConfigurationSpace
  from ConfigSpace.hyperparameters import CategoricalHyperparameter
  from sklearn.base import BaseEstimator
  from autosklearn.askl_typing import FEAT_TYPE_TYPE
  from autosklearn.pipeline.base import DATASET_PROPERTIES_TYPE, PIPELINE_DATA_DTYPE
  from ...base import AutoSklearnChoice, AutoSklearnPreprocessingAlgorithm, ThirdPartyComponents, _addons, find_components
label_desc: Use image node_id 2 for calling the BagOfWordChoice obj's underlying member method code with example usage: obj.get_hyperparameter_search_space(feat_type, dataset_properties, default, include, exclude) and returns: cs