code: def get_verb_phrases(sentence_doc):
       
      pattern =  r'<VERB>*<ADV>*<VERB>+' #  r'<VERB>?<ADV>*<VERB>+' is suggested by textacy site
      verb_phrases = textacy.extract.pos_regex_matches(sentence_doc, pattern)
  
      result = [] # [(1), (5,6,7)] => 2 verb phrases. a single verb at index 1, another verb phrase 5,6,7
      for vp in verb_phrases:
          word_numbers = []
          # return the index of 'could have been happily eating' from 'She could have been happily eating chowder'
          first_word = vp.start
  
          x = first_word
          if len(vp) > 1:
              for verb_or_adverb in vp:
                  # filter out adverbs
                  if not verb_or_adverb.pos_ == 'ADV':
                      word_numbers.append(x)
                  x += 1
          else:
              word_numbers.append(first_word)
          
          # filter out infinitive phrases
          if ( (word_numbers[0] - 1) < 0) or (sentence_doc[word_numbers[0] - 1].text.lower() != 'to'):
              result.append(word_numbers)
      
      return result
docs: Returns an object like,
      
          [(1), (5,6,7)]
          
      where this means 2 verb phrases. a single verb at index 1, another verb phrase 5,6,7.  
      
       - Adverbs are not included.
       - Infinitive phrases (and verb phrases that are subsets of infinitive phrases) are not included