code: def get_feature_names(self, always_signed=True):
          # type: (bool) -> FeatureNames
          
          return self.unhasher.get_feature_names(
              always_signed=always_signed,
              always_positive=self._always_positive(),
          )
docs: Return feature names.
          This is a best-effort function which tries to reconstruct feature
          names based on what it has seen so far.
  
          HashingVectorizer uses a signed hash function. If always_signed is True,
          each term in feature names is prepended with its sign. If it is False,
          signs are only shown in case of possible collisions of different sign.
  
          You probably want always_signed=True if you're checking
          unprocessed classifier coefficients, and always_signed=False
          if you've taken care of :attr:`column_signs_`.