Commit e4ea34894fd6aeecd864aac594965c9e52d39fcf

Authored by Bartłomiej Nitoń
1 parent 215c5fa1

Change Main class

src/main/java/pl/waw/ipipan/zil/core/bartek/main/Main.java
... ... @@ -25,15 +25,31 @@ public class Main {
25 25  
26 26 private static final Logger logger = LoggerFactory.getLogger(Main.class);
27 27  
28   - private static Decoder decoder;
  28 + private Decoder decoder;
29 29  
30   - static {
  30 + public Main() {
31 31 InputStream decoderStream = Main.class.getResourceAsStream(Constants.DECODER_PATH_PREFIX
32 32 + Constants.DEFAULT_DECODER_NAME);
33 33 decoder = Serializer.loadDecoderFromStream(decoderStream);
34 34 }
35   -
36   - private Main() {
  35 +
  36 + public Main(String decoderPath) {
  37 + try {
  38 + if (decoderPath.endsWith(".xml")) {
  39 + decoder = Serializer.loadDecoderFromFile(new File(decoderPath));
  40 + } else {
  41 + InputStream decoderStream = new FileInputStream(new File(decoderPath));
  42 + decoder = Serializer.loadDecoderFromStream(decoderStream);
  43 + if (decoder == null)
  44 + throw new IOException();
  45 + }
  46 + } catch (IOException e) {
  47 + logger.error("Error loading decoder/rules from path: " + decoderPath);
  48 + return;
  49 + } catch (Exception e) {
  50 + logger.error("Error loading rules from path: " + decoderPath);
  51 + return;
  52 + }
37 53 }
38 54  
39 55 public static void main(String[] args) throws TEIException {
... ... @@ -54,24 +70,12 @@ public class Main {
54 70 return;
55 71 }
56 72  
57   - try {
58   - if (args.length == 3) {
59   - if (args[2].endsWith(".xml")) {
60   - decoder = Serializer.loadDecoderFromFile(new File(args[2]));
61   - } else {
62   - InputStream decoderStream = new FileInputStream(new File(args[2]));
63   - decoder = Serializer.loadDecoderFromStream(decoderStream);
64   - if (decoder == null)
65   - throw new IOException();
66   - }
67   - }
68   - } catch (IOException e) {
69   - logger.error("Error loading decoder/rules from path: " + args[2]);
70   - return;
71   - } catch (Exception e) {
72   - logger.error("Error loading rules from path: " + args[2]);
73   - return;
74   - }
  73 + Main bartek;
  74 + if (args.length == 3) {
  75 + bartek = new Main(args[2]);
  76 + } else {
  77 + bartek = new Main();
  78 + }
75 79  
76 80 logger.info("Starting annotation of texts in dir:" + inputDir);
77 81 int errors = 0, ok = 0;
... ... @@ -79,7 +83,7 @@ public class Main {
79 83 try {
80 84 File targetDir = createTargetTextDir(inputDir, outputDir, teiDir);
81 85 TEICorpusText teiText = TeiLoader.readTeiText(teiDir);
82   - annotateTeiText(teiText);
  86 + bartek.annotateTeiText(teiText);
83 87 TeiSaver.saveTeiText(teiText, targetDir, Constants.GZIP_OUTPUT);
84 88 ok++;
85 89  
... ... @@ -113,7 +117,7 @@ public class Main {
113 117 return targetDir;
114 118 }
115 119  
116   - public static void annotateThriftText(TText thriftText) throws MultiserviceException {
  120 + public void annotateThriftText(TText thriftText) throws MultiserviceException {
117 121 Text text = ThriftLoader.loadTextFromThrift(thriftText);
118 122 try {
119 123 Method.annotateText(text, decoder);
... ... @@ -123,7 +127,7 @@ public class Main {
123 127 ThriftSaver.updateThriftText(text, thriftText);
124 128 }
125 129  
126   - public static void annotateTeiText(TEICorpusText ct) throws TEIException {
  130 + public void annotateTeiText(TEICorpusText ct) throws TEIException {
127 131 if (!ct.getAnnotationLayers().contains(AnnotationLayer.MENTIONS))
128 132 throw new TEIException("No mentions to cluster!");
129 133 Text text = TeiLoader.loadTextFromTei(ct);
... ...
src/test/java/pl/waw/ipipan/zil/core/bartek/MainTest.java
... ... @@ -22,7 +22,16 @@ public class MainTest {
22 22 @Test
23 23 public final void testCustomModel() throws IOException {
24 24 String[] args = { MainTest.class.getResource("/example_corpus_tei/").getFile(),
25   - results.newFolder().getAbsolutePath(), "bart1" };
  25 + results.newFolder().getAbsolutePath(),
  26 + MainTest.class.getResource("/models/bart5").getFile()};
  27 + Main.main(args);
  28 + }
  29 +
  30 + @Test
  31 + public final void testSieveDecoder() throws IOException {
  32 + String[] args = { MainTest.class.getResource("/example_corpus_tei/").getFile(),
  33 + results.newFolder().getAbsolutePath(),
  34 + MainTest.class.getResource("/configs/bart-S2-pl.xml").getPath()};
26 35 Main.main(args);
27 36 }
28 37 }
... ...
src/test/resources/configs/example_config.xml
... ... @@ -30,7 +30,7 @@
30 30 <extractor class="combined.FE_AdjSent_AnaPron_AdjMen" />
31 31 <extractor class="pair.FE_Abbrev2" />
32 32 </extractors>
33   - <writer class="WEKAInstanceWriter" targetPath="/home/me2/Desktop/data.arff" />
  33 + <writer class="WEKAInstanceWriter" targetPath="./data.arff" />
34 34 <classifier class="weka.classifiers.trees.J48" type="weka"
35 35 options="" />
36 36 <decoder class="SoonDecoder" />
... ...