Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'moses-cmd/LatticeMBR.h')
-rw-r--r--moses-cmd/LatticeMBR.h153
1 files changed, 0 insertions, 153 deletions
diff --git a/moses-cmd/LatticeMBR.h b/moses-cmd/LatticeMBR.h
deleted file mode 100644
index ab8b3cb76..000000000
--- a/moses-cmd/LatticeMBR.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * LatticeMBR.h
- * moses-cmd
- *
- * Created by Abhishek Arun on 26/01/2010.
- * Copyright 2010 __MyCompanyName__. All rights reserved.
- *
- */
-
-#ifndef moses_cmd_LatticeMBR_h
-#define moses_cmd_LatticeMBR_h
-
-#include <map>
-#include <vector>
-#include <set>
-#include "moses/Hypothesis.h"
-#include "moses/Manager.h"
-#include "moses/TrellisPathList.h"
-
-
-
-namespace MosesCmd
-{
-
-class Edge;
-
-typedef std::vector< const Moses::Hypothesis *> Lattice;
-typedef std::vector<const Edge*> Path;
-typedef std::map<Path, size_t> PathCounts;
-typedef std::map<Moses::Phrase, PathCounts > NgramHistory;
-
-class Edge
-{
- const Moses::Hypothesis* m_tailNode;
- const Moses::Hypothesis* m_headNode;
- float m_score;
- Moses::TargetPhrase m_targetPhrase;
- NgramHistory m_ngrams;
-
-public:
- Edge(const Moses::Hypothesis* from, const Moses::Hypothesis* to, float score, const Moses::TargetPhrase& targetPhrase) : m_tailNode(from), m_headNode(to), m_score(score), m_targetPhrase(targetPhrase) {
- //cout << "Creating new edge from Node " << from->GetId() << ", to Node : " << to->GetId() << ", score: " << score << " phrase: " << targetPhrase << endl;
- }
-
- const Moses::Hypothesis* GetHeadNode() const {
- return m_headNode;
- }
-
- const Moses::Hypothesis* GetTailNode() const {
- return m_tailNode;
- }
-
- float GetScore() const {
- return m_score;
- }
-
- size_t GetWordsSize() const {
- return m_targetPhrase.GetSize();
- }
-
- const Moses::Phrase& GetWords() const {
- return m_targetPhrase;
- }
-
- friend std::ostream& operator<< (std::ostream& out, const Edge& edge);
-
- const NgramHistory& GetNgrams( std::map<const Moses::Hypothesis*, std::vector<Edge> > & incomingEdges) ;
-
- bool operator < (const Edge & compare) const;
-
- void GetPhraseSuffix(const Moses::Phrase& origPhrase, size_t lastN, Moses::Phrase& targetPhrase) const;
-
- void storeNgramHistory(const Moses::Phrase& phrase, Path & path, size_t count = 1) {
- m_ngrams[phrase][path]+= count;
- }
-
-};
-
-/**
-* Data structure to hold the ngram scores as we traverse the lattice. Maps (hypo,ngram) to score
-*/
-class NgramScores
-{
-public:
- NgramScores() {}
-
- /** logsum this score to the existing score */
- void addScore(const Moses::Hypothesis* node, const Moses::Phrase& ngram, float score);
-
- /** Iterate through ngrams for selected node */
- typedef std::map<const Moses::Phrase*, float>::const_iterator NodeScoreIterator;
- NodeScoreIterator nodeBegin(const Moses::Hypothesis* node);
- NodeScoreIterator nodeEnd(const Moses::Hypothesis* node);
-
-private:
- std::set<Moses::Phrase> m_ngrams;
- std::map<const Moses::Hypothesis*, std::map<const Moses::Phrase*, float> > m_scores;
-};
-
-
-/** Holds a lattice mbr solution, and its scores */
-class LatticeMBRSolution
-{
-public:
- /** Read the words from the path */
- LatticeMBRSolution(const Moses::TrellisPath& path, bool isMap);
- const std::vector<float>& GetNgramScores() const {
- return m_ngramScores;
- }
- const std::vector<Moses::Word>& GetWords() const {
- return m_words;
- }
- float GetMapScore() const {
- return m_mapScore;
- }
- float GetScore() const {
- return m_score;
- }
-
- /** Initialise ngram scores */
- void CalcScore(std::map<Moses::Phrase, float>& finalNgramScores, const std::vector<float>& thetas, float mapWeight);
-
-private:
- std::vector<Moses::Word> m_words;
- float m_mapScore;
- std::vector<float> m_ngramScores;
- float m_score;
-};
-
-struct LatticeMBRSolutionComparator {
- bool operator()(const LatticeMBRSolution& a, const LatticeMBRSolution& b) {
- return a.GetScore() > b.GetScore();
- }
-};
-
-void pruneLatticeFB(Lattice & connectedHyp, std::map < const Moses::Hypothesis*, std::set <const Moses::Hypothesis* > > & outgoingHyps, std::map<const Moses::Hypothesis*, std::vector<Edge> >& incomingEdges,
- const std::vector< float> & estimatedScores, const Moses::Hypothesis*, size_t edgeDensity,float scale);
-
-//Use the ngram scores to rerank the nbest list, return at most n solutions
-void getLatticeMBRNBest(Moses::Manager& manager, Moses::TrellisPathList& nBestList, std::vector<LatticeMBRSolution>& solutions, size_t n);
-//calculate expectated ngram counts, clipping at 1 (ie calculating posteriors) if posteriors==true.
-void calcNgramExpectations(Lattice & connectedHyp, std::map<const Moses::Hypothesis*, std::vector<Edge> >& incomingEdges, std::map<Moses::Phrase,
- float>& finalNgramScores, bool posteriors);
-void GetOutputFactors(const Moses::TrellisPath &path, std::vector <Moses::Word> &translation);
-void extract_ngrams(const std::vector<Moses::Word >& sentence, std::map < Moses::Phrase, int > & allngrams);
-bool ascendingCoverageCmp(const Moses::Hypothesis* a, const Moses::Hypothesis* b);
-std::vector<Moses::Word> doLatticeMBR(Moses::Manager& manager, Moses::TrellisPathList& nBestList);
-const Moses::TrellisPath doConsensusDecoding(Moses::Manager& manager, Moses::TrellisPathList& nBestList);
-//std::vector<Moses::Word> doConsensusDecoding(Moses::Manager& manager, Moses::TrellisPathList& nBestList);
-
-}
-
-#endif