code: private static boolean hasClausalV(Tree tree) {
      // this is originally called only called on phrasal nodes
      if (tree.isPhrasal()) {
        if (tree.isPrePreTerminal() &&
            tree.value().startsWith("NP")) {
          return false;
        }
        Tree[] kids = tree.children();
        for (Tree t : kids) {
          if (hasClausalV(t)) {
            return true;
          }
        }
        return false;
      } else {
        String str = tree.value();
        return str.startsWith("VB") || str.startsWith("MD");
      }
    }
docs: This version doesn't count verbs in baseNPs: they're generally
  gerunds in compounds like "operating income".  It would also
  catch modal tagging mistakes like "May/MD 15".
  @param tree A tree to assess
  @return true if there is a verb or modal, not within a base NP