本文整理汇总了C++中Grammar::insideOutside方法的典型用法代码示例。如果您正苦于以下问题:C++ Grammar::insideOutside方法的具体用法?C++ Grammar::insideOutside怎么用?C++ Grammar::insideOutside使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Grammar
的用法示例。
在下文中一共展示了Grammar::insideOutside方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: predStructure
void predStructure(vector<PredRecord> & subStrPredVec, vector<PredRecord> & completeStrPredVec, bool calcComplStr, vector<SeqData> const & seqDataVec, Grammar & g, EmitWrappers & ew, EmitAnnoMap & eam, string const & annoName)
{
TransAnnoMap am(eam, g.emitTransitions() );
map<string, vector<string> > annoEquiMap = mkEquivalenceMap(g, am);
for (unsigned i = 0; i < seqDataVec.size(); i++) {
SeqData const & seqData = seqDataVec[i];
// setup data structures for emissions probs (could be done outside loop if grammar accepted seqLength argument!)
calcAndResetEmissions(seqData, g, ew, eam, annoName);
// call main algorithms
g.cyk();
vector<EmitInfo> vei = g.maxParse();
g.insideOutside();
string fold = am.convertToString(vei);
vector_t posScore = toNumber( g.postProbParse(vei, annoEquiMap) );
// substructures
vector<unsigned> begin;
vector<unsigned> end;
defineSubStructureIntervals(fold, begin, end);
for (unsigned i = 0; i < begin.size(); i++) {
string entryId = seqData.entryId + "." + toString(i);
subStrPredVec.push_back( mkStrPredRecord(g, entryId, begin[i], end[i], fold, posScore) );
}
// complete structures
if (calcComplStr) {
completeStrPredVec.push_back( mkStrPredRecord(g, seqData.entryId, 0, seqData.seqSize(), fold, posScore) );
}
}
}