コード例 #1
0
// Incoming references (refs) are stored as refs[file_id][[sent_id][reference]]
// This data structure: m_refs[sent_id][[vector<length>][ngrams]]
void BleuScoreFeature::LoadReferences(const std::vector< std::vector< std::string > >& refs)
{
    m_refs.clear();
    FactorCollection& fc = FactorCollection::Instance();
    for (size_t file_id = 0; file_id < refs.size(); file_id++) {
        for (size_t sent_id = 0; sent_id < refs[file_id].size(); sent_id++) {
            const string& ref = refs[file_id][sent_id];
            vector<string> refTokens  = Tokenize(ref);
            if (file_id == 0)
                m_refs[sent_id] = RefValue();
            pair<vector<size_t>,NGrams>& ref_pair = m_refs[sent_id];
            (ref_pair.first).push_back(refTokens.size());
            for (size_t order = 1; order <= BleuScoreState::bleu_order; order++) {
                for (size_t end_idx = order; end_idx <= refTokens.size(); end_idx++) {
                    Phrase ngram(1);
                    for (size_t s_idx = end_idx - order; s_idx < end_idx; s_idx++) {
                        const Factor* f = fc.AddFactor(Output, 0, refTokens[s_idx]);
                        Word w;
                        w.SetFactor(0, f);
                        ngram.AddWord(w);
                    }
                    ref_pair.second[ngram] += 1;
                }
            }
        }
    }

//	cerr << "Number of ref files: " << refs.size() << endl;
//	for (size_t i = 0; i < m_refs.size(); ++i) {
//		cerr << "Sent id " << i << ", number of references: " << (m_refs[i].first).size() << endl;
//	}
}
コード例 #2
0
/// postfix -- operator a--
template<> AMI_DLLEXPORT BasicVariable::ptr Variable<double>::operator --(int)
{  RETURN_VARPTR(double,RefValue()--);  }
コード例 #3
0
/// postfix ++ operator a++
template<> AMI_DLLEXPORT BasicVariable::ptr Variable<double>::operator ++(int)
{
  //std::cout << "**" << std::endl;
  RETURN_VARPTR(double,RefValue()++);
}
コード例 #4
0
/// prefix -- operator --a
template<> AMI_DLLEXPORT BasicVariable::ptr Variable<long>::operator --()
{  RETURN_VARPTR(long int,--RefValue()); }
コード例 #5
0
/// prefix ++ operator ++a
template<> AMI_DLLEXPORT BasicVariable::ptr Variable<long>::operator ++()
{
  //std::cout << "**" << std::endl;
  RETURN_VARPTR(long int,++RefValue());
}