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);
}
Example #2
0
File: mkcca.cpp Project: Accio/snap
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);
}