private List<Translation> doDecoding(TranslatorSetup setup, Decoder decoder, EntityLabel el, int options) {
final ChunkList chunkList = setup.chunker(el.entity).chunk(tokenizer.tokenize(el.srcLabel));
final PhraseTableImpl pt = new PhraseTableImpl(setup.sourceLanguage(), setup.targetLanguage(), "mert_table");
for (Chunk chunk : chunkList) {
for (TranslationSource source : setup.sources()) {
pt.addAll(source.candidates(chunk));
}
}
PhraseTable rerankedTable = pt;
for (TranslationFeaturizer featurizer : setup.featurizers(el.entity)) {
try {
rerankedTable = featurizer.featurize(rerankedTable, el.entity);
} catch (Exception x) {
}
}
final List<Translation> decoded = (options & OntologyTranslator.DECODE_FAST) == 0 ?
decoder.decode(Arrays.asList(el.srcLabel.split("\\s+")), rerankedTable, setup.featureNames(), nBest) :
decoder.decodeFast(Arrays.asList(el.srcLabel.split("\\s+")), rerankedTable, setup.featureNames(), nBest);
return decoded;
}