@Override public List<String> featureNames() { return Arrays.asList(source.featureNames()); }
public double aveTranslationCount(Translation translation, double minProb) { final TranslationSource source = getSource(translation.getSourceLabel().getLanguage(), translation.getTargetLabel().getLanguage()); if (source == null) { return 0.0; } final double p = Math.log(minProb); final List<String> tokens = getTokens(translation.getSourceLabel()); int transCt = 0; for (String token : tokens) { final PhraseTable candidates = source.candidates(new ChunkImpl(token)); for (PhraseTableEntry entry : candidates) { if (entry.getFeatures()[2].score >= p) { transCt++; } } } return (double) transCt / tokens.size(); }
PhraseTableImpl pt = new PhraseTableImpl(srcLang, trgLang, "std-table"); for (Chunk chunk : chunks) { pt.addAll(source.candidates(chunk)); final List<Translation> translations = decoder.decode(Arrays.asList(FairlyGoodTokenizer.split(s)), pt, Arrays.asList(source.featureNames()),nBest); for (Translation translation : translations) { System.out.println(translation.getTargetLabel().asString());
for (Chunk chunk : chunkList) { for(TranslationSource source : setup.sources()) { pt.addAll(source.candidates(chunk));
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; }