本文整理汇总了C++中Token::IsOptional方法的典型用法代码示例。如果您正苦于以下问题:C++ Token::IsOptional方法的具体用法?C++ Token::IsOptional怎么用?C++ Token::IsOptional使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Token
的用法示例。
在下文中一共展示了Token::IsOptional方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetTransitionCostGenericWordBased
/** returns the cost between 2 coordinates generic way to compute */
int Graph::GetTransitionCostGenericWordBased(size_t* coordcurr, size_t* coordprev)
{
size_t nbrchange = 0;
vector<Token*> vectToken;
vector<int> vectCounts;
bool found, deletable;
size_t index = 0;
deletable = false;
for(size_t i=0; i<GetDimension(); ++i)
{
if(coordcurr[i] != coordprev[i])
{
Token* aToken = m_TabVecHypRef[i][coordcurr[i]];
deletable = aToken->IsOptional();
found = false;
for(size_t j=0; j<vectToken.size(); ++j)
{
if(aToken->IsEquivalentTo(vectToken[j]))
{
found = true;
index = j;
}
}
if(!found)
{
vectToken.push_back(aToken);
vectCounts.push_back(1);
}
else
{
++(vectCounts[index]);
}
++nbrchange;
}
}
vectToken.clear();
int nbroccur = 0;
for(size_t j=0; j<vectCounts.size(); ++j)
if(vectCounts[j] > nbroccur)
nbroccur = vectCounts[j];
vectCounts.clear();
return( GetCostInsertion(deletable)*( GetDimension() - nbrchange ) + GetCostTransition()*( nbrchange - nbroccur ) );
}
示例2: GetTransitionCostGenericTimeBased
int Graph::GetTransitionCostGenericTimeBased(size_t* coordcurr, size_t* coordprev)
{
bool deletable = false;
int mintime = -1;
int maxtime = -1;
int deletioncost = 0;
int transitioncost = 0;
for(size_t i=0; i<GetDimension(); ++i)
{
if(coordcurr[i] != coordprev[i])
{
Token* aToken = m_TabVecHypRef[i][coordcurr[i]];
deletable = aToken->IsOptional();
if( (mintime == -1) || (aToken->GetStartTime() < mintime) )
mintime = aToken->GetStartTime();
if( (maxtime == -1) || (aToken->GetEndTime() > maxtime) )
maxtime = aToken->GetEndTime();
}
}
for(size_t i=0; i<GetDimension(); ++i)
{
if(coordcurr[i] != coordprev[i])
{
Token* aToken = m_TabVecHypRef[i][coordcurr[i]];
transitioncost = maxtime - aToken->GetEndTime() + aToken->GetStartTime() - mintime;
}
else
deletioncost += maxtime - mintime;
}
return( (GetCostInsertion(deletable)*deletioncost + GetCostTransition()*transitioncost)/m_TimeBasedSafeDivider );
}
示例3: TestText
void TestToken::TestText()
{
SpeechSet* speechSet = new SpeechSet();
Speech* speech = new Speech(speechSet);
Segment* segment = Segment::CreateWithDuration(0, 10000, speech);
Token* token = Token::CreateWithDuration(0, 0, segment);
token->SetSourceText("hop");
assert(token->GetText() == "hop");
//JGF Note: I only added the full test cases for optional frags for the SetProperty("align.optionally", "both") test
Properties::SetProperty("align.optionally", "both");
// (hop)
token->SetSourceText("(hop)");
assert(token->GetSourceText() == "(hop)");
assert(token->GetText() == "hop");
assert(token->GetFragmentStatus() == Token::NOT_FRAGMENT);
assert(token->IsOptional());
Properties::SetProperty("align.fragment_are_correct", "true");
assert(token->GetText() == "hop");
Properties::SetProperty("align.fragment_are_correct", "false");
assert(token->GetText() == "hop");
// hop-
Properties::SetProperty("align.fragment_are_correct", "false");
token->SetSourceText("hop-");
assert(token->GetSourceText() == "hop-");
Properties::SetProperty("align.fragment_are_correct", "true");
assert(token->GetText() == "hop");
assert(token->GetFragmentStatus() == Token::BEGIN_FRAGMENT);
Properties::SetProperty("align.fragment_are_correct", "false");
assert(token->GetText() == "hop-");
assert(token->GetFragmentStatus() == Token::NOT_FRAGMENT);
// (hop-)
Properties::SetProperty("align.fragment_are_correct", "false");
token->SetSourceText("(hop-)");
assert(token->GetSourceText() == "(hop-)");
Properties::SetProperty("align.fragment_are_correct", "true");
assert(token->GetText() == "hop");
assert(token->GetFragmentStatus() == Token::BEGIN_FRAGMENT);
Properties::SetProperty("align.fragment_are_correct", "false");
assert(token->GetText() == "hop-");
assert(token->GetFragmentStatus() == Token::NOT_FRAGMENT);
// -hop
Properties::SetProperty("align.fragment_are_correct", "false");
token->SetSourceText("-hop");
assert(token->GetSourceText() == "-hop");
Properties::SetProperty("align.fragment_are_correct", "true");
assert(token->GetText() == "hop");
assert(token->GetFragmentStatus() == Token::END_FRAGMENT);
Properties::SetProperty("align.fragment_are_correct", "false");
assert(token->GetText() == "-hop");
assert(token->GetFragmentStatus() == Token::NOT_FRAGMENT);
// (-hop)
Properties::SetProperty("align.fragment_are_correct", "false");
token->SetSourceText("(-hop)");
assert(token->GetSourceText() == "(-hop)");
Properties::SetProperty("align.fragment_are_correct", "true");
cout << "Get " << token->GetText() << endl;
assert(token->GetText() == "hop");
assert(token->GetFragmentStatus() == Token::END_FRAGMENT);
Properties::SetProperty("align.fragment_are_correct", "false");
assert(token->GetText() == "-hop");
assert(token->GetFragmentStatus() == Token::NOT_FRAGMENT);
Properties::SetProperty("align.optionally", "ref");
speechSet->SetOrigin("ref");
token->SetSourceText("(hop)");
assert(token->GetSourceText() == "(hop)");
assert(token->GetText() == "hop");
assert(token->IsOptional());
assert(token->GetFragmentStatus() == Token::NOT_FRAGMENT);
Properties::SetProperty("align.fragment_are_correct", "true");
assert(token->GetText() == "hop");
Properties::SetProperty("align.fragment_are_correct", "false");
assert(token->GetText() == "hop");
token->SetSourceText("(hop-)");
assert(token->GetSourceText() == "(hop-)");
Properties::SetProperty("align.fragment_are_correct", "true");
assert(token->GetText() == "hop");
assert(token->GetFragmentStatus() == Token::BEGIN_FRAGMENT);
Properties::SetProperty("align.fragment_are_correct", "false");
assert(token->GetText() == "hop-");
assert(token->GetFragmentStatus() == Token::NOT_FRAGMENT);
Properties::SetProperty("align.optionally", "ref");
speechSet->SetOrigin("hyp");
token->SetSourceText("(hop)");
assert(token->GetSourceText() == "(hop)");
assert(token->GetText() == "(hop)");
assert(!token->IsOptional());
assert(token->GetFragmentStatus() == Token::NOT_FRAGMENT);
Properties::SetProperty("align.fragment_are_correct", "true");
assert(token->GetText() == "(hop)");
Properties::SetProperty("align.fragment_are_correct", "false");
assert(token->GetText() == "(hop)");
token->SetSourceText("(hop-)");
assert(token->GetSourceText() == "(hop-)");
Properties::SetProperty("align.fragment_are_correct", "true");
assert(token->GetText() == "(hop-)");
assert(token->GetFragmentStatus() == Token::NOT_FRAGMENT);
Properties::SetProperty("align.fragment_are_correct", "false");
//.........这里部分代码省略.........