static Pair parseNGramScorerExpression(S exp) { int i = smartIndexOf(exp, '^'); S pos = takeFirst(exp, i), neg = substring(exp, i+1); ret pair(splitAt(pos, "|"), splitAt(neg, "|")); }