@Override public int getLongestForeignPhrase() { if(longestForeignPhrase < 0) { for(PhraseTableEntry pte : this) { final int l = pte.getForeign().asString().split("\\s+").length; if(l > longestForeignPhrase) { longestForeignPhrase = l; } } } return longestForeignPhrase; }
@Override public int getLongestForeignPhrase() { if(longestForeignPhrase < 0) { for(PhraseTableEntry pte : this) { final int l = pte.getForeign().asString().split("\\s+").length; if(l > longestForeignPhrase) { longestForeignPhrase = l; } } } return longestForeignPhrase; }
@Override public int getLongestForeignPhrase() { if(longestForeignPhrase < 0) { for(PhraseTableEntry pte : this) { final int l = pte.getForeign().asString().split("\\s+").length; if(l > longestForeignPhrase) { longestForeignPhrase = l; } } } return longestForeignPhrase; }
@Override public int getLongestForeignPhrase() { if(longestForeignPhrase < 0) { for(PhraseTableEntry pte : this) { final int l = pte.getForeign().asString().split("\\s+").length; if(l > longestForeignPhrase) { longestForeignPhrase = l; } } } return longestForeignPhrase; }
@Override public int getLongestForeignPhrase() { if(longestForeignPhrase < 0) { for(PhraseTableEntry pte : this) { final int l = pte.getForeign().asString().split("\\s+").length; if(l > longestForeignPhrase) { longestForeignPhrase = l; } } } return longestForeignPhrase; }
public void setPhraseTable(eu.monnetproject.translation.PhraseTable pt, List<String> featureNames) { ptMap = new HashMap<String, List<PhraseTableEntry>>(); for(PhraseTableEntry pte : pt) { final String key = pte.getForeign().asString(); if(!ptMap.containsKey(key)) { ptMap.put(key, new ArrayList<PhraseTableEntry>()); } ptMap.get(key).add(pte); } ptName = pt.getName(); ptLongestPhrase = pt.getLongestForeignPhrase(); scoreNames = featureNames; //log.info("New lfp " + ptLongestPhrase); }
@Override public Object next() { final PhraseTableEntry next = baseIter.next(); Feature[] scores = next.getFeatures(); //for (TranslationRanker ranker : rankers) { // double factor = ranker.score(next, entity); // scores = rescore(scores, factor, ranker.getName()); // } return new PhraseTableEntryImpl(next.getForeign(), next.getTranslation(), scores,entity); }
@Override public double score(PhraseTableEntry entry, Entity entity) { if (!srcLabels.containsKey(entity)) { return 0; } assert (trgLabels.containsKey(entity)); final String srcLabel = entry.getForeign().asString(); final String trgLabel = entry.getTranslation().asString(); SRC_CHECK: { for (String srcCandidate : srcLabels.get(entity)) { if (srcLabel.contains(srcCandidate)) { break SRC_CHECK; } } return 0; } for (String trgCandidate : trgLabels.get(entity)) { if (trgLabel.contains(trgCandidate)) { return 1; } } return 0; }
if (pte != null && pte.getForeign().asString().equals(src)) { phraseTable.add(pte); } else { Messages.warning(pte.getForeign().asString() + " != " + src);
@Override public double score(PhraseTableEntry entry, Entity entity) { String candidate = entry.getTranslation().asString(); String srcString = null; if(ontoDoc!=null) srcString = ontoDoc; if(nearByTermsAsContext) srcString = entity.toString() ; if(onlyChunkAsContext) srcString = entry.getForeign().asString(); if(sourceLabelAsContext) srcString = entity.toString(); if(srcString.equalsIgnoreCase(ontoDoc)) return clesa.scoreAgainstVector(new Pair<String, Language>(candidate, trgLang), ontoVector); else return clesa.score(new Pair<String, Language>(candidate, trgLang), new Pair<String, Language>(srcString, srcLang)); }
if (pte != null && pte.getForeign().asString().equals(src)) { phraseTable.add(pte); } else { Messages.warning(pte.getForeign().asString() + " != " + src);
private IntArrayTranslationOption convert(PhraseTableEntry pte) { Sequence<IString> foreignSequence = new SimpleSequence<IString>(IStrings.toIStringArray(getTokens(pte.getForeign()))); Sequence<IString> translationSequence = new SimpleSequence<IString>(IStrings.toIStringArray(getTokens(pte.getTranslation()))); float[] scores = new float[scoreNames.size()]; if(scores.length != scoreNames.size()) { Messages.warning("Number of elements in phrase table not equal to feature name count"); } for (int i = 0; i < scores.length; i++) { if(i < scoreNames.size() && pte.getFeatures()[i].name.equals(scoreNames.get(i))) { scores[i] = (float) pte.getFeatures()[i].score; } else { for(int j = 0; j < scoreNames.size(); j++) { if(pte.getFeatures()[i].name.equals(scoreNames.get(j))) { scores[j] = (float) pte.getFeatures()[i].score; } } } } PhraseAlignment alignment = null; if (pte instanceof AlignedPhraseTableEntry && ((AlignedPhraseTableEntry) pte).getAlignments() instanceof PhraseAlignment) { alignment = (PhraseAlignment) ((AlignedPhraseTableEntry) pte).getAlignments(); } return convert(foreignSequence, translationSequence, alignment, scores); }
final Phrase trg;// = convertPhrase(FairlyGoodTokenizer.split(pte.getTranslation().asString()), trgDict); src = convertPhrase(FairlyGoodTokenizer.split(pte.getForeign().asString()), srcWordMap); if (maxSize > 0) { if (!approxScores.containsKey(src)) {