当前位置: 首页>>代码示例>>C++>>正文


C++ InputType::SetTranslationId方法代码示例

本文整理汇总了C++中InputType::SetTranslationId方法的典型用法代码示例。如果您正苦于以下问题:C++ InputType::SetTranslationId方法的具体用法?C++ InputType::SetTranslationId怎么用?C++ InputType::SetTranslationId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在InputType的用法示例。


在下文中一共展示了InputType::SetTranslationId方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(int argc, char* argv[])
{
  cerr << "Lattice MBR Grid search" << endl;

  Grid grid;
  grid.addParam(lmbr_p, "-lmbr-p", 0.5);
  grid.addParam(lmbr_r, "-lmbr-r", 0.5);
  grid.addParam(lmbr_prune, "-lmbr-pruning-factor",30.0);
  grid.addParam(lmbr_scale, "-mbr-scale",1.0);

  grid.parseArgs(argc,argv);

  Parameter* params = new Parameter();
  if (!params->LoadParam(argc,argv)) {
    params->Explain();
    exit(1);
  }
  if (!StaticData::LoadDataStatic(params, argv[0])) {
    exit(1);
  }

  StaticData& staticData = const_cast<StaticData&>(StaticData::Instance());
  staticData.SetUseLatticeMBR(true);
  IOWrapper* ioWrapper = IOWrapper::GetIOWrapper(staticData);

  if (!ioWrapper) {
    throw runtime_error("Failed to initialise IOWrapper");
  }
  size_t nBestSize = staticData.GetMBRSize();

  if (nBestSize <= 0) {
    throw new runtime_error("Non-positive size specified for n-best list");
  }

  size_t lineCount = 0;
  InputType* source = NULL;

  const vector<float>& pgrid = grid.getGrid(lmbr_p);
  const vector<float>& rgrid = grid.getGrid(lmbr_r);
  const vector<float>& prune_grid = grid.getGrid(lmbr_prune);
  const vector<float>& scale_grid = grid.getGrid(lmbr_scale);

  while(ioWrapper->ReadInput(staticData.GetInputType(),source)) {
    ++lineCount;
    source->SetTranslationId(lineCount);

    Manager manager(*source, staticData.GetSearchAlgorithm());
    manager.ProcessSentence();
    TrellisPathList nBestList;
    manager.CalcNBest(nBestSize, nBestList,true);
    //grid search
    for (vector<float>::const_iterator pi = pgrid.begin(); pi != pgrid.end(); ++pi) {
      float p = *pi;
      staticData.SetLatticeMBRPrecision(p);
      for (vector<float>::const_iterator ri = rgrid.begin(); ri != rgrid.end(); ++ri) {
        float r = *ri;
        staticData.SetLatticeMBRPRatio(r);
        for (vector<float>::const_iterator prune_i = prune_grid.begin(); prune_i != prune_grid.end(); ++prune_i) {
          size_t prune = (size_t)(*prune_i);
          staticData.SetLatticeMBRPruningFactor(prune);
          for (vector<float>::const_iterator scale_i = scale_grid.begin(); scale_i != scale_grid.end(); ++scale_i) {
            float scale = *scale_i;
            staticData.SetMBRScale(scale);
            cout << lineCount << " ||| " << p << " " << r << " " << prune << " " << scale << " ||| ";
            vector<Word> mbrBestHypo = doLatticeMBR(manager,nBestList);
            ioWrapper->OutputBestHypo(mbrBestHypo, lineCount, staticData.GetReportSegmentation(),
                           staticData.GetReportAllFactors(),cout);
          }
        }

      }
    }


  }

}
开发者ID:Khyatti,项目名称:mosesdecoder,代码行数:77,代码来源:LatticeMBRGrid.cpp


注:本文中的InputType::SetTranslationId方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。