String treeFile = args[0];
String morfetteFile = args[1];
TreeReaderFactory trf = new FrenchTreeReaderFactory();
try {
TreeReader tr = trf.newTreeReader(new BufferedReader(new InputStreamReader(new FileInputStream(treeFile), "UTF-8")));
Iterator<List<CoreLabel>> morfetteItr = new MorfetteFileIterator(morfetteFile);
for (Tree tree; (tree = tr.readTree()) != null && morfetteItr.hasNext();) {
List<CoreLabel> analysis = morfetteItr.next();
List<Label> yield = tree.yield();
assert analysis.size() == yield.size();
int yieldLen = yield.size();
for (int i = 0; i < yieldLen; ++i) {
CoreLabel tokenAnalysis = analysis.get(i);
Label token = yield.get(i);
String lemma = getLemma(token.value(), tokenAnalysis.lemma());
String newLeaf = String.format("%s%s%s%s%s", token.value(),
MorphoFeatureSpecification.MORPHO_MARK,
lemma,
MorphoFeatureSpecification.LEMMA_MARK,
tokenAnalysis.tag());
((CoreLabel) token).setValue(newLeaf);
}
System.out.println(tree.toString());
}
if (tr.readTree() != null || morfetteItr.hasNext()) {
System.err.println("WARNING: Uneven input files!");
}
tr.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();