summaryrefslogtreecommitdiff
path: root/vest/ces.cc
diff options
context:
space:
mode:
authorChris Dyer <cdyer@cs.cmu.edu>2012-01-27 14:49:08 -0500
committerChris Dyer <cdyer@cs.cmu.edu>2012-01-27 14:49:08 -0500
commit47aa8d94d3ddff39295966cee67ce884c98be8da (patch)
tree2ff3eab22e44b2d02537a5b59460945f4aa98d9a /vest/ces.cc
parent203c3c3357b9ed8cfe44932c2bf5ea19eba6238c (diff)
rename vest to dpmert (dynamic programming mert), rename variables and types to correspond to standard geometric concepts
Diffstat (limited to 'vest/ces.cc')
-rw-r--r--vest/ces.cc91
1 files changed, 0 insertions, 91 deletions
diff --git a/vest/ces.cc b/vest/ces.cc
deleted file mode 100644
index cd89aa69..00000000
--- a/vest/ces.cc
+++ /dev/null
@@ -1,91 +0,0 @@
-#include "ces.h"
-
-#include <vector>
-#include <sstream>
-#include <boost/shared_ptr.hpp>
-
-// TODO, if AER is to be optimized again, we will need this
-// #include "aligner.h"
-#include "lattice.h"
-#include "viterbi_envelope.h"
-#include "error_surface.h"
-#include "ns.h"
-
-using boost::shared_ptr;
-using namespace std;
-
-const bool minimize_segments = true; // if adjacent segments have equal scores, merge them
-
-void ComputeErrorSurface(const SegmentEvaluator& ss,
- const ViterbiEnvelope& ve,
- ErrorSurface* env,
- const EvaluationMetric* metric,
- const Hypergraph& hg) {
- vector<WordID> prev_trans;
- const vector<shared_ptr<Segment> >& ienv = ve.GetSortedSegs();
- env->resize(ienv.size());
- SufficientStats prev_score; // defaults to 0
- int j = 0;
- for (int i = 0; i < ienv.size(); ++i) {
- const Segment& seg = *ienv[i];
- vector<WordID> trans;
-#if 0
- if (type == AER) {
- vector<bool> edges(hg.edges_.size(), false);
- seg.CollectEdgesUsed(&edges); // get the set of edges in the viterbi
- // alignment
- ostringstream os;
- const string* psrc = ss.GetSource();
- if (psrc == NULL) {
- cerr << "AER scoring in VEST requires source, but it is missing!\n";
- abort();
- }
- size_t pos = psrc->rfind(" ||| ");
- if (pos == string::npos) {
- cerr << "Malformed source for AER: expected |||\nINPUT: " << *psrc << endl;
- abort();
- }
- Lattice src;
- Lattice ref;
- LatticeTools::ConvertTextOrPLF(psrc->substr(0, pos), &src);
- LatticeTools::ConvertTextOrPLF(psrc->substr(pos + 5), &ref);
- AlignerTools::WriteAlignment(src, ref, hg, &os, true, 0, &edges);
- string tstr = os.str();
- TD::ConvertSentence(tstr.substr(tstr.rfind(" ||| ") + 5), &trans);
- } else {
-#endif
- seg.ConstructTranslation(&trans);
- //}
- //cerr << "Scoring: " << TD::GetString(trans) << endl;
- if (trans == prev_trans) {
- if (!minimize_segments) {
- ErrorSegment& out = (*env)[j];
- out.delta.fields.clear();
- out.x = seg.x;
- ++j;
- }
- //cerr << "Identical translation, skipping scoring\n";
- } else {
- SufficientStats score;
- ss.Evaluate(trans, &score);
- // cerr << "score= " << score->ComputeScore() << "\n";
- //string x1; score.Encode(&x1); cerr << "STATS: " << x1 << endl;
- const SufficientStats delta = score - prev_score;
- //string x2; delta.Encode(&x2); cerr << "DELTA: " << x2 << endl;
- //string xx; delta.Encode(&xx); cerr << xx << endl;
- prev_trans.swap(trans);
- prev_score = score;
- if ((!minimize_segments) || (!delta.IsAdditiveIdentity())) {
- ErrorSegment& out = (*env)[j];
- out.delta = delta;
- out.x = seg.x;
- ++j;
- }
- }
- }
- // cerr << " In segments: " << ienv.size() << endl;
- // cerr << "Out segments: " << j << endl;
- assert(j > 0);
- env->resize(j);
-}
-