This is an automated email from the ASF dual-hosted git repository.

sergeykamov pushed a commit to branch NLPCRAFT-472
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/NLPCRAFT-472 by this push:
     new 587d97d  WIP.
587d97d is described below

commit 587d97dff560c7cf9a01f699b15a50533e1f35b6
Author: Sergey Kamov <[email protected]>
AuthorDate: Tue Jan 4 17:30:09 2022 +0300

    WIP.
---
 .../org/apache/nlpcraft/NCModelConfigBuilder.java  | 133 +++++++++++++++++++--
 ...pTokenParser.java => NCOpenNlpTokenParser.java} |  10 +-
 ...emmer.java => NCOpenNlpTokenParserStemmer.java} |   2 +-
 .../en/impl/NCEnOpenNlpTokenParserStemmerImpl.java |  13 --
 .../{NCEnOpenNlpImpl.scala => NCOpenNlpImpl.scala} |   4 +-
 .../impl/en/NCOpenNlpTokenParserStemmerImpl.java   |  13 ++
 .../opennlp/NCEnOpenNlpTokenParserBenchmark.java   |  13 +-
 .../parser/opennlp/NCOpenNlpEntityParserSpec.scala |   1 -
 .../semantic/NCSemanticEntityParserJsonSpec.scala  |   4 +-
 .../semantic/NCSemanticEntityParserSpec.scala      |   1 -
 .../semantic/NCSemanticEntityParserYamlSpec.scala  |   1 -
 .../en/NCEnBracketsTokenEnricherSpec.scala         |   1 -
 .../en/NCEnDictionaryTokenEnricherSpec.scala       |   1 -
 .../en/NCEnLanguageTokenEnricherSpec.scala         |   1 -
 .../enricher/en/NCEnQuotesTokenEnricherSpec.scala  |   1 -
 .../en/NCEnSwearWordsTokenEnricherSpec.scala       |   1 -
 .../opennlp/en/NCEnOpenNlpTokenParserSpec.scala    |   1 -
 .../apache/nlpcraft/nlp/util/NCTestConfig.scala    |   5 +-
 .../org/apache/nlpcraft/nlp/util/NCTestUtils.scala |   1 -
 19 files changed, 156 insertions(+), 51 deletions(-)

diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfigBuilder.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfigBuilder.java
index 58e0b4e..40f8035 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfigBuilder.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfigBuilder.java
@@ -22,12 +22,9 @@ import java.util.List;
 import java.util.Objects;
 
 /**
- *
+ * TODO: messages.
  */
