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


C++ OnDiskWrapper::GetVocab方法代码示例

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


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

示例1: main

int main(int argc, char **argv)
{
    int tableLimit = 20;
    std::string ttable = "";
    bool useAlignments = false;

    for(int i = 1; i < argc; i++) {
        if(!strcmp(argv[i], "-tlimit")) {
            if(i + 1 == argc)
                usage();
            tableLimit = atoi(argv[++i]);
        } else if(!strcmp(argv[i], "-t")) {
            if(i + 1 == argc)
                usage();
            ttable = argv[++i];
        } else
            usage();
    }

    if(ttable == "")
        usage();

    OnDiskWrapper onDiskWrapper;
    bool retDb = onDiskWrapper.BeginLoad(ttable);
    CHECK(retDb);
    OnDiskQuery onDiskQuery(onDiskWrapper);

    cerr << "Ready..." << endl;

    std::string line;
    while(getline(std::cin, line)) {
        std::vector<std::string> tokens;
        tokens = Moses::Tokenize(line, " ");

        cerr << "line: " << line << endl;
        const PhraseNode* node = onDiskQuery.Query(tokens);

        if (node) {
            // source phrase points to a bunch of rules
            const TargetPhraseCollection *coll = node->GetTargetPhraseCollection(tableLimit, onDiskWrapper);
            string str = coll->GetDebugStr();
            cout << "Found " << coll->GetSize() << endl;

            for (size_t ind = 0; ind < coll->GetSize(); ++ind) {
                const TargetPhrase &targetPhrase = coll->GetTargetPhrase(ind);
                cerr << "  ";
                targetPhrase.DebugPrint(cerr, onDiskWrapper.GetVocab());
                cerr << endl;
            }
        } else {
            cout << "Not found" << endl;
        }

        std::cout << '\n';
        std::cout.flush();
    }

    cerr << "Finished." << endl;
}
开发者ID:Kitton,项目名称:mosesdecoder,代码行数:59,代码来源:queryOnDiskPt.cpp

示例2: main

int main(int argc, char **argv)
{
  int tableLimit = 20;
  std::string ttable = "";
  bool useAlignments = false;

  for(int i = 1; i < argc; i++) {
    if(!strcmp(argv[i], "-tlimit")) {
      if(i + 1 == argc)
        usage();
      tableLimit = atoi(argv[++i]);
    } else if(!strcmp(argv[i], "-t")) {
      if(i + 1 == argc)
        usage();
      ttable = argv[++i];
    }
    else
      usage();
  }

  if(ttable == "")
    usage();

	OnDiskWrapper onDiskWrapper;
  bool retDb = onDiskWrapper.BeginLoad(ttable);
	CHECK(retDb);
	
	cerr << "Ready..." << endl;
	
  std::string line;
  while(getline(std::cin, line)) {
    std::vector<std::string> tokens;
    tokens = Moses::Tokenize(line, " ");

		cerr << "line: " << line << endl;
		
		// create source phrase
    SourcePhrase sourcePhrase;

		for (size_t pos = 0; pos < tokens.size(); ++pos)
		{
		  const string &tok = tokens[pos];
		  
		  if (pos == tokens.size() - 1) 
		  { // last position. LHS non-term
			  Tokenize(sourcePhrase, tok, false, true, onDiskWrapper);
			}
			else
			{
			  Tokenize(sourcePhrase, tok, true, true, onDiskWrapper);
			}
		}
		
    const PhraseNode *node = &onDiskWrapper.GetRootSourceNode();
		cerr << "node=" << node << endl;
    assert(node);
    
    for (size_t pos = 0; pos < sourcePhrase.GetSize(); ++pos)
		{
		  const Word &word = sourcePhrase.GetWord(pos);
		  cerr << word << " ";
		  node = node->GetChild(word, onDiskWrapper);
  		cerr << "node=" << node << endl;
		  
		  if (node == NULL)
		  {
		    break;
		  }
		}
    
    if (node)
    { // source phrase points to a bunch of rules
      const TargetPhraseCollection *coll = node->GetTargetPhraseCollection(tableLimit, onDiskWrapper);
      string str = coll->GetDebugStr();
      cout << "Found " << coll->GetSize() << endl;
      
      for (size_t ind = 0; ind < coll->GetSize(); ++ind)
      {
        const TargetPhrase &targetPhrase = coll->GetTargetPhrase(ind);
        cerr << "  ";
        targetPhrase.DebugPrint(cerr, onDiskWrapper.GetVocab());
        cerr << endl;
        

      }
    }
    else
    {
      cout << "Not found" << endl;
    }
    
    std::cout << '\n';
    std::cout.flush();
  }
  
  cerr << "Finished." << endl;
	
}
开发者ID:CUNI-Khresmoi,项目名称:CUNI-Khresmoi-Moses,代码行数:98,代码来源:queryOnDiskPt.cpp


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