/* * Copyright 2004-2010 Information & Software Engineering Group (188/1) * Institute of Software Technology and Interactive Systems * Vienna University of Technology, Austria * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.ifs.tuwien.ac.at/dm/somtoolbox/license.html * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package at.tuwien.ifs.somtoolbox.summarisation; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.util.ArrayList; import cern.colt.list.DoubleArrayList; import com.martiansoftware.jsap.JSAPResult; import com.martiansoftware.jsap.Parameter; import at.tuwien.ifs.somtoolbox.apps.config.OptionFactory; import at.tuwien.ifs.somtoolbox.data.InputData; import at.tuwien.ifs.somtoolbox.data.InputDataFactory; import at.tuwien.ifs.somtoolbox.data.SOMLibTemplateVector; import at.tuwien.ifs.somtoolbox.summarisation.output.ResultHandler; import at.tuwien.ifs.somtoolbox.summarisation.parser.Scorer; /** * @author Julius Penaranda * @author Rudolf Mayer * @version $Id: Summariser.java 3832 2010-10-06 21:26:23Z mayer $ */ public class Summariser { public static final Parameter[] OPTIONS = new Parameter[] { OptionFactory.getOptInputDirectory(true), OptionFactory.getOptDocument(), OptionFactory.getOptOutputDirectory(true), OptionFactory.getOptCompressionRate(), OptionFactory.getOptMethod(), OptionFactory.getOptTemplateVectorFile(true), OptionFactory.getOptInputVectorFile(true) }; public static void main(String[] args) { buildResult(args); } private static void buildResult(String[] args) { JSAPResult config = OptionFactory.parseResults(args, OPTIONS); String document = config.getString("document"); String input = config.getString("inputDir"); String outputDirectory = config.getString("outputDirectory"); int compression = config.getInt("compression"); String method = config.getString("method"); String inputvector = config.getString("input"); String templatevector = config.getString("template"); File output = new File(outputDirectory); if (!output.exists()) { output.mkdir(); System.out.println("result folder created"); } try { InputData inputvec = InputDataFactory.open(inputvector); SOMLibTemplateVector templatevec = new SOMLibTemplateVector(templatevector); Scorer scorer = new Scorer(document, inputvec, templatevec); scorer.setFileNamePrefix(input); scorer.parseDocuments(); Object[] item = new Object[1]; item[0] = document; ResultHandler resulth = new ResultHandler(item, scorer.getParsedDocuments()); DoubleArrayList scoreArray = scorer.getScores(0, method); resulth.storeScore(0, scoreArray); resulth.createResult(0, compression); ArrayList<String> resultdoc = resulth.getResultDoc(0); File resultfile = new File(outputDirectory + File.separator + document); if (!resultfile.exists()) { resultfile.createNewFile(); } BufferedWriter bufwriter = new BufferedWriter(new FileWriter(resultfile.getAbsolutePath())); bufwriter.write(scorer.getParsedDocument(0).get(0) + "\n"); for (int i = 0; i < resultdoc.size(); i++) { bufwriter.write(resultdoc.get(i)); } bufwriter.close(); } catch (Exception e) { System.out.println(" caught a " + e.getClass() + "\n with message: " + e.getMessage() + " "); e.printStackTrace(); } } }