本文整理汇总了C++中Alignment::GetOrCreateAlignedSpeechFor方法的典型用法代码示例。如果您正苦于以下问题:C++ Alignment::GetOrCreateAlignedSpeechFor方法的具体用法?C++ Alignment::GetOrCreateAlignedSpeechFor怎么用?C++ Alignment::GetOrCreateAlignedSpeechFor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Alignment
的用法示例。
在下文中一共展示了Alignment::GetOrCreateAlignedSpeechFor方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TestInsertions
void AlignmentTest::TestInsertions() {
Alignment* ali;
SegmentsGroup* sg;
std::size_t testIndex = 2; // simple insertion, one segment
ali = GetAlignmentFor(testIndex, &sg);
Segment* ref = sg->GetReference(0)[0];
Segment* hyp = sg->GetHypothesis(0)[0];
vector< Token* > refs = ref->ToTopologicalOrderedStruct();
vector< Token* > hyps = hyp->ToTopologicalOrderedStruct();
cout << "Single Insertion tests:" << endl;
cout << "\tCheck speech and segment...";
cout.flush();
Speech* refSpeech = ref->GetParentSpeech();
AlignedSpeech* asp = ali->GetOrCreateAlignedSpeechFor(refSpeech, false);
assert(refSpeech == asp->GetReferenceSpeech());
AlignedSegment* asg = asp->GetOrCreateAlignedSegmentFor(ref, false);
assert(ref == asg->GetReferenceSegment());
assert(asg->GetTokenAlignmentCount() == 3);
cout << " OK." << endl;
cout << "\tCheck tokens...";
cout.flush();
TokenAlignment* ta = asg->GetTokenAlignmentAt(0);
assert(ta->GetReferenceToken() == refs[0]);
assert(ta->GetTokenFor("hyp") == hyps[0]);
ta = asg->GetTokenAlignmentAt(1);
assert(ta->GetReferenceToken() == NULL);
assert(ta->GetTokenFor("hyp") == hyps[1]);
ta = asg->GetTokenAlignmentAt(2);
assert(ta->GetReferenceToken() == refs[1]);
assert(ta->GetTokenFor("hyp") == hyps[2]);
cout << " OK." << endl;
testIndex = 4; // only insertion, one segment
ali = GetAlignmentFor(testIndex, &sg);
ref = sg->GetReference(0)[0];
hyp = sg->GetHypothesis(0)[0];
refs = ref->ToTopologicalOrderedStruct();
hyps = hyp->ToTopologicalOrderedStruct();
cout << "Only Insertion tests:" << endl;
cout << "\tCheck speech and segment...";
cout.flush();
refSpeech = ref->GetParentSpeech();
asp = ali->GetOrCreateAlignedSpeechFor(refSpeech, false);
assert(refSpeech == asp->GetReferenceSpeech());
asg = asp->GetOrCreateAlignedSegmentFor(ref, false);
assert(ref == asg->GetReferenceSegment());
assert(asg->GetTokenAlignmentCount() == 3);
cout << " OK." << endl;
cout << "\tCheck tokens...";
cout.flush();
ta = asg->GetTokenAlignmentAt(0);
assert(ta->GetReferenceToken() == NULL);
assert(ta->GetTokenFor("hyp") == hyps[0]);
ta = asg->GetTokenAlignmentAt(1);
assert(ta->GetReferenceToken() == NULL);
assert(ta->GetTokenFor("hyp") == hyps[1]);
ta = asg->GetTokenAlignmentAt(2);
assert(ta->GetReferenceToken() == NULL);
assert(ta->GetTokenFor("hyp") == hyps[2]);
cout << " OK." << endl;
delete ali;
delete sg;
}