Download tools/mosesdecoder/moses2/FF/LexicalReordering/PhraseBasedReorderingState.cpp from Quagmire1/wiki-cased: direct link, hf CLI and curl.
- Browser
- Download file 2.39 kB
-
https://huggingface.co/Quagmire1/wiki-cased/resolve/main/tools/mosesdecoder/moses2/FF/LexicalReordering/PhraseBasedReorderingState.cpp
- Command line
-
hf download hf://Quagmire1/wiki-cased/tools/mosesdecoder/moses2/FF/LexicalReordering/PhraseBasedReorderingState.cpp
-
curl -L -o PhraseBasedReorderingState.cpp https://huggingface.co/Quagmire1/wiki-cased/resolve/main/tools/mosesdecoder/moses2/FF/LexicalReordering/PhraseBasedReorderingState.cpp
2.39 kB
| /* | |
| * PhraseLR.cpp | |
| * | |
| * Created on: 22 Mar 2016 | |
| * Author: hieu | |
| */ | |
| using namespace std; | |
| namespace Moses2 | |
| { | |
| PhraseBasedReorderingState::PhraseBasedReorderingState(const LRModel &config, | |
| LRModel::Direction dir, size_t offset) : | |
| LRState(config, dir, offset) | |
| { | |
| // uninitialised | |
| prevPath = NULL; | |
| prevTP = NULL; | |
| } | |
| void PhraseBasedReorderingState::Init(const LRState *prev, | |
| const TargetPhrase<Moses2::Word> &topt, const InputPathBase &path, bool first, | |
| const Bitmap *coverage) | |
| { | |
| prevTP = &topt; | |
| prevPath = &path; | |
| m_first = first; | |
| } | |
| size_t PhraseBasedReorderingState::hash() const | |
| { | |
| size_t ret; | |
| ret = (size_t) &prevPath->range; | |
| boost::hash_combine(ret, m_direction); | |
| return ret; | |
| } | |
| bool PhraseBasedReorderingState::operator==(const FFState& o) const | |
| { | |
| if (&o == this) return true; | |
| const PhraseBasedReorderingState &other = | |
| static_cast<const PhraseBasedReorderingState&>(o); | |
| if (&prevPath->range == &other.prevPath->range) { | |
| if (m_direction == LRModel::Forward) { | |
| int compareScore = ComparePrevScores(other.prevTP); | |
| return compareScore == 0; | |
| } else { | |
| return true; | |
| } | |
| } else { | |
| return false; | |
| } | |
| } | |
| void PhraseBasedReorderingState::Expand(const ManagerBase &mgr, | |
| const LexicalReordering &ff, const Hypothesis &hypo, size_t phraseTableInd, | |
| Scores &scores, FFState &state) const | |
| { | |
| if ((m_direction != LRModel::Forward) || !m_first) { | |
| LRModel const& lrmodel = m_configuration; | |
| Range const &cur = hypo.GetInputPath().range; | |
| LRModel::ReorderingType reoType = ( | |
| m_first ? | |
| lrmodel.GetOrientation(cur) : | |
| lrmodel.GetOrientation(prevPath->range, cur)); | |
| CopyScores(mgr.system, scores, hypo.GetTargetPhrase(), reoType); | |
| } | |
| PhraseBasedReorderingState &stateCast = | |
| static_cast<PhraseBasedReorderingState&>(state); | |
| stateCast.Init(this, hypo.GetTargetPhrase(), hypo.GetInputPath(), false, | |
| NULL); | |
| } | |
| } /* namespace Moses2 */ | |