void TTransCorpus::SaveTransScript(const TStr& OutFBase, const TStr& OrgLang, const TStr& TransLang, const TStrV& OrgFNmV, const TStrV& RefTransFNmV) { const int FNms = OrgFNmV.Len(); IAssert(OrgFNmV.Len() == RefTransFNmV.Len()); // make tokenize PSOut TokSOut = TFOut::New(OutFBase + "_tokenize.sh"); for (int FNmN = 0; FNmN < FNms; FNmN++) { TokSOut->PutStrLn("tokenize.pl -lang=" + OrgLang + " " + OrgFNmV[FNmN].GetFBase() + " " + TStr::PutFExt(OrgFNmV[FNmN], ".tok").GetFBase()); TokSOut->PutStrLn("tokenize.pl -lang=" + TransLang + " " + RefTransFNmV[FNmN].GetFBase() + " " + TStr::PutFExt(RefTransFNmV[FNmN], ".tok").GetFBase()); } TokSOut->Flush(); // make align PSOut AlignSOut = TFOut::New(OutFBase + "_align.sh"); for (int FNmN = 0; FNmN < FNms; FNmN++) { AlignSOut->PutStrLn("ssal -f " + TStr::PutFExt(OrgFNmV[FNmN], ".tok").GetFBase() + " " + TStr::PutFExt(RefTransFNmV[FNmN], ".tok").GetFBase()); AlignSOut->PutStrLn("mv " + TStr::PutFExt(OrgFNmV[FNmN], ".tok.al").GetFBase() + " " + TStr::PutFExt(OrgFNmV[FNmN], ".al").GetFBase()); AlignSOut->PutStrLn("mv " + TStr::PutFExt(RefTransFNmV[FNmN], ".tok.al").GetFBase() + " " + TStr::PutFExt(RefTransFNmV[FNmN], ".al").GetFBase()); } AlignSOut->Flush(); // make lowercase PSOut LcSOut = TFOut::New(OutFBase + "_lowercase.sh"); for (int FNmN = 0; FNmN < FNms; FNmN++) { LcSOut->PutStrLn("lc-latin.pl " + TStr::PutFExt(OrgFNmV[FNmN], ".al").GetFBase() + " " + TStr::PutFExt(OrgFNmV[FNmN], ".lc").GetFBase()); LcSOut->PutStrLn("lc-latin.pl " + TStr::PutFExt(RefTransFNmV[FNmN], ".al").GetFBase() + " " + TStr::PutFExt(RefTransFNmV[FNmN], ".lc").GetFBase()); } LcSOut->Flush(); // rest -- script }