package edu.stanford.nlp.sempre.freebase.lexicons.normalizers; import edu.stanford.nlp.util.ArrayUtils; import java.util.Set; /** * Deletes the preposition at the end * * @author jonathanberant */ public class PrepDropNormalizer implements EntryNormalizer { public static Set<String> prepositions = ArrayUtils.asSet(new String[]{"in", "on", "of", "for", "about", "at", "from", "to", "with"}); @Override public String normalize(String str) { String res = stripPrep(str); return stripPrep(res); } public static String stripPrep(String str) { String[] tokens = str.split("\\s+"); if (tokens.length == 1) return str; if (!prepositions.contains(tokens[tokens.length - 1])) return str; else { StringBuilder sb = new StringBuilder(); for (int i = 0; i < tokens.length - 1; ++i) { sb.append(tokens[i] + " "); } return sb.toString().trim(); } } }