public static void extraction2html (Extraction extraction, CRFExtractor extor, PrintWriter out) { extraction2html (extraction, extor, out, false); }
static void lattice2html (PrintStream out, ExtorInfo info) { PrintWriter writer = new PrintWriter (new OutputStreamWriter (out), true); lattice2html (writer, info); }
private static void error2html (PrintWriter out, ExtorInfo info, int start, int end) { String anchor = info.idx+":"+start+":"+end; out.println ("<p><A NAME=\""+anchor+"\">"); out.println ("<p>Instance "+info.desc+" Position "+start+"..."+end); if (info.link != null) { out.println ("<a href=\""+info.link+"#"+anchor+"\">[Lattice]</a>"); } out.println ("</p>"); out.println ("<table>"); outputIndices (out, start, end); outputInputRow (out, info.input, start, end); outputTableRow (out, "target", info.target, info.predicted, start, end); outputTableRow (out, "predicted", info.predicted, info.target, start, end); if (info.lattice != null) { outputLatticeRows (out, info.lattice, start, end); outputTransitionCosts (out, info, start, end); outputFeatures (out, info.fvs, info.predicted, info.target, start, end); } out.println ("</table>"); }
private static void writeDualExtractions (PrintWriter out, Extraction e1, CRFExtractor extor1, Extraction e2, CRFExtractor extor2, int start, int end, boolean showLattice) { writeHeader (out); for (int i = start; i < end; i++) { DocumentExtraction doc1 = e1.getDocumentExtraction (i); DocumentExtraction doc2 = e2.getDocumentExtraction (i); String desc = doc1.getName(); String doc1Str = ((CharSequence) doc1.getDocument ()).toString(); String doc2Str = ((CharSequence) doc2.getDocument ()).toString(); if (!doc1Str.equals (doc2Str)) { System.err.println ("Skipping document "+i+": Extractions don't match"); continue; } Sequence targ1 = doc1.getPredictedLabels (); Sequence targ2 = doc2.getPredictedLabels (); if (!predictionsMatch (targ1, targ2)) { ExtorInfo info1 = infoForDoc (doc1Str, "CRF1::"+desc, "C1I"+i, doc1, extor1, showLattice); ExtorInfo info2 = infoForDoc (doc1Str, "CRF2::"+desc, "C2I"+i, doc2, extor2, showLattice); if (!showLattice) { // add links from errors.html --> lattice.html info1.link = info2.link = computeLatticeFname (i); } dualLattice2html (out, desc, info1, info2); } } writeFooter (out); }
public static void extraction2html (Extraction extraction, CRFExtractor extor, PrintWriter out, boolean showLattice) { writeHeader (out); for (int i = 0; i < extraction.getNumDocuments (); i++) { DocumentExtraction docextr = extraction.getDocumentExtraction (i); String desc = docextr.getName(); String doc = ((CharSequence) docextr.getDocument ()).toString(); ExtorInfo info = infoForDoc (doc, desc, "N"+i, docextr, extor, showLattice); if (!showLattice) info.link = "lattice.html"; lattice2html (out, info); } writeFooter (out); }
static void lattice2html (PrintWriter out, ExtorInfo info) { assert (info.target.size() == info.predicted.size()); assert (info.input.size() == info.predicted.size()); int N = info.target.size(); for (int start = 0; start < N; start += LENGTH - 1) { int end = Math.min (N, start + LENGTH); if (!allSeqMatches (info.predicted, info.target, start, end)) { error2html (out, info, start, end); } } }
private static void writeDualExtractions (PrintWriter out, Extraction e1, CRFExtractor extor1, Extraction e2, CRFExtractor extor2, int start, int end, boolean showLattice) { writeHeader (out); for (int i = start; i < end; i++) { DocumentExtraction doc1 = e1.getDocumentExtraction (i); DocumentExtraction doc2 = e2.getDocumentExtraction (i); String desc = doc1.getName(); String doc1Str = ((CharSequence) doc1.getDocument ()).toString(); String doc2Str = ((CharSequence) doc2.getDocument ()).toString(); if (!doc1Str.equals (doc2Str)) { System.err.println ("Skipping document "+i+": Extractions don't match"); continue; } Sequence targ1 = doc1.getPredictedLabels (); Sequence targ2 = doc2.getPredictedLabels (); if (!predictionsMatch (targ1, targ2)) { ExtorInfo info1 = infoForDoc (doc1Str, "CRF1::"+desc, "C1I"+i, doc1, extor1, showLattice); ExtorInfo info2 = infoForDoc (doc1Str, "CRF2::"+desc, "C2I"+i, doc2, extor2, showLattice); if (!showLattice) { // add links from errors.html --> lattice.html info1.link = info2.link = computeLatticeFname (i); } dualLattice2html (out, desc, info1, info2); } } writeFooter (out); }
public static void extraction2html (Extraction extraction, CRFExtractor extor, PrintWriter out, boolean showLattice) { writeHeader (out); for (int i = 0; i < extraction.getNumDocuments (); i++) { DocumentExtraction docextr = extraction.getDocumentExtraction (i); String desc = docextr.getName(); String doc = ((CharSequence) docextr.getDocument ()).toString(); ExtorInfo info = infoForDoc (doc, desc, "N"+i, docextr, extor, showLattice); if (!showLattice) info.link = "lattice.html"; lattice2html (out, info); } writeFooter (out); }
static void lattice2html (PrintWriter out, ExtorInfo info) { assert (info.target.size() == info.predicted.size()); assert (info.input.size() == info.predicted.size()); int N = info.target.size(); for (int start = 0; start < N; start += LENGTH - 1) { int end = Math.min (N, start + LENGTH); if (!allSeqMatches (info.predicted, info.target, start, end)) { error2html (out, info, start, end); } } }
private static void error2html (PrintWriter out, ExtorInfo info, int start, int end) { String anchor = info.idx+":"+start+":"+end; out.println ("<p><A NAME=\""+anchor+"\">"); out.println ("<p>Instance "+info.desc+" Position "+start+"..."+end); if (info.link != null) { out.println ("<a href=\""+info.link+"#"+anchor+"\">[Lattice]</a>"); } out.println ("</p>"); out.println ("<table>"); outputIndices (out, start, end); outputInputRow (out, info.input, start, end); outputTableRow (out, "target", info.target, info.predicted, start, end); outputTableRow (out, "predicted", info.predicted, info.target, start, end); if (info.lattice != null) { outputLatticeRows (out, info.lattice, start, end); outputTransitionCosts (out, info, start, end); outputFeatures (out, info.fvs, info.predicted, info.target, start, end); } out.println ("</table>"); }
private static void writeDualExtractions (PrintWriter out, Extraction e1, CRFExtractor extor1, Extraction e2, CRFExtractor extor2, int start, int end, boolean showLattice) { writeHeader (out); for (int i = start; i < end; i++) { DocumentExtraction doc1 = e1.getDocumentExtraction (i); DocumentExtraction doc2 = e2.getDocumentExtraction (i); String desc = doc1.getName(); String doc1Str = ((CharSequence) doc1.getDocument ()).toString(); String doc2Str = ((CharSequence) doc2.getDocument ()).toString(); if (!doc1Str.equals (doc2Str)) { System.err.println ("Skipping document "+i+": Extractions don't match"); continue; } Sequence targ1 = doc1.getPredictedLabels (); Sequence targ2 = doc2.getPredictedLabels (); if (!predictionsMatch (targ1, targ2)) { ExtorInfo info1 = infoForDoc (doc1Str, "CRF1::"+desc, "C1I"+i, doc1, extor1, showLattice); ExtorInfo info2 = infoForDoc (doc1Str, "CRF2::"+desc, "C2I"+i, doc2, extor2, showLattice); if (!showLattice) { // add links from errors.html --> lattice.html info1.link = info2.link = computeLatticeFname (i); } dualLattice2html (out, desc, info1, info2); } } writeFooter (out); }
public static void extraction2html (Extraction extraction, CRFExtractor extor, PrintWriter out, boolean showLattice) { writeHeader (out); for (int i = 0; i < extraction.getNumDocuments (); i++) { DocumentExtraction docextr = extraction.getDocumentExtraction (i); String desc = docextr.getName(); String doc = ((CharSequence) docextr.getDocument ()).toString(); ExtorInfo info = infoForDoc (doc, desc, "N"+i, docextr, extor, showLattice); if (!showLattice) info.link = "lattice.html"; lattice2html (out, info); } writeFooter (out); }
static void lattice2html (PrintWriter out, ExtorInfo info) { assert (info.target.size() == info.predicted.size()); assert (info.input.size() == info.predicted.size()); int N = info.target.size(); for (int start = 0; start < N; start += LENGTH - 1) { int end = Math.min (N, start + LENGTH); if (!allSeqMatches (info.predicted, info.target, start, end)) { error2html (out, info, start, end); } } }
public static void extraction2html (Extraction extraction, CRFExtractor extor, PrintWriter out) { extraction2html (extraction, extor, out, false); }
static void lattice2html (PrintStream out, ExtorInfo info) { PrintWriter writer = new PrintWriter (new OutputStreamWriter (out), true); lattice2html (writer, info); }
private static void error2html (PrintWriter out, ExtorInfo info, int start, int end) { String anchor = info.idx+":"+start+":"+end; out.println ("<p><A NAME=\""+anchor+"\">"); out.println ("<p>Instance "+info.desc+" Position "+start+"..."+end); if (info.link != null) { out.println ("<a href=\""+info.link+"#"+anchor+"\">[Lattice]</a>"); } out.println ("</p>"); out.println ("<table>"); outputIndices (out, start, end); outputInputRow (out, info.input, start, end); outputTableRow (out, "target", info.target, info.predicted, start, end); outputTableRow (out, "predicted", info.predicted, info.target, start, end); if (info.lattice != null) { outputLatticeRows (out, info.lattice, start, end); outputTransitionCosts (out, info, start, end); outputFeatures (out, info.fvs, info.predicted, info.target, start, end); } out.println ("</table>"); }
public static void dualLattice2html (PrintWriter out, String desc, ExtorInfo info1, ExtorInfo info2) { assert (info1.predicted.size() == info1.target.size()); assert (info1.input.size() == info1.predicted.size()); assert (info2.input.size() == info2.predicted.size()); assert (info2.predicted.size() == info2.target.size()); int N = info1.target.size(); for (int start = 0; start < N; start += LENGTH - 1) { int end = Math.min (info1.predicted.size(), start + LENGTH); if (!allSeqMatches (info1.predicted, info2.predicted, start, end)) { error2html (out, info1, start, end); error2html (out, info2, start, end); } } }
public static void extraction2html (Extraction extraction, CRFExtractor extor, PrintWriter out) { extraction2html (extraction, extor, out, false); }
static void lattice2html (PrintStream out, ExtorInfo info) { PrintWriter writer = new PrintWriter (new OutputStreamWriter (out), true); lattice2html (writer, info); }
public static void dualLattice2html (PrintWriter out, String desc, ExtorInfo info1, ExtorInfo info2) { assert (info1.predicted.size() == info1.target.size()); assert (info1.input.size() == info1.predicted.size()); assert (info2.input.size() == info2.predicted.size()); assert (info2.predicted.size() == info2.target.size()); int N = info1.target.size(); for (int start = 0; start < N; start += LENGTH - 1) { int end = Math.min (info1.predicted.size(), start + LENGTH); if (!allSeqMatches (info1.predicted, info2.predicted, start, end)) { error2html (out, info1, start, end); error2html (out, info2, start, end); } } }