00001 #pragma once
00002
00003 #include "SHyperedgeBundle.h"
00004
00005 namespace Moses
00006 {
00007 namespace Syntax
00008 {
00009
00010 struct SHyperedgeBundleScorer {
00011 public:
00012 static float Score(const SHyperedgeBundle &bundle) {
00013 const TargetPhrase &targetPhrase = **(bundle.translations->begin());
00014 float score = targetPhrase.GetFutureScore();
00015 for (std::vector<const SVertexStack*>::const_iterator p =
00016 bundle.stacks.begin(); p != bundle.stacks.end(); ++p) {
00017 const SVertexStack *stack = *p;
00018 if (stack->front()->best) {
00019 score += stack->front()->best->label.futureScore;
00020 }
00021 }
00022 return score;
00023 }
00024 };
00025
00026 }
00027 }