mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-12-26 05:14:36 +03:00
introduced flag for the existence of TtaskSptr in TargetPhrase
This commit is contained in:
parent
ea23c921b3
commit
6aa6131b84
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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 ©)
|
||||
, 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;
|
||||
}
|
||||
|
@ -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();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user