package chipmunk.segmenter.cmd; import java.io.IOException; import java.util.Iterator; import marmot.util.FileUtils; import chipmunk.segmenter.SegmentationDataReader; import chipmunk.segmenter.Segmenter; import chipmunk.segmenter.SegmenterOptions; import chipmunk.segmenter.TwoPhaseSegmenter; import com.martiansoftware.jsap.FlaggedOption; import com.martiansoftware.jsap.JSAP; import com.martiansoftware.jsap.JSAPException; import com.martiansoftware.jsap.JSAPResult; public class Segment { private static final String INPUT_FILE = "input-file"; private static final String MODEL_FILE = "model-file"; private static final String OUTPUT_FILE = "output-file"; public static void main(String[] args) throws JSAPException, IOException { FlaggedOption opt; JSAP jsap = new JSAP(); opt = new FlaggedOption(INPUT_FILE).setRequired(true).setLongFlag(INPUT_FILE); jsap.registerParameter(opt); opt = new FlaggedOption(OUTPUT_FILE).setRequired(true).setLongFlag(OUTPUT_FILE); jsap.registerParameter(opt); opt = new FlaggedOption(MODEL_FILE).setRequired(true).setLongFlag(MODEL_FILE); jsap.registerParameter(opt); SegmenterOptions options = new SegmenterOptions(); options.registerOptions(jsap); JSAPResult config = jsap.parse(args); if (!config.success()) { for (Iterator<?> errs = config.getErrorMessageIterator(); errs .hasNext();) { System.err.println("Error: " + errs.next()); } System.err.println("Usage: "); System.err.println(jsap.getUsage()); System.err.println(jsap.getHelp()); System.err.println(); System.exit(1); } options.setOptions(config); Segmenter segmenter = FileUtils.loadFromFile(config.getString(MODEL_FILE)); segmenter = new TwoPhaseSegmenter(segmenter); SegmentationDataReader reader = new SegmentationDataReader(config.getString(INPUT_FILE), options.getString(SegmenterOptions.LANG), options.getInt(SegmenterOptions.TAG_LEVEL)); segmenter.segmentToFile(config.getString(OUTPUT_FILE), reader); } }