docs: def process_text(self, text):
          """Splits a long text into words, eliminates the stopwords.
  
          Parameters
          ----------
          text : string
              The text to be processed.
  
          Returns
          -------
          words : dict (string, int)
              Word tokens with associated frequency.
  
          ..versionchanged:: 1.2.2
              Changed return type from list of tuples to dict.
  
          Notes
          -----
          There are better ways to do word tokenization, but I don't want to
          include all those things.
          """
  
          stopwords = set([i.lower() for i in self.stopwords])
  
          flags = (re.UNICODE if sys.version < '3' and type(text) is unicode  # noqa: F821
                   else 0)
          regexp = self.regexp if self.regexp is not None else r"\w[\w']+"
  
          words = re.findall(regexp, text, flags)
          # remove stopwords
          words = [word for word in words if word.lower() not in stopwords]
          # remove 's
          words = [word[:-2] if word.lower().endswith("'s") else word
                   for word in words]
          # remove numbers
          if not self.include_numbers:
              words = [word for word in words if not word.isdigit()]
          # remove short words
          if self.min_word_length:
              words = [word for word in words if len(word) >= self.min_word_length]
  
          if self.collocations:
              word_counts = unigrams_and_bigrams(words, self.normalize_plurals)
          else:
              word_counts, _ = process_tokens(words, self.normalize_plurals)
  
          return word_counts