コード例 #1
0
ファイル: FeatureData.cpp プロジェクト: mtfelix/mosesdecoder
void FeatureData::add(FeatureArray& e)
{
  if (exists(e.getIndex())) { // array at position e.getIndex() already exists
    //enlarge array at position e.getIndex()
    size_t pos = getIndex(e.getIndex());
    m_array.at(pos).merge(e);
  } else {
    m_array.push_back(e);
    setIndex();
  }
}
コード例 #2
0
ファイル: FeatureData.cpp プロジェクト: mtfelix/mosesdecoder
void FeatureData::add(FeatureStats& e, const string& sent_idx)
{
  if (exists(sent_idx)) { // array at position e.getIndex() already exists
    //enlarge array at position e.getIndex()
    size_t pos = getIndex(sent_idx);
//              TRACE_ERR("Inserting " << e << " in array " << sent_idx << std::endl);
    m_array.at(pos).add(e);
  } else {
//              TRACE_ERR("Creating a new entry in the array and inserting " << e << std::endl);
    FeatureArray a;
    a.NumberOfFeatures(m_num_features);
    a.Features(m_features);
    a.setIndex(sent_idx);
    a.add(e);
    add(a);
  }
}
コード例 #3
0
ファイル: FeatureData.cpp プロジェクト: mtfelix/mosesdecoder
void FeatureData::load(istream* is)
{
  FeatureArray entry;

  while (!is->eof()) {

    if (!is->good()) {
      cerr << "ERROR FeatureData::load inFile.good()" << endl;
    }

    entry.clear();
    entry.load(is);

    if (entry.size() == 0)
      break;

    if (size() == 0)
      setFeatureMap(entry.Features());

    if (entry.hasSparseFeatures())
      m_sparse_flag = true;

    add(entry);
  }
}
コード例 #4
0
ファイル: FeatureData.cpp プロジェクト: Avmb/mosesdecoder
void FeatureData::load(istream* is, const SparseVector& sparseWeights)
{
  FeatureArray entry;

  while (!is->eof()) {

    if (!is->good()) {
      cerr << "ERROR FeatureData::load inFile.good()" << endl;
    }

    entry.clear();
    entry.load(is, sparseWeights);

    if (entry.size() == 0)
      break;

    if (size() == 0)
      setFeatureMap(entry.Features());

    add(entry);
  }
}
コード例 #5
0
void FeatureArray::merge(FeatureArray& e)
{
  //dummy implementation
  for (size_t i = 0; i < e.size(); i++)
    add(e.get(i));
}