本文整理汇总了C++中PSIn::Reset方法的典型用法代码示例。如果您正苦于以下问题:C++ PSIn::Reset方法的具体用法?C++ PSIn::Reset怎么用?C++ PSIn::Reset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PSIn
的用法示例。
在下文中一共展示了PSIn::Reset方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadCpdTxt
PBowDocBs TBowFl::LoadCpdTxt(
const PSIn& CpdSIn, const int& MxDocs,
const TStr& SwSetTypeNm, const TStr& StemmerTypeNm,
const int& MxNGramLen, const int& MnNGramFq){
// prepare stop-words
PSwSet SwSet=TSwSet::GetSwSet(SwSetTypeNm);
// prepare stemmer
PStemmer Stemmer=TStemmer::GetStemmer(StemmerTypeNm);
// create ngrams
PNGramBs NGramBs;
if (!((MxNGramLen==1)&&(MnNGramFq==1))){
NGramBs=TNGramBs::GetNGramBsFromCpd(
CpdSIn, MxDocs, MxNGramLen, MnNGramFq, SwSet, Stemmer);
}
// create document-base
PBowDocBs BowDocBs=TBowDocBs::New(SwSet, Stemmer, NGramBs);
// traverse documents
printf("Load Bag-Of-Words from Compact-Documents ...\n");
TIntH DocWIdToFqH(100); CpdSIn->Reset();
PSIn CpDocSIn=TCpDoc::FFirstCpd(CpdSIn); PCpDoc CpDoc; int Docs=0;
while (TCpDoc::FNextCpd(CpDocSIn, CpDoc)){
Docs++; if (Docs%100==0){printf(" %d\r", Docs);}
if ((MxDocs!=-1)&&(Docs>=MxDocs)){break;}
// get document-name
TStr DocNm=CpDoc->GetDocNm();
// get document-categories
TStrV CatNmV;
for (int CatN=0; CatN<CpDoc->GetCats(); CatN++){
CatNmV.Add(CpDoc->GetCatNm(CatN));
}
// get document-contents
TStr DocStr=CpDoc->GetTxtStr();
TStr DateStr=CpDoc->GetDateStr();
// add document to bow
int DId=BowDocBs->AddHtmlDoc(DocNm, CatNmV, DocStr, false);
BowDocBs->PutDateStr(DId, DateStr);
}
printf(" %d\nDone.\n", Docs);
// return results
BowDocBs->AssertOk();
return BowDocBs;
}