-// TODO: validation for constructor and all setters.
 public class NCModelConfigBuilder {
-    private abstract class NCModelConfigAdapter extends NCPropertyMapAdapter 
implements NCModelConfig { }
-
     private final String id;
     private final String name;
     private final String version;
@@ -47,108 +44,224 @@ public class NCModelConfigBuilder {
     public NCModelConfigBuilder(String id, String name, String version) {
         Objects.requireNonNull(id, "Id cannot be null.");
         Objects.requireNonNull(name, "Name cannot be null.");
-        Objects.requireNonNull(version, "Varsion cannot be null");
+        Objects.requireNonNull(version, "Version cannot be null");
 
         this.id = id;
         this.name = name;
         this.version = version;
     }
 
+    /**
+     *
+     * @param description
+     * @return
+     */
     public NCModelConfigBuilder withDescription(String description) {
         this.description = description;
 
         return this;
     }
 
+    /**
+     *
+     * @param origin
+     * @return
+     */
     public NCModelConfigBuilder withOrigin(String origin) {
         this.origin = origin;
 
         return this;
     }
 
-
+    /**
+     *
+     * @param tokParser
+     * @return
+     */
     public NCModelConfigBuilder withTokenParser(NCTokenParser tokParser) {
+        Objects.requireNonNull(tokParser, "Parser cannot be null.");
+
         this.tokParser = tokParser;
 
         return this;
     }
 
+    /**
+     *
+     * @param tokEnrichers
+     * @return
+     */
     public NCModelConfigBuilder withTokenEnrichers(List<NCTokenEnricher> 
tokEnrichers) {
+        Objects.requireNonNull(tokEnrichers, "Enrichers cannot be null.");
+        tokEnrichers.forEach(p -> Objects.requireNonNull(p, "Enrichers cannot 
be null."));
+
         this.tokEnrichers.addAll(tokEnrichers);
 
         return this;
     }
 
+    /**
+     *
+     * @param tokEnricher
+     * @return
+     */
     public NCModelConfigBuilder withTokenEnricher(NCTokenEnricher tokEnricher) 
{
-        Objects.requireNonNull(tokEnrichers, "Argument cannot be null.");
+        Objects.requireNonNull(tokEnricher, "Enricher cannot be null.");
 
         this.tokEnrichers.add(tokEnricher);
 
         return this;
     }
 
+    /**
+     *
+     * @param entEnrichers
+     * @return
+     */
     public NCModelConfigBuilder withEntityEnrichers(List<NCEntityEnricher> 
entEnrichers) {
+        Objects.requireNonNull(entEnrichers, "Enrichers cannot be null.");
+        entEnrichers.forEach(p -> Objects.requireNonNull(p, "Enrichers cannot 
be null."));
+
         this.entEnrichers.addAll(entEnrichers);
 
         return this;
     }
 
+    /**
+     *
+     * @param entEnricher
+     * @return
+     */
     public NCModelConfigBuilder withEntityEnricher(NCEntityEnricher 
entEnricher) {
+        Objects.requireNonNull(entEnricher, "Enricher cannot be null.");
+
         this.entEnrichers.add(entEnricher);
 
         return this;
     }
 
+    /**
+     *
+     * @param entParsers
+     * @return
+     */
     public NCModelConfigBuilder withEntityParsers(List<NCEntityParser> 
entParsers) {
+        Objects.requireNonNull(entParsers, "Parsers cannot be null.");
+        entParsers.forEach(p -> Objects.requireNonNull(p, "Parsers cannot be 
null."));
+
         this.entParsers.addAll(entParsers);
 
         return this;
     }
 
+    /**
+     *
+     * @param entParser
+     * @return
+     */
     public NCModelConfigBuilder withEntityParser(NCEntityParser entParser) {
+        Objects.requireNonNull(entParser, "Parser cannot be null.");
+
         this.entParsers.add(entParser);
 
         return this;
     }
 
+    /**
+     *
+     * @param tokenValidators
+     * @return
+     */
     public NCModelConfigBuilder withTokenValidators(List<NCTokenValidator> 
tokenValidators) {
+        Objects.requireNonNull(tokenValidators, "Validators cannot be null.");
+        tokenValidators.forEach(p -> Objects.requireNonNull(p, "Validators 
cannot be null."));
+
         this.tokenValidators.addAll(tokenValidators);
 
         return this;
     }
 
+    /**
+     *
+     * @param tokenValidator
+     * @return
+     */
     public NCModelConfigBuilder withTokenValidator(NCTokenValidator 
tokenValidator) {
+        Objects.requireNonNull(tokenValidator, "Validator cannot be null.");
+
         this.tokenValidators.add(tokenValidator);
 
         return this;
     }
 
+    /**
+     *
+     * @param entityValidators
+     * @return
+     */
     public NCModelConfigBuilder withEntityValidators(List<NCEntityValidator> 
entityValidators) {
+        Objects.requireNonNull(entityValidators, "Validators cannot be null.");
+        entityValidators.forEach(p -> Objects.requireNonNull(p, "Validators 
cannot be null."));
+
         this.entityValidators.addAll(entityValidators);
 
         return this;
     }
 
+    /**
+     *
+     * @param entityValidator
+     * @return
+     */
     public NCModelConfigBuilder withEntityValidator(NCEntityValidator 
entityValidator) {
+        Objects.requireNonNull(entityValidator, "Validators cannot be null.");
+
         this.entityValidators.add(entityValidator);
 
         return this;
     }
 
+    /**
+     *
+     * @param variantsValidators
+     * @return
+     */
     public NCModelConfigBuilder withVariantValidators(List<NCVariantValidator> 
variantsValidators) {
+        Objects.requireNonNull(variantsValidators, "Validators cannot be 
null.");
+        variantsValidators.forEach(p -> Objects.requireNonNull(p, "Validators 
cannot be null."));
+
         this.variantsValidators.addAll(variantsValidators);
 
         return this;
     }
 
+    /**
+     *
+     * @param variantsValidator
+     * @return
+     */
     public NCModelConfigBuilder withVariantValidator(NCVariantValidator 
variantsValidator) {
+        Objects.requireNonNull(variantsValidator, "Validator cannot be null.");
+
         this.variantsValidators.add(variantsValidator);
 
         return this;
     }
 
-    public NCModelConfig make() {
-        // TODO: validate.
+    /**
+     *
+     * @return
+     */
+    public NCModelConfig build() {
+        if (tokParser == null) {
+            throw new IllegalArgumentException("Token parser must be 
defined.");
+        }
+
+        if (entParsers.isEmpty()) {
+            throw new IllegalArgumentException("At least one entity parser 
must be defined.");
+        }
+
+        abstract class NCModelConfigAdapter extends NCPropertyMapAdapter 
implements NCModelConfig { }
 
         return new NCModelConfigAdapter() {
             @Override
@@ -201,6 +314,8 @@ public class NCModelConfigBuilder {
                 return version;
             }
 
+            // Can be null and get from default interface methods.
+
             @Override
             public String getDescription() {
                 return description != null ? description : 
super.getDescription();
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParser.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCOpenNlpTokenParser.java
similarity index 87%
rename from 
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParser.java
rename to 
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCOpenNlpTokenParser.java
index 59357e5..c5f6692 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParser.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCOpenNlpTokenParser.java
@@ -20,7 +20,7 @@ package org.apache.nlpcraft.nlp.token.parser.opennlp.en;
 import org.apache.nlpcraft.NCException;
 import org.apache.nlpcraft.NCModelConfig;
 import org.apache.nlpcraft.NCTokenParser;
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.impl.NCEnOpenNlpImpl;
+import org.apache.nlpcraft.nlp.token.parser.opennlp.en.impl.NCOpenNlpImpl;
 
 import java.util.List;
 import java.util.Objects;
@@ -35,8 +35,8 @@ import java.util.Objects;
 /**
  *
  */
-public class NCEnOpenNlpTokenParser implements NCTokenParser {
-    private final NCEnOpenNlpImpl impl;
+public class NCOpenNlpTokenParser implements NCTokenParser {
+    private final NCOpenNlpImpl impl;
 
     @Override
     public void start(NCModelConfig cfg) {
@@ -55,14 +55,14 @@ public class NCEnOpenNlpTokenParser implements 
NCTokenParser {
      * @param lemmaDicSrc Local filesystem path, resources file path or URL 
for OpenNLP lemmatizer dictionary.
      * @throws NCException
      */
-    public NCEnOpenNlpTokenParser(String tokMdlSrc, String posMdlSrc, String 
lemmaDicSrc, NCEnOpenNlpTokenParserStemmer stemmer) {
+    public NCOpenNlpTokenParser(String tokMdlSrc, String posMdlSrc, String 
lemmaDicSrc, NCOpenNlpTokenParserStemmer stemmer) {
         Objects.requireNonNull(tokMdlSrc, "Tokenizer model path cannot be 
null.");
         Objects.requireNonNull(posMdlSrc, "POS model path cannot be null.");
         Objects.requireNonNull(lemmaDicSrc, "Lemmatizer model path cannot be 
null.");
         Objects.requireNonNull(stemmer, "Stemmer cannot be null.");
 
         try {
-            impl = new NCEnOpenNlpImpl(tokMdlSrc, posMdlSrc, lemmaDicSrc, 
stemmer);
+            impl = new NCOpenNlpImpl(tokMdlSrc, posMdlSrc, lemmaDicSrc, 
stemmer);
         }
         catch (Exception e) {
             throw new NCException("Failed to create OpenNLP token parser.", e);
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParserStemmer.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCOpenNlpTokenParserStemmer.java
similarity index 94%
rename from 
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParserStemmer.java
rename to 
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCOpenNlpTokenParserStemmer.java
index 57ab323..2af38c3 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParserStemmer.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCOpenNlpTokenParserStemmer.java
@@ -17,6 +17,6 @@
 
 package org.apache.nlpcraft.nlp.token.parser.opennlp.en;
 
-public interface NCEnOpenNlpTokenParserStemmer {
+public interface NCOpenNlpTokenParserStemmer {
     String stem(String s);
 }
\ No newline at end of file
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/impl/NCEnOpenNlpTokenParserStemmerImpl.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/impl/NCEnOpenNlpTokenParserStemmerImpl.java
deleted file mode 100644
index 2c8c9e8..0000000
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/impl/NCEnOpenNlpTokenParserStemmerImpl.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.apache.nlpcraft.nlp.token.parser.opennlp.en.impl;
-
-import opennlp.tools.stemmer.PorterStemmer;
-import 
org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParserStemmer;
-
-public class NCEnOpenNlpTokenParserStemmerImpl implements 
NCEnOpenNlpTokenParserStemmer {
-    private PorterStemmer stemmer = new PorterStemmer();
-
-    @Override
-    public String stem(String s) {
-        return stemmer.stem(s);
-    }
-}
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/impl/NCEnOpenNlpImpl.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/impl/NCOpenNlpImpl.scala
similarity index 93%
rename from 
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/impl/NCEnOpenNlpImpl.scala
rename to 
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/impl/NCOpenNlpImpl.scala
index 60d2172..8e58cd1 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/impl/NCEnOpenNlpImpl.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/impl/NCOpenNlpImpl.scala
@@ -24,7 +24,7 @@ import opennlp.tools.stemmer.*
 import opennlp.tools.tokenize.*
 import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.util.NCUtils
-import 
org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParserStemmer
+import 
org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCOpenNlpTokenParserStemmer
 
 import java.io.*
 import java.util
@@ -39,7 +39,7 @@ import scala.jdk.CollectionConverters.*
   * @param posMdlSrc
   * @param lemmaDicSrc
   */
-class NCEnOpenNlpImpl(tokMdl: String,  posMdlSrc: String, lemmaDicSrc: String, 
stemmer: NCEnOpenNlpTokenParserStemmer) extends NCTokenParser with LazyLogging:
+class NCOpenNlpImpl(tokMdl: String,  posMdlSrc: String, lemmaDicSrc: String, 
stemmer: NCOpenNlpTokenParserStemmer) extends NCTokenParser with LazyLogging:
     @volatile var tagger: POSTaggerME = _
     @volatile var lemmatizer: DictionaryLemmatizer = _
     @volatile var tokenizer: TokenizerME = _
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/impl/en/NCOpenNlpTokenParserStemmerImpl.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/impl/en/NCOpenNlpTokenParserStemmerImpl.java
new file mode 100644
index 0000000..a2bf80e
--- /dev/null
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/impl/en/NCOpenNlpTokenParserStemmerImpl.java
@@ -0,0 +1,13 @@
+package org.apache.nlpcraft.nlp.token.parser.opennlp.en.impl.en;
+
+import opennlp.tools.stemmer.PorterStemmer;
+import 
org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCOpenNlpTokenParserStemmer;
+
+public class NCOpenNlpTokenParserStemmerImpl implements 
NCOpenNlpTokenParserStemmer {
+    private PorterStemmer stemmer = new PorterStemmer();
+
+    @Override
+    public String stem(String s) {
+        return stemmer.stem(s);
+    }
+}
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
index 82f213d..d729f6f 100644
--- 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
+++ 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
@@ -18,9 +18,8 @@
 package org.apache.nlpcraft.nlp.benchmark.token.parser.opennlp;
 
 import org.apache.nlpcraft.nlp.benchmark.NCBenchmarkAdapter;
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser;
-import 
org.apache.nlpcraft.nlp.token.parser.opennlp.en.impl.NCEnOpenNlpTokenParserStemmerImpl;
-import org.apache.nlpcraft.nlp.util.NCTestUtils;
+import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCOpenNlpTokenParser;
+import 
org.apache.nlpcraft.nlp.token.parser.opennlp.en.impl.en.NCOpenNlpTokenParserStemmerImpl;
 import org.junit.jupiter.api.Disabled;
 import org.openjdk.jmh.annotations.*;
 import org.openjdk.jmh.infra.Blackhole;
@@ -31,7 +30,7 @@ import org.openjdk.jmh.infra.Blackhole;
  */
 @Disabled
 public class NCEnOpenNlpTokenParserBenchmark extends NCBenchmarkAdapter {
-    private NCEnOpenNlpTokenParser parser;
+    private NCOpenNlpTokenParser parser;
 
     @Setup
     public void setUp() {
@@ -51,12 +50,12 @@ public class NCEnOpenNlpTokenParserBenchmark extends 
NCBenchmarkAdapter {
     /**
      * @return
      */
-    private static NCEnOpenNlpTokenParser prepareParser() {
-        NCEnOpenNlpTokenParser p = new NCEnOpenNlpTokenParser(
+    private static NCOpenNlpTokenParser prepareParser() {
+        NCOpenNlpTokenParser p = new NCOpenNlpTokenParser(
             "opennlp/en-token.bin",
             "opennlp/en-pos-maxent.bin",
             "opennlp/en-lemmatizer.dict",
-            new NCEnOpenNlpTokenParserStemmerImpl()
+            new NCOpenNlpTokenParserStemmerImpl()
         );
 
         p.start(null); // TODO: fix it.
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala
 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala
index 842ba4f..9ad5fb4 100644
--- 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala
+++ 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala
@@ -20,7 +20,6 @@ package org.apache.nlpcraft.nlp.entity.parser.opennlp
 import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.util.NCUtils
 import org.apache.nlpcraft.nlp.entity.parser.opennlp.NCOpenNlpEntityParser
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
 import org.apache.nlpcraft.nlp.util.*
 import org.junit.jupiter.api.*
 
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserJsonSpec.scala
 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserJsonSpec.scala
index e4c6323..75a867c 100644
--- 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserJsonSpec.scala
+++ 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserJsonSpec.scala
@@ -20,7 +20,6 @@ package org.apache.nlpcraft.nlp.entity.parser.semantic
 import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.util.NCUtils
 import org.apache.nlpcraft.nlp.entity.parser.opennlp.NCOpenNlpEntityParser
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
 import org.apache.nlpcraft.nlp.util.*
 import org.junit.jupiter.api.*
 
@@ -44,7 +43,8 @@ class NCSemanticEntityParserJsonSpec:
         val req = NCTestRequest(txt)
         val res = parser.parse(
             req,
-            NCTestConfig.EN, 
NCTestUtils.mkTokens(NCTestConfig.EN.getTokenParser, req.txt)
+            NCTestConfig.EN, 
+            NCTestUtils.mkTokens(NCTestConfig.EN.getTokenParser, req.txt)
         ).asScala.toSeq
 
         NCTestUtils.printEntities(txt, res)
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserSpec.scala
 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserSpec.scala
index fd09190..bf12f93 100644
--- 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserSpec.scala
+++ 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserSpec.scala
@@ -20,7 +20,6 @@ package org.apache.nlpcraft.nlp.entity.parser.semantic
 import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.util.NCUtils
 import org.apache.nlpcraft.nlp.entity.parser.opennlp.NCOpenNlpEntityParser
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
 import org.apache.nlpcraft.nlp.util.*
 import org.junit.jupiter.api.*
 
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserYamlSpec.scala
 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserYamlSpec.scala
index 36d4960..50c7824 100644
--- 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserYamlSpec.scala
+++ 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserYamlSpec.scala
@@ -20,7 +20,6 @@ package org.apache.nlpcraft.nlp.entity.parser.semantic
 import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.util.NCUtils
 import org.apache.nlpcraft.nlp.entity.parser.opennlp.NCOpenNlpEntityParser
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
 import org.apache.nlpcraft.nlp.util.*
 import org.junit.jupiter.api.*
 
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnBracketsTokenEnricherSpec.scala
 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnBracketsTokenEnricherSpec.scala
index dc63f06..f2c6d45 100644
--- 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnBracketsTokenEnricherSpec.scala
+++ 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnBracketsTokenEnricherSpec.scala
@@ -19,7 +19,6 @@ package org.apache.nlpcraft.nlp.token.enricher.en
 
 import org.apache.nlpcraft.*
 import org.apache.nlpcraft.nlp.token.enricher.en.NCEnBracketsTokenEnricher
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
 import org.apache.nlpcraft.nlp.util.*
 import org.junit.jupiter.api.*
 
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnDictionaryTokenEnricherSpec.scala
 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnDictionaryTokenEnricherSpec.scala
index 2b8a20a..06df2ba 100644
--- 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnDictionaryTokenEnricherSpec.scala
+++ 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnDictionaryTokenEnricherSpec.scala
@@ -18,7 +18,6 @@
 package org.apache.nlpcraft.nlp.token.enricher.en
 
 import org.apache.nlpcraft.nlp.token.enricher.en.NCEnDictionaryTokenEnricher
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
 import org.apache.nlpcraft.nlp.util.*
 import org.junit.jupiter.api.*
 
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnLanguageTokenEnricherSpec.scala
 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnLanguageTokenEnricherSpec.scala
index 6a5eb98..56a2414 100644
--- 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnLanguageTokenEnricherSpec.scala
+++ 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnLanguageTokenEnricherSpec.scala
@@ -18,7 +18,6 @@
 package org.apache.nlpcraft.nlp.token.enricher.en
 
 import org.apache.nlpcraft.nlp.token.enricher.en.NCEnLanguageTokenEnricher
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
 import org.apache.nlpcraft.nlp.util.*
 import org.junit.jupiter.api.*
 
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnQuotesTokenEnricherSpec.scala
 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnQuotesTokenEnricherSpec.scala
index c694f9a..d5eee27 100644
--- 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnQuotesTokenEnricherSpec.scala
+++ 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnQuotesTokenEnricherSpec.scala
@@ -19,7 +19,6 @@ package org.apache.nlpcraft.nlp.token.enricher.en
 
 import org.apache.nlpcraft.NCToken
 import org.apache.nlpcraft.nlp.token.enricher.en.NCEnQuotesTokenEnricher
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
 import org.apache.nlpcraft.nlp.util.*
 import org.junit.jupiter.api.*
 
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnSwearWordsTokenEnricherSpec.scala
 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnSwearWordsTokenEnricherSpec.scala
index df9f47b..d2c183d 100644
--- 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnSwearWordsTokenEnricherSpec.scala
+++ 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnSwearWordsTokenEnricherSpec.scala
@@ -18,7 +18,6 @@
 package org.apache.nlpcraft.nlp.token.enricher.en
 
 import org.apache.nlpcraft.nlp.token.enricher.en.NCEnSwearWordsTokenEnricher
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
 import org.apache.nlpcraft.nlp.util.*
 import org.junit.jupiter.api.*
 
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParserSpec.scala
 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParserSpec.scala
index d4dd0cc..c84dd99 100644
--- 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParserSpec.scala
+++ 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParserSpec.scala
@@ -20,7 +20,6 @@ package org.apache.nlpcraft.nlp.token.parser.opennlp.en
 import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.ascii.NCAsciiTable
 import org.apache.nlpcraft.nlp.token.enricher.en.{NCEnBracketsTokenEnricher, 
NCEnStopWordsTokenEnricher}
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
 import org.apache.nlpcraft.nlp.util.*
 import org.junit.jupiter.api.*
 
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestConfig.scala 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestConfig.scala
index 4934c11..88f5a74 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestConfig.scala
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestConfig.scala
@@ -20,6 +20,7 @@ package org.apache.nlpcraft.nlp.util
 import org.apache.nlpcraft.*
 import org.apache.nlpcraft.nlp.token.parser.opennlp.en.*
 import org.apache.nlpcraft.nlp.token.parser.opennlp.en.impl.*
+import 
org.apache.nlpcraft.nlp.token.parser.opennlp.en.impl.en.NCOpenNlpTokenParserStemmerImpl
 
 import java.util.{Optional, ArrayList as JAList, List as JList}
 
@@ -29,11 +30,11 @@ import java.util.{Optional, ArrayList as JAList, List as 
JList}
 object NCTestConfig:
     final val EN: NCModelConfig = new NCPropertyMapAdapter() with 
NCModelConfig:
         private val p =
-            new NCEnOpenNlpTokenParser(
+            new NCOpenNlpTokenParser(
                 "opennlp/en-token.bin",
                 "opennlp/en-pos-maxent.bin",
                 "opennlp/en-lemmatizer.dict",
-                new NCEnOpenNlpTokenParserStemmerImpl()
+                new NCOpenNlpTokenParserStemmerImpl()
             )
 
         override def getTokenParser: NCTokenParser = p
diff --git 
a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestUtils.scala 
b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestUtils.scala
index ac01f0d..a90922b 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestUtils.scala
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestUtils.scala
@@ -19,7 +19,6 @@ package org.apache.nlpcraft.nlp.util
 
 import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.ascii.NCAsciiTable
-import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
 
 import java.util
 import scala.jdk.CollectionConverters.*

Reply via email to