def f(text):
   return [' '.join(sorted(ngram)).lower() for ngram in ngrams(n, tokenize(text))]
 def f(text):
   return [ngram for w in tokenize(text) for ngram in ngrams(n, '$' + w.lower() + '$')]
 def f(row):
   return [' '.join(ngram) for ngram in ngrams(n, [tok[2].lower() + '_' + tok[1] for tok in getToks(row) if 1 < len(tok[2])])]
 def f(row):
   return [' '.join(ngram) for ngram in ngrams(n, [tok[1] for tok in getToks(row)])]
 def f(row):
   return [' '.join(sorted(ngram)) for ngram in ngrams(n, [tok[2].lower() for tok in getToks(row)])]
def mixedNgramsTTS(row):
  return ['%s %s %s' % (ngram[0][1], ngram[1][1], ngram[2][2]) for ngram in ngrams(3, list(getToks(row)))]
def mixedNgramsST(row):
  return ['%s %s' % (ngram[0][2], ngram[1][1]) for ngram in ngrams(2, list(getToks(row)))]