use of zemberek.ner.PerceptronNerTrainer in project zemberek-nlp by ahmetaa.
the class TrainNerModel method run.
@Override
public void run() throws Exception {
initializeOutputDir();
IOUtil.checkFileArgument(trainDataPath, "Training file");
Path modelRoot = outDir.resolve("model");
Path modelRootCompressed = outDir.resolve("model-compressed");
Path logPath = outDir.resolve("train-log");
Log.addFileHandler(logPath);
if (developmentPath != null) {
IOUtil.checkFileArgument(developmentPath, "Development file");
}
NerDataSet trainingSet = NerDataSet.load(trainDataPath, annotationStyle);
Log.info("Training set information:");
Log.info(trainingSet.info());
NerDataSet devSet = null;
if (developmentPath != null) {
devSet = NerDataSet.load(developmentPath, annotationStyle);
Log.info("Development set information:");
Log.info(devSet.info());
}
TurkishMorphology morphology = TurkishMorphology.createWithDefaults();
Log.info("------------ Training Started --------------------");
PerceptronNer ner = new PerceptronNerTrainer(morphology).train(trainingSet, devSet, iterationCount, learningRate);
Files.createDirectories(modelRoot);
Files.createDirectories(modelRootCompressed);
ner.saveModelAsText(modelRoot);
ner.saveModelCompressed(modelRootCompressed);
Log.info("Text model is created in %s", modelRoot);
Log.info("Compressed model is created in %s", modelRootCompressed);
}
use of zemberek.ner.PerceptronNerTrainer in project zemberek-nlp by ahmetaa.
the class GenerateNerModel method main.
public static void main(String[] args) throws IOException {
// you will need ner-train and ner-test files to run this example.
Path trainPath = Paths.get("ner-train");
Path testPath = Paths.get("ner-test");
Path modelRoot = Paths.get("my-model");
NerDataSet trainingSet = NerDataSet.load(trainPath, AnnotationStyle.BRACKET);
// prints information
Log.info(trainingSet.info());
NerDataSet testSet = NerDataSet.load(testPath, AnnotationStyle.BRACKET);
Log.info(testSet.info());
TurkishMorphology morphology = TurkishMorphology.createWithDefaults();
// Training occurs here. Result is a PerceptronNer instance.
// There will be 7 iterations with 0.1 learning rate.
PerceptronNer ner = new PerceptronNerTrainer(morphology).train(trainingSet, testSet, 13, 0.1f);
Files.createDirectories(modelRoot);
ner.saveModelAsText(modelRoot);
}
Aggregations