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:
authorNicola Bertoldi <bertoldi@fbk.eu>2015-06-29 10:30:26 +0300
committerNicola Bertoldi <bertoldi@fbk.eu>2015-06-29 10:30:26 +0300
commit6aa6131b844e5e08b4644692fa48c4d85fd2cf81 (patch)
tree1869f7c9780c28a1178f6e64e3f07dfd29802ac4
parentea23c921b3603666e17f27b29ff86a9efb7fab62 (diff)
introduced flag for the existence of TtaskSptr in TargetPhraseFF_ttptr
-rw-r--r--moses/LM/Base.cpp6
-rw-r--r--moses/StaticData.cpp4
-rw-r--r--moses/TargetPhrase.cpp23
-rw-r--r--moses/TargetPhrase.h11
4 files changed, 29 insertions, 15 deletions
diff --git a/moses/LM/Base.cpp b/moses/LM/Base.cpp
index 9e74b0d81..8b69626ac 100644
--- a/moses/LM/Base.cpp
+++ b/moses/LM/Base.cpp
@@ -78,7 +78,11 @@ void LanguageModel::EvaluateInIsolation(const Phrase &source
float fullScore, nGramScore;
size_t oovCount;
- CalcScoreWithContext(targetPhrase.GetTtask(), targetPhrase, fullScore, nGramScore, oovCount);
+ if (targetPhrase.HasTtaskSPtr()){
+ CalcScoreWithContext(targetPhrase.GetTtask(), targetPhrase, fullScore, nGramScore, oovCount);
+ }else{
+ CalcScore(targetPhrase, fullScore, nGramScore, oovCount);
+ }
//CalcScore(targetPhrase, fullScore, nGramScore, oovCount);
float estimateScore = fullScore - nGramScore;
diff --git a/moses/StaticData.cpp b/moses/StaticData.cpp
index 28d9f7831..83da42a9e 100644
--- a/moses/StaticData.cpp
+++ b/moses/StaticData.cpp
@@ -1115,7 +1115,9 @@ void StaticData::LoadSparseWeightsFromConfig()
}
std::map<std::string, std::vector<float> > weights = m_parameter->GetAllWeights();
- for (auto iter = weights.begin(); iter != weights.end(); ++iter) {
+ std::map<std::string, std::vector<float> >::iterator iter;
+// for (auto iter = weights.begin(); iter != weights.end(); ++iter) {
+ for (iter = weights.begin(); iter != weights.end(); ++iter) {
// this indicates that it is sparse feature
if (featureNames.find(iter->first) == featureNames.end()) {
UTIL_THROW_IF2(iter->second.size() != 1, "ERROR: only one weight per sparse feature allowed: " << iter->first);
diff --git a/moses/TargetPhrase.cpp b/moses/TargetPhrase.cpp
index 9151f4bb9..893edca08 100644
--- a/moses/TargetPhrase.cpp
+++ b/moses/TargetPhrase.cpp
@@ -48,10 +48,9 @@ TargetPhrase::TargetPhrase( std::string out_string, const PhraseDictionary *pt)
, m_alignNonTerm(&AlignmentInfoCollection::Instance().GetEmptyAlignmentInfo())
, m_lhsTarget(NULL)
, m_ruleSource(NULL)
+ , m_ttask_flag(false)
, m_container(pt)
- , m_ttask(NULL)
{
-
//ACAT
const StaticData &staticData = StaticData::Instance();
// XXX should this really be InputFactorOrder???
@@ -68,8 +67,9 @@ TargetPhrase::TargetPhrase(ttasksptr& ttask, std::string out_string, const Phras
, m_alignNonTerm(&AlignmentInfoCollection::Instance().GetEmptyAlignmentInfo())
, m_lhsTarget(NULL)
, m_ruleSource(NULL)
- , m_container(pt)
, m_ttask(ttask)
+ , m_ttask_flag(true)
+ , m_container(pt)
{
//ACAT
@@ -88,8 +88,9 @@ TargetPhrase::TargetPhrase(ttasksptr& ttask, const PhraseDictionary *pt)
, m_alignNonTerm(&AlignmentInfoCollection::Instance().GetEmptyAlignmentInfo())
, m_lhsTarget(NULL)
, m_ruleSource(NULL)
- , m_container(pt)
, m_ttask(ttask)
+ , m_ttask_flag(true)
+ , m_container(pt)
{
}
@@ -101,8 +102,9 @@ TargetPhrase::TargetPhrase(ttasksptr& ttask, const Phrase &phrase, const PhraseD
, m_alignNonTerm(&AlignmentInfoCollection::Instance().GetEmptyAlignmentInfo())
, m_lhsTarget(NULL)
, m_ruleSource(NULL)
- , m_container(pt)
, m_ttask(ttask)
+ , m_ttask_flag(true)
+ , m_container(pt)
{
}
@@ -114,8 +116,8 @@ TargetPhrase::TargetPhrase(const PhraseDictionary *pt)
, m_alignNonTerm(&AlignmentInfoCollection::Instance().GetEmptyAlignmentInfo())
, m_lhsTarget(NULL)
, m_ruleSource(NULL)
+ , m_ttask_flag(false)
, m_container(pt)
- , m_ttask(NULL)
{
}
@@ -127,8 +129,8 @@ TargetPhrase::TargetPhrase(const Phrase &phrase, const PhraseDictionary *pt)
, m_alignNonTerm(&AlignmentInfoCollection::Instance().GetEmptyAlignmentInfo())
, m_lhsTarget(NULL)
, m_ruleSource(NULL)
+ , m_ttask_flag(false)
, m_container(pt)
- , m_ttask(NULL)
{
}
@@ -141,8 +143,9 @@ TargetPhrase::TargetPhrase(const TargetPhrase &copy)
, m_alignTerm(copy.m_alignTerm)
, m_alignNonTerm(copy.m_alignNonTerm)
, m_properties(copy.m_properties)
- , m_container(copy.m_container)
, m_ttask(copy.m_ttask)
+ , m_ttask_flag(true)
+ , m_container(copy.m_container)
{
if (copy.m_lhsTarget) {
m_lhsTarget = new Word(*copy.m_lhsTarget);
@@ -174,6 +177,10 @@ void TargetPhrase::WriteToRulePB(hgmert::Rule* pb) const
}
#endif
+bool TargetPhrase::HasTtaskSPtr() const {
+ return m_ttask_flag;
+}
+
const ttasksptr& TargetPhrase::GetTtask() const {
return m_ttask;
}
diff --git a/moses/TargetPhrase.h b/moses/TargetPhrase.h
index 63b8f01fd..4e6b1278b 100644
--- a/moses/TargetPhrase.h
+++ b/moses/TargetPhrase.h
@@ -53,16 +53,16 @@ class PhraseDictionary;
class TargetPhrase: public Phrase
{
public:
- typedef std::map<FeatureFunction const*, boost::shared_ptr<Scores> >
- ScoreCache_t;
+ typedef std::map<FeatureFunction const*, boost::shared_ptr<Scores> > ScoreCache_t;
ScoreCache_t const& GetExtraScores() const;
Scores const* GetExtraScores(FeatureFunction const* ff) const;
- void SetExtraScores(FeatureFunction const* ff,
- boost::shared_ptr<Scores> const& scores);
- ttasksptr m_ttask;
+ void SetExtraScores(FeatureFunction const* ff,boost::shared_ptr<Scores> const& scores);
+
private:
ScoreCache_t m_cached_scores;
+ ttasksptr m_ttask;
+ bool m_ttask_flag;
private:
friend std::ostream& operator<<(std::ostream&, const TargetPhrase&);
@@ -93,6 +93,7 @@ public:
TargetPhrase(ttasksptr &ttask, std::string out_string, const PhraseDictionary *pt = NULL);
explicit TargetPhrase(ttasksptr &ttask, const Phrase &targetPhrase, const PhraseDictionary *pt);
const ttasksptr& GetTtask() const;
+ bool HasTtaskSPtr() const;
~TargetPhrase();