code: def get_grammatically_correct_vocabulary_subset(self, text,
                                                      sent_filter='combined'):
          
          tokens = word_tokenize(text)
          sent_tokens = get_partial_sentence(tokens)
  
          if not sent_tokens:
              return self.vocabulary
  
          if sent_filter == 'combined':
              if len(sent_tokens) < 2:
                  return self.get_bigram_filtered_vocab(sent_tokens)
  
              combined_filters = self.get_pos_filtered_vocab(sent_tokens) + \
                  self.get_trigram_filtered_vocab(sent_tokens) + \
                  self.get_bigram_filtered_vocab(sent_tokens)
              return combined_filters
  
          if sent_filter == 'pos' and len(sent_tokens) > 1:
              return self.get_pos_filtered_vocab(sent_tokens)
          elif sent_filter == 'bigram' or len(sent_tokens) < 2:
              return self.get_bigram_filtered_vocab(sent_tokens)
          elif sent_filter == 'trigram':
              return self.get_trigram_filtered_vocab(sent_tokens)
docs: Returns a subset of a given vocabulary based on whether its
          terms are "grammatically correct".