package edu.stanford.nlp.tagger.maxent; /** * Extractor for adding a conjunction of distsim information. * * @author rafferty */ public class ExtractorDistsimConjunction extends Extractor { private static final long serialVersionUID = 1L; private final Distsim lexicon; private final int left; private final int right; private final String name; @Override String extract(History h, PairsHolder pH) { StringBuilder sb = new StringBuilder(); for (int j = left; j <= right; j++) { String word = pH.getWord(h, j); String distSim = lexicon.getMapping(word); sb.append(distSim); if (j < right) { sb.append('|'); } } return sb.toString(); } /** Create an Extractor for conjunctions of Distsim classes * * @param distSimPath File path. If it contains a semi-colon, the material after it is interpreted * as options to the Distsim class (q.v.) * @param left Which position to start from (normally a non-positive number) * @param right Which position to end with (normally a non-negative number) */ ExtractorDistsimConjunction(String distSimPath, int left, int right) { super(); lexicon = Distsim.initLexicon(distSimPath); this.left = left; this.right = right; name = "ExtractorDistsimConjunction(" + left + ',' + right + ')'; } @Override public String toString() { return name; } @Override public boolean isLocal() { return false; } @Override public boolean isDynamic() { return false; } } // end static class ExtractorDistsimConjunction