package edu.stanford.nlp.tagger.common; import java.util.List; import edu.stanford.nlp.ling.HasWord; import edu.stanford.nlp.ling.TaggedWord; import java.util.function.Function; import edu.stanford.nlp.util.ReflectionLoading; /** * This module includes constants that are the same for all taggers, * as opposed to being part of their configurations. * Also, can be used as an interface if you don't want to necessarily * include the MaxentTagger code, such as in public releases which * don't include that code. * * @author John Bauer */ public abstract class Tagger implements Function<List<? extends HasWord>,List<TaggedWord>> { public static final String EOS_TAG = ".$$."; public static final String EOS_WORD = ".$."; @Override public abstract List<TaggedWord> apply(List<? extends HasWord> in); public static Tagger loadModel(String path) { // TODO: we can avoid ReflectionLoading if we instead use the // serialization mechanism in MaxentTagger. Similar to ParserGrammar return ReflectionLoading.loadByReflection("edu.stanford.nlp.tagger.maxent.MaxentTagger", path); } }