void TAlignPair::Def() { // calcualte weights for words BowDocWgtBs1 = TBowDocWgtBs::New(BowDocBs1, bwwtNrmTFIDF); BowDocWgtBs2 = TBowDocWgtBs::New(BowDocBs2, bwwtNrmTFIDF); // make a matrix out of weighted sparse vectors TVec<PBowSpV> SpVV1, SpVV2; const int Docs = BowDocWgtBs1->GetDocs(); for (int DocN = 0; DocN < Docs; DocN++) { PBowSpV SpV1 = BowDocWgtBs1->GetSpV(DocN); PBowSpV SpV2 = BowDocWgtBs2->GetSpV(DocN); if (SpV1->Len() < 3) { continue; } if (SpV2->Len() < 3) { continue; } SpVV1.Add(SpV1); SpVV2.Add(SpV2); } Matrix1 = TBowMatrix(SpVV1); Matrix2 = TBowMatrix(SpVV2); }
void TMKCCASemSpace::Calc(const TVec<PBowDocBs>& BowDocBsV, TVec<PSemSpace>& SemSpaceV, const int& Dims, const double& Kapa, const int& CGMxIter, const int& HorstMxIter) { // prepare matrix with TFIDF vectors for each language TVec<TBowMatrix> BowMatrixV; for (int BowDocBsN = 0; BowDocBsN < BowDocBsV.Len(); BowDocBsN++) { PBowDocWgtBs BowDocWgtBs = TBowDocWgtBs::New( BowDocBsV[BowDocBsN], bwwtLogDFNrmTFIDF); BowMatrixV.Add(TBowMatrix(BowDocWgtBs)); } // calculate TVec<TFltVV> AlphaVV; CalcKCCA(BowMatrixV, Dims, Kapa, CGMxIter, HorstMxIter, AlphaVV); }