code: def get_features(
      word: Optional[Word],
      prepend_to_label: str = None,
  ) -> Tuple[List[str], List[Union[str, int, float, None]]]:
      """Take a word, return a list of feature labels."""
  
      features_present = list()  # type: List[Union[str, None]]
      feature_variables = list()  # type: List[str]
      for possible_feature in ALL_POSSIBLE_FEATURES:
          feature_variables.append(str(possible_feature).lower())
          if not word:
              features_present.append(None)
              continue
          try:
              feat = word.__getattr__(possible_feature)[
                  0
              ]  # type: MorphosyntacticFeature
              features_present.append(str(feat.name))
          except CLTKException:
              features_present.append(None)
      if prepend_to_label:
          feature_variables = [
              prepend_to_label + name for name in feature_variables
          ]
      return feature_variables, features_present
  
imports: from typing import List, Optional, Tuple, Union
  from cltk.core.data_types import Word
  from cltk.core.exceptions import CLTKException
  from cltk.morphology.universal_dependencies_features import NOMINAL_FEATURES, VERBAL_FEATURES, MorphosyntacticFeature
label_desc: Use image node_id 2 for calling a global function with example usage: get_features(word, prepend_to_label) and returns: feature_variables,  features_present