public static void main(String[] args) throws Exception { Reader trainingFile = null; // Process arguments int restArgs = commandOptions.processOptions(args); // Check arguments if (restArgs != args.length) { commandOptions.printUsage(true); throw new IllegalArgumentException("Unexpected arg " + args[restArgs]); } if (trainFileOption.value == null) { commandOptions.printUsage(true); throw new IllegalArgumentException("Expected --train-file FILE"); } if (modelFileOption.value == null) { commandOptions.printUsage(true); throw new IllegalArgumentException("Expected --model-file FILE"); } // Get the CRF structure specification. ZipFile zipFile = new ZipFile(modelFileOption.value); ZipEntry zipEntry = zipFile.getEntry("crf-info.xml"); CRFInfo crfInfo = new CRFInfo(zipFile.getInputStream(zipEntry)); StringBuffer crfInfoBuffer = new StringBuffer(); BufferedReader reader = new BufferedReader(new InputStreamReader(zipFile.getInputStream(zipEntry))); String line; while ((line = reader.readLine()) != null) { crfInfoBuffer.append(line).append('\n'); } reader.close(); // Create the CRF, and train it. CRF4 crf = createCRF(trainFileOption.value, crfInfo); // Create a new zip file for our output. This will overwrite // the file we used for input. ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(modelFileOption.value)); // Copy the CRF info xml to the output zip file. zos.putNextEntry(new ZipEntry("crf-info.xml")); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(zos)); writer.write(crfInfoBuffer.toString()); writer.flush(); zos.closeEntry(); // Save the CRF classifier model to the output zip file. zos.putNextEntry(new ZipEntry("crf-model.ser")); ObjectOutputStream oos = new ObjectOutputStream(zos); oos.writeObject(crf); oos.flush(); zos.closeEntry(); zos.close(); }
public void run() { try { BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), charset)); if (outputFile != null) { bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile), charset)); } String line; while ((line = br.readLine()) != null) { filePosition += line.length() + 2; line = line.trim(); if (!line.startsWith("#")) { String[] sides = split(line); if ((sides != null) && !sides[0].equals("key")) { if (searchPHI) { // Search the decrypted PHI for the searchText sides[0] = decrypt(sides[0]); if (sides[0].indexOf(searchText) != -1) { output(sides[0] + " = " + sides[1] + "\n"); } } else { // Search the trial ID for the searchText if (sides[1].indexOf(searchText) != -1) { sides[0] = decrypt(sides[0]); output(sides[0] + " = " + sides[1] + "\n"); } } } } } br.close(); if (bw != null) { bw.flush(); bw.close(); } } catch (Exception e) { append("\n\n" + e.getClass().getName() + ": " + e.getMessage() + "\n"); } append("\nDone.\n"); setMessage("Ready..."); }
/** * Writes the data to the given writer. * * @param aDataSet the project to write the settings for, cannot be <code>null</code> ; * @param aWriter the writer to write the data to, cannot be <code>null</code>. * @throws IOException in case of I/O problems. */ public static void write(final StubDataSet aDataSet, final Writer aWriter) throws IOException { final BufferedWriter bw = new BufferedWriter(aWriter); final AcquisitionResult capturedData = aDataSet.getCapturedData(); final Cursor[] cursors = aDataSet.getCursors(); final boolean cursorsEnabled = aDataSet.isCursorsEnabled(); try { final int[] values = capturedData.getValues(); final long[] timestamps = capturedData.getTimestamps(); bw.write(";Size: "); bw.write(Integer.toString(values.length)); bw.newLine(); bw.write(";Rate: "); bw.write(Integer.toString(capturedData.getSampleRate())); bw.newLine(); bw.write(";Channels: "); bw.write(Integer.toString(capturedData.getChannels())); bw.newLine(); bw.write(";EnabledChannels: "); bw.write(Integer.toString(capturedData.getEnabledChannels())); bw.newLine(); if (capturedData.hasTriggerData()) { bw.write(";TriggerPosition: "); bw.write(Long.toString(capturedData.getTriggerPosition())); bw.newLine(); } bw.write(";Compressed: "); bw.write(Boolean.toString(true)); bw.newLine(); bw.write(";AbsoluteLength: "); bw.write(Long.toString(capturedData.getAbsoluteLength())); bw.newLine(); bw.write(";CursorEnabled: "); bw.write(Boolean.toString(cursorsEnabled)); bw.newLine(); for (int i = 0; cursorsEnabled && (i < cursors.length); i++) { if (cursors[i].isDefined()) { bw.write(String.format(";Cursor%d: ", Integer.valueOf(i))); bw.write(Long.toString(cursors[i].getTimestamp())); bw.newLine(); } } for (int i = 0; i < values.length; i++) { bw.write(formatSample(values[i], timestamps[i])); bw.newLine(); } } finally { bw.flush(); } }