package joshua.discriminative.feature_related.feature_template;
import java.io.BufferedWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import joshua.util.FileUtility;
import joshua.util.io.LineReader;
public class ExtractMicroRuleFeatsFromGrammar {
public static void main(String[] args) throws IOException {
String wordMapFile = args[0].trim();
String grammarFile = args[1].trim();
String featureFile = args[2].trim();
//TODO
int startNgramOrder = 2;
int endNgramOrder = 2;
//======== read word map
Map<String, String> wordMap = MicroRuleFT.readWordMap(wordMapFile);
//======== read grmmar and extract features
LineReader grammarReader = new LineReader(grammarFile);
Map<String, Integer> featMap = new HashMap<String, Integer>();
for (String line : grammarReader) {
Map<String,Integer> tbl = MicroRuleFT.computeTargetNgramFeature(line.trim(), wordMap, startNgramOrder, endNgramOrder);
featMap.putAll(tbl);
}
grammarReader.close();
//======== write the table out
BufferedWriter writer = FileUtility.getWriteFileStream(featureFile);
double initWeight = 0;
for(String name : featMap.keySet()){
writer.write(name +" ||| " + initWeight +"\n");
}
writer.close();
}
}