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


C++ Alignment::GetOrCreateAlignedSpeechFor方法代码示例

本文整理汇总了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;
}
开发者ID:usnistgov,项目名称:SCTK,代码行数:70,代码来源:alignment_test.cpp


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