本文整理汇总了C++中PhraseTable::data方法的典型用法代码示例。如果您正苦于以下问题:C++ PhraseTable::data方法的具体用法?C++ PhraseTable::data怎么用?C++ PhraseTable::data使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PhraseTable
的用法示例。
在下文中一共展示了PhraseTable::data方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: rule_refinement
void rule_refinement(JKArgs& args)
{
if(!args.is_set("i"))usage();
ifstream is(args.value("i").c_str());
map<string,EntryInfo> srcPhrases,tarPhrases;
while(is.good())
{
string curline="";
getline(is,curline);
if(curline=="")break;
PhraseRuleEntry pre;
pre.read(curline);
if(srcPhrases.find(pre.srcPhrase)==srcPhrases.end())
{
EntryInfo ei;
ei.ind=(int)srcPhrases.size();
ei.score=pre.s2tScore;
srcPhrases[pre.srcPhrase]=ei;
}
else
srcPhrases[pre.srcPhrase].score+=pre.s2tScore;
if(tarPhrases.find(pre.tarPhrase)==tarPhrases.end())
{
EntryInfo ei;
ei.ind=(int)tarPhrases.size();
ei.score=pre.s2tScore;
tarPhrases[pre.tarPhrase]=ei;
}
else
tarPhrases[pre.tarPhrase].score+=pre.s2tScore;
}
is.clear();
is.seekg(0,ios::beg);
PhraseTable pt;
while(is.good())
{
string curline="";
getline(is,curline);
if(curline==""){pt.print(cout);break;}
PhraseRuleEntry pre;
pre.read(curline);
pre.s2tScore/=srcPhrases[pre.srcPhrase].score;
pre.t2sScore/=tarPhrases[pre.tarPhrase].score;
if(pt.size()>0&&pt.data().find(pre.srcPhrase)==pt.data().end())
{
pt.print(cout);
pt.clear();
}
pt.add(pre.srcPhrase,pre.tarPhrase,pre);
}
}
示例2:
void
SearchSpace::
copeUNK(PhraseTable& pt)
{
for(size_t i=0;i<_sentence.size();i++)
{
string wrd=_sentence[i];
if(pt.queryRulesVec(wrd)==NULL)
{
PhraseRuleEntry e;
e.s2tLexScore=e.t2sLexScore=e.t2sScore=e.s2tScore=-100;
e.srcPhrase=e.tarPhrase=wrd;
e.tarRepresent.push_back(wrd);
pt.add(wrd,wrd,e);
pt.rulesInVec()[wrd].push_back(&pt.data()[wrd][wrd]);
}
}
}