///////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2007 University of Texas at Austin and (C) 2005
// University of Pennsylvania and Copyright (C) 2002, 2003 University
// of Massachusetts Amherst, Department of Computer Science.
//
// This software is licensed under the terms of the Common Public
// License, Version 1.0 or (at your option) any subsequent version.
//
// The license is approved by the Open Source Initiative, and is
// available from their website at http://www.opensource.org.
///////////////////////////////////////////////////////////////////////////////
package mstparser.io;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import mstparser.DependencyInstance;
import mstparser.Util;
/**
* A writer to create files in MST format.
*
* <p> Created: Sat Nov 10 15:25:10 2001 </p>
*
* @author Jason Baldridge
* @version $Id: MSTWriter.java 94 2007-01-17 17:05:12Z jasonbaldridge $
* @see mstparser.io.DependencyWriter
*/
public class MSTWriter extends DependencyWriter {
public MSTWriter(boolean labeled) {
this.labeled = labeled;
}
@Override
public void write(DependencyInstance instance) throws IOException {
writer.write(Util.join(instance.forms, '\t') + "\n");
StringBuilder sb = new StringBuilder();
sb.append(instance.postags[1]);
for (int i = 2; i < instance.postags.length; i++) {
sb.append("\t").append(instance.postags[i]);
}
writer.write(sb.toString() + "\n");
if (labeled) {
writer.write(Util.join(instance.deprels, '\t') + "\n");
}
writer.write(Util.join(instance.heads, '\t') + "\n");
if (instance.confidenceScores != null) {
writer.write(Util.join(instance.confidenceScores, '\t', 3) + "\n");
}
writer.write("\n");
}
}