/**
* A work in progress: can we use bidirectional translation probabilities to improve the translation table and vocabularies?
*/
private static void combineTTables(String ttableFile, String srcEVocabFile, String trgFVocabFile, String ttableE2FFile,
String srcFVocabFile, String trgEVocabFile, String ttableF2EFile){
TTable_monolithic_IFAs table = new TTable_monolithic_IFAs();
Configuration conf = new Configuration();
HookaStats stats = new HookaStats(-1, -1);
try {
FileSystem fs = FileSystem.get(conf);
Vocab eVocabTrg = HadoopAlign.loadVocab(new Path(trgEVocabFile), conf);
Vocab fVocabSrc = HadoopAlign.loadVocab(new Path(srcFVocabFile), conf);
TTable_monolithic_IFAs f2e_Probs = new TTable_monolithic_IFAs(fs, new Path(ttableF2EFile), true);
Vocab eVocabSrc = HadoopAlign.loadVocab(new Path(srcEVocabFile), conf);
Vocab fVocabTrg = HadoopAlign.loadVocab(new Path(trgFVocabFile), conf);
TTable_monolithic_IFAs e2f_Probs = new TTable_monolithic_IFAs(fs, new Path(ttableE2FFile), true);
TreeSet<PairOfFloatString> topTrans = new TreeSet<PairOfFloatString>();
for (int e1 = 1; e1 < eVocabSrc.size(); e1++) {
String eTerm = eVocabSrc.get(e1);
float sumOfProbs = 0;
int[] fS = e2f_Probs.get(e1).getTranslations(0.0f);
for (int f1 : fS) {
float prob1 = e2f_Probs.get(e1, f1);
String fTerm = fVocabTrg.get(f1);
int f2 = fVocabSrc.get(fTerm);
int e2 = eVocabTrg.get(eTerm);