Skip to content

Commit

Permalink
Read the configuration from default location when running the trainin…
Browse files Browse the repository at this point in the history
…g with gradle #131
  • Loading branch information
lfoppiano committed Dec 14, 2021
1 parent 68e4808 commit 81c0538
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 6 deletions.
13 changes: 7 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,14 @@ dependencies {
implementation 'org.apache.commons:commons-collections4:4.4'
implementation 'org.apache.commons:commons-lang3:3.12.0'
implementation 'commons-logging:commons-logging:1.2'
implementation 'commons-io:commons-io:2.6'
implementation 'commons-io:commons-io:2.11.0'
implementation 'commons-pool:commons-pool:1.6'

//Json
implementation "com.fasterxml.jackson.core:jackson-core:2.10.1"
implementation "com.fasterxml.jackson.core:jackson-databind:2.10.1"
implementation "com.fasterxml.jackson.module:jackson-module-afterburner:2.10.1"
implementation 'com.fasterxml.jackson.core:jackson-core:2.13.0'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.0'
implementation 'com.fasterxml.jackson.module:jackson-module-afterburner:2.13.0'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.13.0'

// measurements

Expand Down Expand Up @@ -103,8 +104,8 @@ dependencies {
implementation "net.arnx:jsonic:1.3.10"

// XML
implementation 'org.codehaus.woodstox:stax2-api:3.1.4'
implementation 'com.fasterxml.woodstox:woodstox-core:5.1.0'
implementation 'org.codehaus.woodstox:stax2-api:4.2.1'
implementation 'com.fasterxml.woodstox:woodstox-core:6.2.7'


// Needed for compatibility with JDK > 8
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/org/grobid/trainer/QuantifiedObjectTrainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.grobid.core.engines.QuantitiesModels.QUANTIFIED_OBJECT;
import static org.grobid.trainer.QuantitiesTrainer.loadConfigurationFromDefaultPath;

public class QuantifiedObjectTrainer extends AbstractTrainer {
private static final Logger LOGGER = LoggerFactory.getLogger(QuantifiedObjectTrainer.class);
Expand Down Expand Up @@ -145,6 +146,7 @@ public int createCRFPPData(File corpusDir, File trainingOutputPath, File evalOut
*/
public static void main(String[] args) {
GrobidProperties.getInstance();
loadConfigurationFromDefaultPath();

Trainer trainer = new QuantifiedObjectTrainer();
AbstractTrainer.runSplitTrainingEvaluation(trainer, 0.6);
Expand Down
24 changes: 24 additions & 0 deletions src/main/java/org/grobid/trainer/QuantitiesTrainer.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package org.grobid.trainer;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import io.dropwizard.jackson.Jackson;
import org.apache.commons.io.IOUtils;
import org.grobid.core.engines.QuantitiesModels;
import org.grobid.core.exceptions.GrobidException;
Expand All @@ -9,11 +13,14 @@
import org.grobid.core.utilities.OffsetPosition;
import org.grobid.core.utilities.Pair;
import org.grobid.core.utilities.UnicodeUtil;
import org.grobid.service.configuration.GrobidQuantitiesConfiguration;
import org.grobid.trainer.sax.MeasureAnnotationSaxHandler;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import java.io.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

Expand Down Expand Up @@ -215,8 +222,25 @@ private void addFeatures(List<Pair<String, String>> texts,
*/
public static void main(String[] args) {
GrobidProperties.getInstance();
loadConfigurationFromDefaultPath();

Trainer trainer = new QuantitiesTrainer();
AbstractTrainer.runTraining(trainer);
}

public static void loadConfigurationFromDefaultPath() {
Path configFilePath = Paths.get("resources", "config", "config.yml");
ObjectMapper mapper = Jackson.newObjectMapper(new YAMLFactory());
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

try {
System.out.println("Reading configuration from default location: "+ configFilePath.toAbsolutePath());
GrobidQuantitiesConfiguration configuration = mapper.readValue(configFilePath.toFile(), GrobidQuantitiesConfiguration.class);
configuration.getModels().stream().forEach(GrobidProperties::addModel);
} catch (Exception e) {
System.out.println("Cannot read configuration. To specify the configuration to a custom path, run the training via the JAR file. See java -jar build/lib/*.onjar.jar --help for information.");
System.out.println("Exception: " + e);
System.exit(-1);
}
}
}
2 changes: 2 additions & 0 deletions src/main/java/org/grobid/trainer/UnitTrainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

import static java.nio.charset.StandardCharsets.UTF_8;
import static org.apache.commons.lang3.StringUtils.lowerCase;
import static org.grobid.trainer.QuantitiesTrainer.loadConfigurationFromDefaultPath;

/**
* Created by lfoppiano on 21.02.16.
Expand Down Expand Up @@ -178,6 +179,7 @@ public int createCRFPPData(File corpusDir, File trainingOutputPath, File evalOut
*/
public static void main(String[] args) {
GrobidProperties.getInstance();
loadConfigurationFromDefaultPath();

Trainer trainer = new UnitTrainer();
AbstractTrainer.runTraining(trainer);
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/org/grobid/trainer/ValueTrainer.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import java.util.List;

import static java.nio.charset.StandardCharsets.UTF_8;
import static org.grobid.trainer.QuantitiesTrainer.loadConfigurationFromDefaultPath;

/**
* Created by lfoppiano on 21.02.16.
Expand Down Expand Up @@ -171,6 +172,7 @@ public boolean accept(File dir, String name) {
*/
public static void main(String[] args) {
GrobidProperties.getInstance();
loadConfigurationFromDefaultPath();

Trainer trainer = new ValueTrainer();
AbstractTrainer.runTraining(trainer);
Expand Down

0 comments on commit 81c0538

Please sign in to comment.