docs: def _get_phrase_list_from_words(self, word_list):
          """Method to create contender phrases from the list of words that form
          a sentence by dropping stopwords and punctuations and grouping the left
          words into phrases. Only phrases in the given length range (both limits
          inclusive) would be considered to build co-occurrence matrix. Ex:
  
          Sentence: Red apples, are good in flavour.
          List of words: ['red', 'apples', ",", 'are', 'good', 'in', 'flavour']
          List after dropping punctuations and stopwords.
          List of words: ['red', 'apples', *, *, good, *, 'flavour']
          List of phrases: [('red', 'apples'), ('good',), ('flavour',)]
  
          List of phrases with a correct length:
          For the range [1, 2]: [('red', 'apples'), ('good',), ('flavour',)]
          For the range [1, 1]: [('good',), ('flavour',)]
          For the range [2, 2]: [('red', 'apples')]
  
          :param word_list: List of words which form a sentence when joined in
                            the same order.
          :return: List of contender phrases that are formed after dropping
                   stopwords and punctuations.
          """
          groups = groupby(word_list, lambda x: x not in self.to_ignore)
          phrases = [tuple(group[1]) for group in groups if group[0]]
          return list(
              filter(
                  lambda x: self.min_length <= len(x) <= self.max_length, phrases
              )
          )