static S ai_groupNounPhrases(S s) { L tok = defaultTok(s); for (int i = 1; i < l(tok); ) { int j = ai_endOfNounPhrase(subList(tok, i-1)); // j is odd if (j <= 3) i += 2; else { tok.set(i, "{" + tok.get(i)); int i2 = i+j-3; tok.set(i2, tok.get(i2) + "}"); i = i2+2; } } ret join(tok); }