This is an automated email from the ASF dual-hosted git repository.
sergeykamov pushed a commit to branch NLPCRAFT-483-1
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-483-1 by this push:
new f98b960 WIP.
f98b960 is described below
commit f98b960ad064ca931bfce600aa5c8e446b284e53
Author: Sergey Kamov <[email protected]>
AuthorDate: Sat Mar 12 13:01:40 2022 +0300
WIP.
---
.../examples/lightswitch/LightSwitchRuModel.scala | 13 +--
.../entity/parser/NCRuSemanticEntityParser.scala | 2 +-
.../lightswitch/LightSwitchGroovyModel.groovy | 4 +-
.../examples/lightswitch/LightSwitchJavaModel.java | 4 +-
.../examples/lightswitch/LightSwitchKotlinModel.kt | 4 +-
.../lightswitch/LightSwitchScalaModel.scala | 9 +-
.../apache/nlpcraft/examples/time/TimeModel.java | 8 +-
.../apache/nlpcraft/NCModelPipelineBuilder.java | 125 ++++++++-------------
.../apache/nlpcraft/NCModelPipelineLanguage.java | 25 -----
.../entity/parser/NCEnSemanticEntityParser.java | 7 +-
.../entity/parser/NCNLPEntityParser.java | 4 +-
.../entity/parser/NCOpenNLPEntityParser.java | 4 +-
.../entity/parser/NCSemanticElement.java | 2 +-
.../entity/parser/NCSemanticEntityParser.java | 4 +-
.../entity/parser/NCSemanticStemmer.java | 2 +-
.../entity/parser/impl/NCNLPEntityParserImpl.scala | 4 +-
.../parser/impl/NCOpenNLPEntityParserImpl.scala | 2 +-
.../parser/impl/NCSemanticEntityParserImpl.scala | 12 +-
.../parser/impl/NCSemanticSourceReader.scala | 6 +-
.../entity/parser/impl/NCSemanticSynonym.scala | 4 +-
.../parser/impl/NCSemanticSynonymsProcessor.scala | 6 +-
.../token/enricher/NCENBracketsTokenEnricher.java | 4 +-
.../enricher/NCENDictionaryTokenEnricher.java | 4 +-
.../enricher/NCENOpenNlpLemmaPosTokenEnricher.java | 4 +-
.../token/enricher/NCENQuotesTokenEnricher.java | 4 +-
.../token/enricher/NCENStopWordsTokenEnricher.java | 4 +-
.../enricher/NCOpenNlpLemmaPosTokenEnricher.java | 4 +-
.../N\320\241ENSwearWordsTokenEnricher.java" | 4 +-
.../impl/NCENBracketsTokenEnricherImpl.scala | 2 +-
.../impl/NCENDictionaryTokenEnricherImpl.scala | 2 +-
.../impl/NCENQuotesTokenEnricherImpl.scala | 2 +-
.../enricher/impl/NCENStopWordGenerator.scala | 2 +-
.../impl/NCENStopWordsTokenEnricherImpl.scala | 6 +-
.../impl/NCENSwearWordsTokenEnricherImpl.scala | 2 +-
.../impl/NCLemmaPosTokenEnricherImpl.scala | 2 +-
.../token/parser/NCENOpenNLPTokenParser.java | 4 +-
.../token/parser/NCOpenNLPTokenParser.java | 4 +-
.../parser/impl/NCOpenNLPTokenParserImpl.scala | 2 +-
.../internal/impl/NCModelCallbacksSpec.scala | 3 +-
.../nlpcraft/internal/impl/NCModelClientSpec.scala | 3 +-
.../internal/impl/NCModelPingPongSpec.scala | 3 +-
.../internal/impl/NCModelPipelineManagerSpec.scala | 5 +-
.../nlpcraft/nlp/NCENDefaultPipelineSpec.scala | 8 +-
.../opennlp/NCEnOpenNlpTokenParserBenchmark.java | 2 +-
.../entity/parser/nlp/NCNLPEntityParserSpec.scala | 2 +-
.../parser/opennlp/NCOpenNLPEntityParserSpec.scala | 2 +-
.../semantic/NCSemanticEntityParserJsonSpec.scala | 5 +-
.../semantic/NCSemanticEntityParserSpec.scala | 5 +-
.../semantic/NCSemanticEntityParserYamlSpec.scala | 3 +-
.../enricher/en/NCBracketsTokenEnricherSpec.scala | 2 +-
.../en/NCDictionaryTokenEnricherSpec.scala | 2 +-
.../enricher/en/NCQuotesTokenEnricherSpec.scala | 2 +-
.../enricher/en/NCStopWordsEnricherSpec.scala | 2 +-
.../en/NCSwearWordsTokenEnricherSpec.scala | 2 +-
.../enricher/en/impl/NCStopWordsImplSpec.scala | 2 +-
.../parser/opennlp/NCOpenNLPTokenParserSpec.scala | 2 +-
.../apache/nlpcraft/nlp/util/NCTestPipeline.scala | 2 +-
.../nlpcraft/nlp/util/opennlp/NCTestConfig.scala | 2 +-
.../nlp/util/opennlp/NCTestConfigJava.java | 2 +-
59 files changed, 146 insertions(+), 222 deletions(-)
diff --git
a/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchRuModel.scala
b/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchRuModel.scala
index 41c1d8d..f3e144b 100644
---
a/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchRuModel.scala
+++
b/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchRuModel.scala
@@ -21,9 +21,9 @@ import org.apache.nlpcraft.*
import
org.apache.nlpcraft.examples.lightswitch.nlp.entity.parser.NCRuSemanticEntityParser
import
org.apache.nlpcraft.examples.lightswitch.nlp.token.enricher.{NCRuLemmaPosTokenEnricher,
NCRuStopWordsTokenEnricher}
import
org.apache.nlpcraft.examples.lightswitch.nlp.token.parser.NCRuTokenParser
-import org.apache.nlpcraft.nlp.en.token.enricher.NCENStopWordsTokenEnricher
-import org.apache.nlpcraft.nlp.mult.entity.parser.{NCNLPEntityParser,
NCSemanticEntityParser}
-import org.apache.nlpcraft.nlp.mult.token.parser.NCOpenNLPTokenParser
+import org.apache.nlpcraft.nlp.entity.parser.{NCNLPEntityParser,
NCSemanticEntityParser}
+import org.apache.nlpcraft.nlp.token.enricher.NCENStopWordsTokenEnricher
+import org.apache.nlpcraft.nlp.token.parser.NCOpenNLPTokenParser
import java.util
import scala.jdk.CollectionConverters.*
@@ -42,12 +42,11 @@ import scala.jdk.CollectionConverters.*
*/
class LightSwitchRuModel extends NCModelAdapter(
new NCModelConfig("nlpcraft.lightswitch.ru.ex", "LightSwitch Example Model
RU", "1.0"),
- new NCModelPipelineBuilder(
- new NCRuTokenParser(),
- new NCRuSemanticEntityParser("lightswitch_model_ru.yaml")
- ).
+ new NCModelPipelineBuilder().
+ withTokenParser(new NCRuTokenParser()).
withTokenEnricher(new NCRuLemmaPosTokenEnricher()).
withTokenEnricher(new NCRuStopWordsTokenEnricher()).
+ withEntityParser(new
NCRuSemanticEntityParser("lightswitch_model_ru.yaml")).
build()
):
/**
diff --git
a/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/nlp/entity/parser/NCRuSemanticEntityParser.scala
b/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/nlp/entity/parser/NCRuSemanticEntityParser.scala
index 7799fae..19ea166 100644
---
a/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/nlp/entity/parser/NCRuSemanticEntityParser.scala
+++
b/nlpcraft-examples/lightswitch-ru/src/main/java/org/apache/nlpcraft/examples/lightswitch/nlp/entity/parser/NCRuSemanticEntityParser.scala
@@ -19,7 +19,7 @@ package
org.apache.nlpcraft.examples.lightswitch.nlp.entity.parser
import opennlp.tools.stemmer.snowball.SnowballStemmer
import
org.apache.nlpcraft.examples.lightswitch.nlp.token.parser.NCRuTokenParser
-import org.apache.nlpcraft.nlp.mult.entity.parser.*
+import org.apache.nlpcraft.nlp.entity.parser.*
/**
*
diff --git
a/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchGroovyModel.groovy
b/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchGroovyModel.groovy
index 38db9ad..be9e5f1 100644
---
a/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchGroovyModel.groovy
+++
b/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchGroovyModel.groovy
@@ -18,7 +18,7 @@
package org.apache.nlpcraft.examples.lightswitch
import org.apache.nlpcraft.*
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser
+import org.apache.nlpcraft.nlp.entity.parser.NCEnSemanticEntityParser
/**
* This example provides very simple implementation for NLI-powered light
switch.
@@ -36,7 +36,7 @@ class LightSwitchGroovyModel extends NCModelAdapter {
LightSwitchGroovyModel() {
super(
new NCModelConfig("nlpcraft.lightswitch.java.ex", "LightSwitch
Example Model", "1.0"),
- new NCModelPipelineBuilder(NCModelPipelineLanguage.EN, new
NCEnSemanticEntityParser("lightswitch_model.yaml")).build()
+ new
NCModelPipelineBuilder().withLanguage("EN").withEntityParser(new
NCEnSemanticEntityParser("lightswitch_model.yaml")).build()
)
}
diff --git
a/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchJavaModel.java
b/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchJavaModel.java
index 97c6a0f..825639a 100644
---
a/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchJavaModel.java
+++
b/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchJavaModel.java
@@ -18,7 +18,7 @@
package org.apache.nlpcraft.examples.lightswitch;
import org.apache.nlpcraft.*;
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser;
+import org.apache.nlpcraft.nlp.entity.parser.NCEnSemanticEntityParser;
import java.util.List;
import java.util.stream.Collectors;
@@ -39,7 +39,7 @@ public class LightSwitchJavaModel extends NCModelAdapter {
public LightSwitchJavaModel() {
super(
new NCModelConfig("nlpcraft.lightswitch.java.ex", "LightSwitch
Example Model", "1.0"),
- new NCModelPipelineBuilder(NCModelPipelineLanguage.EN, new
NCEnSemanticEntityParser("lightswitch_model.yaml")).build()
+ new
NCModelPipelineBuilder().withLanguage("EN").withEntityParser(new
NCEnSemanticEntityParser("lightswitch_model.yaml")).build()
);
}
diff --git
a/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchKotlinModel.kt
b/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchKotlinModel.kt
index a4248cf..5e3b1d4 100644
---
a/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchKotlinModel.kt
+++
b/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchKotlinModel.kt
@@ -19,7 +19,7 @@ package org.apache.nlpcraft.examples.lightswitch
import org.apache.nlpcraft.*
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser
+import org.apache.nlpcraft.nlp.entity.parser.NCEnSemanticEntityParser
import java.util.*
import java.util.stream.Collectors
@@ -38,7 +38,7 @@ import java.util.stream.Collectors
*/
class LightSwitchKotlinModel : NCModelAdapter(
NCModelConfig("nlpcraft.lightswitch.kotlin.ex", "LightSwitch Example
Model", "1.0"),
- NCModelPipelineBuilder(NCModelPipelineLanguage.EN,
NCEnSemanticEntityParser("lightswitch_model.yaml")).build()
+
NCModelPipelineBuilder().withLanguage("EN").withEntityParser(NCEnSemanticEntityParser("lightswitch_model.yaml")).build()
) {
/**
* Intent and its on-match callback.
diff --git
a/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchScalaModel.scala
b/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchScalaModel.scala
index 6ac21f3..f3a85b6 100644
---
a/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchScalaModel.scala
+++
b/nlpcraft-examples/lightswitch/src/main/java/org/apache/nlpcraft/examples/lightswitch/LightSwitchScalaModel.scala
@@ -20,10 +20,9 @@ package org.apache.nlpcraft.examples.lightswitch
import org.apache.nlpcraft.*
import org.apache.nlpcraft.internal.util.NCResourceReader
import org.apache.nlpcraft.nlp.*
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser
-import org.apache.nlpcraft.nlp.en.token.enricher.NCENStopWordsTokenEnricher
-import org.apache.nlpcraft.nlp.mult.entity.parser.{NCNLPEntityParser,
NCSemanticEntityParser}
-import org.apache.nlpcraft.nlp.mult.token.parser.NCOpenNLPTokenParser
+import org.apache.nlpcraft.nlp.entity.parser.{NCEnSemanticEntityParser,
NCNLPEntityParser, NCSemanticEntityParser}
+import org.apache.nlpcraft.nlp.token.enricher.NCENStopWordsTokenEnricher
+import org.apache.nlpcraft.nlp.token.parser.NCOpenNLPTokenParser
/**
* This example provides very simple implementation for NLI-powered light
switch.
@@ -40,7 +39,7 @@ import
org.apache.nlpcraft.nlp.mult.token.parser.NCOpenNLPTokenParser
class LightSwitchScalaModel extends NCModelAdapter(
new NCModelConfig("nlpcraft.lightswitch.java.ex", "LightSwitch Example
Model", "1.0"),
- new NCModelPipelineBuilder(NCModelPipelineLanguage.EN, new
NCEnSemanticEntityParser("lightswitch_model.yaml")).build()
+ new NCModelPipelineBuilder().withLanguage("EN").withEntityParser(new
NCEnSemanticEntityParser("lightswitch_model.yaml")).build()
):
/**
* Intent and its on-match callback.
diff --git
a/nlpcraft-examples/time/src/main/java/org/apache/nlpcraft/examples/time/TimeModel.java
b/nlpcraft-examples/time/src/main/java/org/apache/nlpcraft/examples/time/TimeModel.java
index b1a43dc..09c4295 100644
---
a/nlpcraft-examples/time/src/main/java/org/apache/nlpcraft/examples/time/TimeModel.java
+++
b/nlpcraft-examples/time/src/main/java/org/apache/nlpcraft/examples/time/TimeModel.java
@@ -29,7 +29,6 @@ import org.apache.nlpcraft.NCIntentTerm;
import org.apache.nlpcraft.NCModelAdapter;
import org.apache.nlpcraft.NCModelConfig;
import org.apache.nlpcraft.NCModelPipelineBuilder;
-import org.apache.nlpcraft.NCModelPipelineLanguage;
import org.apache.nlpcraft.NCRejection;
import org.apache.nlpcraft.NCResult;
import org.apache.nlpcraft.NCResultType;
@@ -38,7 +37,7 @@ import org.apache.nlpcraft.examples.time.utils.cities.City;
import org.apache.nlpcraft.examples.time.utils.cities.CityData;
import org.apache.nlpcraft.examples.time.utils.keycdn.GeoData;
import org.apache.nlpcraft.examples.time.utils.keycdn.GeoManager;
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser;
+import org.apache.nlpcraft.nlp.entity.parser.NCEnSemanticEntityParser;
import java.time.ZoneId;
import java.time.ZonedDateTime;
@@ -77,10 +76,7 @@ public class TimeModel extends NCModelAdapter {
public TimeModel() {
super(
new NCModelConfig("nlpcraft.time.ex", "Time Example Model", "1.0"),
- new NCModelPipelineBuilder(
- NCModelPipelineLanguage.EN,
- new NCEnSemanticEntityParser("time_model.yaml")
- ).build()
+ new
NCModelPipelineBuilder().withLanguage("EN").withEntityParser(new
NCEnSemanticEntityParser("time_model.yaml")).build()
);
}
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelPipelineBuilder.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelPipelineBuilder.java
index a80c5c6..ec30a45 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelPipelineBuilder.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelPipelineBuilder.java
@@ -18,13 +18,13 @@
package org.apache.nlpcraft;
import org.apache.nlpcraft.internal.util.NCResourceReader;
-import org.apache.nlpcraft.nlp.en.token.enricher.NCENBracketsTokenEnricher;
-import org.apache.nlpcraft.nlp.en.token.enricher.NCENDictionaryTokenEnricher;
-import
org.apache.nlpcraft.nlp.en.token.enricher.NCENOpenNlpLemmaPosTokenEnricher;
-import org.apache.nlpcraft.nlp.en.token.enricher.NCENQuotesTokenEnricher;
-import org.apache.nlpcraft.nlp.en.token.enricher.NCENStopWordsTokenEnricher;
-import org.apache.nlpcraft.nlp.en.token.enricher.NСENSwearWordsTokenEnricher;
-import org.apache.nlpcraft.nlp.en.token.parser.NCENOpenNLPTokenParser;
+import org.apache.nlpcraft.nlp.token.enricher.NCENBracketsTokenEnricher;
+import org.apache.nlpcraft.nlp.token.enricher.NCENDictionaryTokenEnricher;
+import org.apache.nlpcraft.nlp.token.enricher.NCENOpenNlpLemmaPosTokenEnricher;
+import org.apache.nlpcraft.nlp.token.enricher.NCENQuotesTokenEnricher;
+import org.apache.nlpcraft.nlp.token.enricher.NCENStopWordsTokenEnricher;
+import org.apache.nlpcraft.nlp.token.enricher.NСENSwearWordsTokenEnricher;
+import org.apache.nlpcraft.nlp.token.parser.NCENOpenNLPTokenParser;
import java.util.ArrayList;
import java.util.Arrays;
@@ -36,8 +36,7 @@ import java.util.Optional;
*
*/
public class NCModelPipelineBuilder {
-
- private final NCTokenParser tokParser;
+ private NCTokenParser tokParser;
private final List<NCTokenEnricher> tokEnrichers = new ArrayList<>();
private final List<NCEntityEnricher> entEnrichers = new ArrayList<>();
private final List<NCEntityParser> entParsers = new ArrayList<>();
@@ -46,75 +45,6 @@ public class NCModelPipelineBuilder {
private Optional<NCVariantFilter> varFilter = Optional.empty();
/**
- *
- * @param id
- * @param name
- * @param version
- */
- public NCModelPipelineBuilder(NCTokenParser tokParser,
List<NCEntityParser> entParsers) {
- Objects.requireNonNull(tokParser, "Token parser cannot be null.");
- Objects.requireNonNull(entParsers, "Entity parsers cannot be null.");
- if (entParsers.isEmpty())
- throw new IllegalArgumentException("At least one entity parser
must be defined.");
-
- this.tokParser = tokParser;
- this.entParsers.addAll(entParsers);
- }
-
- /**
- *
- * @param tokParser
- * @param entParsers
- */
- public NCModelPipelineBuilder(NCTokenParser tokParser, NCEntityParser...
entParsers) {
- this(tokParser, Arrays.asList(entParsers));
- }
-
- /**
- * TODO:
- * EN Nlp component set. Note it used OpenNLP token parser implementation.
- * @param lang
- * @param entParsers
- */
- public NCModelPipelineBuilder(NCModelPipelineLanguage lang,
List<NCEntityParser> entParsers) {
- Objects.requireNonNull(lang, "Language cannot be null.");
- Objects.requireNonNull(entParsers, "Entity parsers cannot be null.");
- if (entParsers.isEmpty())
- throw new IllegalArgumentException("At least one entity parser
must be defined.");
-
- switch (lang) {
- case EN:
- tokParser = new NCENOpenNLPTokenParser();
-
- tokEnrichers.add(new NCENOpenNlpLemmaPosTokenEnricher());
- tokEnrichers.add(new NCENStopWordsTokenEnricher());
- tokEnrichers.add(new
NСENSwearWordsTokenEnricher(NCResourceReader.getPath("badfilter/swear_words.txt")));
- tokEnrichers.add(new NCENQuotesTokenEnricher());
- tokEnrichers.add(new NCENDictionaryTokenEnricher());
- tokEnrichers.add(new NCENBracketsTokenEnricher());
-
- this.entParsers.addAll(entParsers);
-
- break;
- default:
- throw new IllegalArgumentException("Unsupported language: " +
lang);
- }
-
- }
-
- /**
- * TODO:
- * EN Nlp component set. Note it used OpenNLP token parser implementation.
- *
- * @param lang
- * @param entParsers
- */
- public NCModelPipelineBuilder(NCModelPipelineLanguage lang,
NCEntityParser... entParsers) {
- this(lang, Arrays.asList(entParsers));
- }
-
-
- /**
* @param tokEnrichers
* @return This instance for call chaining.
*/
@@ -250,9 +180,48 @@ public class NCModelPipelineBuilder {
}
/**
+ *
+ * @param tokParser
+ * @return
+ */
+ public NCModelPipelineBuilder withTokenParser(NCTokenParser tokParser) {
+ Objects.requireNonNull(tokParser, "Token parser cannot be null.");
+
+ this.tokParser = tokParser;
+
+ return this;
+ }
+
+ public NCModelPipelineBuilder withLanguage(String lang) {
+ Objects.requireNonNull(lang, "Language cannot be null.");
+
+ switch (lang.toUpperCase()) {
+ case "EN":
+ tokParser = new NCENOpenNLPTokenParser();
+
+ tokEnrichers.add(new NCENOpenNlpLemmaPosTokenEnricher());
+ tokEnrichers.add(new NCENStopWordsTokenEnricher());
+ tokEnrichers.add(new
NСENSwearWordsTokenEnricher(NCResourceReader.getPath("badfilter/swear_words.txt")));
+ tokEnrichers.add(new NCENQuotesTokenEnricher());
+ tokEnrichers.add(new NCENDictionaryTokenEnricher());
+ tokEnrichers.add(new NCENBracketsTokenEnricher());
+
+ this.entParsers.addAll(entParsers);
+
+ break;
+ default:
+ throw new IllegalArgumentException("Unsupported language: " +
lang);
+ }
+
+ return this;
+ }
+
+ /**
* @return
*/
public NCModelPipeline build() {
+ Objects.requireNonNull(tokParser, "Token parser cannot be null.");
+
return new NCModelPipeline() {
@Override public NCTokenParser getTokenParser() {
return tokParser;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelPipelineLanguage.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelPipelineLanguage.java
deleted file mode 100644
index 4fab6fe..0000000
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelPipelineLanguage.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.nlpcraft;
-
-/**
- *
- */
-public enum NCModelPipelineLanguage {
- EN
-}
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/entity/parser/NCEnSemanticEntityParser.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCEnSemanticEntityParser.java
similarity index 84%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/entity/parser/NCEnSemanticEntityParser.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCEnSemanticEntityParser.java
index 1d64b69..4860677 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/entity/parser/NCEnSemanticEntityParser.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCEnSemanticEntityParser.java
@@ -15,14 +15,11 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.entity.parser;
+package org.apache.nlpcraft.nlp.entity.parser;
import opennlp.tools.stemmer.PorterStemmer;
import org.apache.nlpcraft.NCTokenParser;
-import org.apache.nlpcraft.nlp.en.token.parser.NCENOpenNLPTokenParser;
-import org.apache.nlpcraft.nlp.mult.entity.parser.NCSemanticElement;
-import org.apache.nlpcraft.nlp.mult.entity.parser.NCSemanticEntityParser;
-import org.apache.nlpcraft.nlp.mult.entity.parser.NCSemanticStemmer;
+import org.apache.nlpcraft.nlp.token.parser.NCENOpenNLPTokenParser;
import java.util.List;
import java.util.Map;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCNLPEntityParser.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCNLPEntityParser.java
similarity index 92%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCNLPEntityParser.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCNLPEntityParser.java
index 827bb2b..d2e2b6f 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCNLPEntityParser.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCNLPEntityParser.java
@@ -15,14 +15,14 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.entity.parser;
+package org.apache.nlpcraft.nlp.entity.parser;
import org.apache.nlpcraft.NCEntity;
import org.apache.nlpcraft.NCEntityParser;
import org.apache.nlpcraft.NCModelConfig;
import org.apache.nlpcraft.NCRequest;
import org.apache.nlpcraft.NCToken;
-import org.apache.nlpcraft.nlp.mult.entity.parser.impl.NCNLPEntityParserImpl;
+import org.apache.nlpcraft.nlp.entity.parser.impl.NCNLPEntityParserImpl;
import java.util.List;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCOpenNLPEntityParser.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCOpenNLPEntityParser.java
similarity index 94%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCOpenNLPEntityParser.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCOpenNLPEntityParser.java
index cf9de88..270e39d 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCOpenNLPEntityParser.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCOpenNLPEntityParser.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.entity.parser;
+package org.apache.nlpcraft.nlp.entity.parser;
import org.apache.nlpcraft.NCEntity;
import org.apache.nlpcraft.NCEntityParser;
@@ -23,7 +23,7 @@ import org.apache.nlpcraft.NCException;
import org.apache.nlpcraft.NCModelConfig;
import org.apache.nlpcraft.NCRequest;
import org.apache.nlpcraft.NCToken;
-import
org.apache.nlpcraft.nlp.mult.entity.parser.impl.NCOpenNLPEntityParserImpl;
+import org.apache.nlpcraft.nlp.entity.parser.impl.NCOpenNLPEntityParserImpl;
import java.util.List;
import java.util.Objects;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCSemanticElement.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCSemanticElement.java
similarity index 96%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCSemanticElement.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCSemanticElement.java
index 99acb51..393ad64 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCSemanticElement.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCSemanticElement.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.entity.parser;
+package org.apache.nlpcraft.nlp.entity.parser;
import java.util.Collections;
import java.util.Map;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCSemanticEntityParser.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCSemanticEntityParser.java
similarity index 96%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCSemanticEntityParser.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCSemanticEntityParser.java
index 5addb13..59cfdf3 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCSemanticEntityParser.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCSemanticEntityParser.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.entity.parser;
+package org.apache.nlpcraft.nlp.entity.parser;
import org.apache.nlpcraft.NCEntity;
import org.apache.nlpcraft.NCEntityParser;
@@ -24,7 +24,7 @@ import org.apache.nlpcraft.NCModelConfig;
import org.apache.nlpcraft.NCRequest;
import org.apache.nlpcraft.NCToken;
import org.apache.nlpcraft.NCTokenParser;
-import
org.apache.nlpcraft.nlp.mult.entity.parser.impl.NCSemanticEntityParserImpl;
+import org.apache.nlpcraft.nlp.entity.parser.impl.NCSemanticEntityParserImpl;
import java.util.Collections;
import java.util.List;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCSemanticStemmer.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCSemanticStemmer.java
similarity index 94%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCSemanticStemmer.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCSemanticStemmer.java
index 367ea92..2b17cb0 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/NCSemanticStemmer.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCSemanticStemmer.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.entity.parser;
+package org.apache.nlpcraft.nlp.entity.parser;
/**
*
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCNLPEntityParserImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCNLPEntityParserImpl.scala
similarity index 92%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCNLPEntityParserImpl.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCNLPEntityParserImpl.scala
index 069bea8..0171bc6 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCNLPEntityParserImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCNLPEntityParserImpl.scala
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.entity.parser.impl
+package org.apache.nlpcraft.nlp.entity.parser.impl
import org.apache.nlpcraft.*
@@ -29,7 +29,7 @@ import java.util.stream.Collectors
object NCNLPEntityParserImpl:
private def id = "nlp:token"
-import org.apache.nlpcraft.nlp.mult.entity.parser.impl.NCNLPEntityParserImpl.*
+import org.apache.nlpcraft.nlp.entity.parser.impl.NCNLPEntityParserImpl.*
/**
*
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCOpenNLPEntityParserImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCOpenNLPEntityParserImpl.scala
similarity index 97%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCOpenNLPEntityParserImpl.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCOpenNLPEntityParserImpl.scala
index 9400fcc..9498493 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCOpenNLPEntityParserImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCOpenNLPEntityParserImpl.scala
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.entity.parser.impl
+package org.apache.nlpcraft.nlp.entity.parser.impl
import com.typesafe.scalalogging.LazyLogging
import opennlp.tools.namefind.*
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCSemanticEntityParserImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCSemanticEntityParserImpl.scala
similarity index 96%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCSemanticEntityParserImpl.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCSemanticEntityParserImpl.scala
index 7de4cde..2b4e35b 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCSemanticEntityParserImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCSemanticEntityParserImpl.scala
@@ -15,16 +15,16 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.entity.parser.impl
+package org.apache.nlpcraft.nlp.entity.parser.impl
import com.typesafe.scalalogging.LazyLogging
import org.apache.nlpcraft.*
import org.apache.nlpcraft.internal.makro.NCMacroParser
import org.apache.nlpcraft.internal.util.NCUtils
-import org.apache.nlpcraft.nlp.mult.entity.parser.*
-import org.apache.nlpcraft.nlp.mult.entity.parser.impl.NCSemanticChunkKind.*
-import
org.apache.nlpcraft.nlp.mult.entity.parser.impl.NCSemanticEntityParserImpl.combine
-import org.apache.nlpcraft.nlp.mult.entity.parser.impl.NCSemanticSourceType.*
+import org.apache.nlpcraft.nlp.entity.parser.impl.NCSemanticChunkKind.*
+import
org.apache.nlpcraft.nlp.entity.parser.impl.NCSemanticEntityParserImpl.combine
+import org.apache.nlpcraft.nlp.entity.parser.impl.NCSemanticSourceType.*
+import org.apache.nlpcraft.nlp.entity.parser.*
import java.io.*
import java.util
@@ -158,7 +158,7 @@ object NCSemanticEntityParserImpl:
else if i >= data1.size then tmp
else combine(data1, data2, i + 1, tmp.map(_ :+ data1(i)) ++ tmp.map(_
:+ data2(i)))
-import
org.apache.nlpcraft.nlp.mult.entity.parser.impl.NCSemanticEntityParserImpl.*
+import org.apache.nlpcraft.nlp.entity.parser.impl.NCSemanticEntityParserImpl.*
/**
*
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCSemanticSourceReader.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCSemanticSourceReader.scala
similarity index 94%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCSemanticSourceReader.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCSemanticSourceReader.scala
index edb65e6..82d3b3e 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCSemanticSourceReader.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCSemanticSourceReader.scala
@@ -14,15 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.entity.parser.impl
+package org.apache.nlpcraft.nlp.entity.parser.impl
import com.fasterxml.jackson.core.JsonParser
import com.fasterxml.jackson.databind.*
import com.fasterxml.jackson.dataformat.yaml.*
import com.fasterxml.jackson.module.scala.DefaultScalaModule
import org.apache.nlpcraft.*
-import org.apache.nlpcraft.nlp.mult.entity.parser.NCSemanticElement
-import org.apache.nlpcraft.nlp.mult.entity.parser.impl.NCSemanticSourceType.*
+import org.apache.nlpcraft.nlp.entity.parser.NCSemanticElement
+import org.apache.nlpcraft.nlp.entity.parser.impl.NCSemanticSourceType.*
import java.io.InputStream
import java.util
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCSemanticSynonym.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCSemanticSynonym.scala
similarity index 93%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCSemanticSynonym.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCSemanticSynonym.scala
index 9c130d6..1c24188 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCSemanticSynonym.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCSemanticSynonym.scala
@@ -14,10 +14,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.entity.parser.impl
+package org.apache.nlpcraft.nlp.entity.parser.impl
import org.apache.nlpcraft.NCToken
-import org.apache.nlpcraft.nlp.mult.entity.parser.impl.NCSemanticChunkKind.*
+import org.apache.nlpcraft.nlp.entity.parser.impl.NCSemanticChunkKind.*
import java.util.regex.Pattern
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCSemanticSynonymsProcessor.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCSemanticSynonymsProcessor.scala
similarity index 97%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCSemanticSynonymsProcessor.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCSemanticSynonymsProcessor.scala
index b3c3410..5e35ce0 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/entity/parser/impl/NCSemanticSynonymsProcessor.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/impl/NCSemanticSynonymsProcessor.scala
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.entity.parser.impl
+package org.apache.nlpcraft.nlp.entity.parser.impl
import com.fasterxml.jackson.databind.*
import com.fasterxml.jackson.dataformat.yaml.*
@@ -23,8 +23,8 @@ import com.typesafe.scalalogging.LazyLogging
import org.apache.nlpcraft.*
import org.apache.nlpcraft.internal.makro.NCMacroParser
import org.apache.nlpcraft.internal.util.NCUtils
-import org.apache.nlpcraft.nlp.mult.entity.parser.*
-import org.apache.nlpcraft.nlp.mult.entity.parser.impl.NCSemanticChunkKind.*
+import org.apache.nlpcraft.nlp.entity.parser.impl.NCSemanticChunkKind.*
+import org.apache.nlpcraft.nlp.entity.parser.*
import java.io.InputStream
import java.util
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENBracketsTokenEnricher.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENBracketsTokenEnricher.java
similarity index 92%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENBracketsTokenEnricher.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENBracketsTokenEnricher.java
index 684248d..4db42c0 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENBracketsTokenEnricher.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENBracketsTokenEnricher.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.token.enricher;
+package org.apache.nlpcraft.nlp.token.enricher;
import org.apache.nlpcraft.NCModelConfig;
import org.apache.nlpcraft.NCRequest;
import org.apache.nlpcraft.NCToken;
import org.apache.nlpcraft.NCTokenEnricher;
-import
org.apache.nlpcraft.nlp.en.token.enricher.impl.NCENBracketsTokenEnricherImpl;
+import
org.apache.nlpcraft.nlp.token.enricher.impl.NCENBracketsTokenEnricherImpl;
import java.util.List;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENDictionaryTokenEnricher.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENDictionaryTokenEnricher.java
similarity index 91%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENDictionaryTokenEnricher.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENDictionaryTokenEnricher.java
index 9a70962..12dc453 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENDictionaryTokenEnricher.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENDictionaryTokenEnricher.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.token.enricher;
+package org.apache.nlpcraft.nlp.token.enricher;
import org.apache.nlpcraft.NCModelConfig;
import org.apache.nlpcraft.NCRequest;
import org.apache.nlpcraft.NCToken;
import org.apache.nlpcraft.NCTokenEnricher;
-import
org.apache.nlpcraft.nlp.en.token.enricher.impl.NCENDictionaryTokenEnricherImpl;
+import
org.apache.nlpcraft.nlp.token.enricher.impl.NCENDictionaryTokenEnricherImpl;
import java.util.List;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENOpenNlpLemmaPosTokenEnricher.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENOpenNlpLemmaPosTokenEnricher.java
similarity index 92%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENOpenNlpLemmaPosTokenEnricher.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENOpenNlpLemmaPosTokenEnricher.java
index 58eeb10..a3ad5c3 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENOpenNlpLemmaPosTokenEnricher.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENOpenNlpLemmaPosTokenEnricher.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.token.enricher;
+package org.apache.nlpcraft.nlp.token.enricher;
import org.apache.nlpcraft.internal.util.NCResourceReader;
-import
org.apache.nlpcraft.nlp.mult.token.enricher.NCOpenNlpLemmaPosTokenEnricher;
+import org.apache.nlpcraft.nlp.token.enricher.NCOpenNlpLemmaPosTokenEnricher;
/**
* TODO: enriches with <code>lemma</code> and <code>pos</code> properties.
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENQuotesTokenEnricher.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENQuotesTokenEnricher.java
similarity index 92%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENQuotesTokenEnricher.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENQuotesTokenEnricher.java
index 9afb145..fdf0d0e 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENQuotesTokenEnricher.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENQuotesTokenEnricher.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.token.enricher;
+package org.apache.nlpcraft.nlp.token.enricher;
import org.apache.nlpcraft.NCModelConfig;
import org.apache.nlpcraft.NCRequest;
import org.apache.nlpcraft.NCToken;
import org.apache.nlpcraft.NCTokenEnricher;
-import
org.apache.nlpcraft.nlp.en.token.enricher.impl.NCENQuotesTokenEnricherImpl;
+import org.apache.nlpcraft.nlp.token.enricher.impl.NCENQuotesTokenEnricherImpl;
import java.util.List;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENStopWordsTokenEnricher.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENStopWordsTokenEnricher.java
similarity index 93%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENStopWordsTokenEnricher.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENStopWordsTokenEnricher.java
index afbeedd..2d7bc4e 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/NCENStopWordsTokenEnricher.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCENStopWordsTokenEnricher.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.token.enricher;
+package org.apache.nlpcraft.nlp.token.enricher;
import org.apache.nlpcraft.NCModelConfig;
import org.apache.nlpcraft.NCRequest;
import org.apache.nlpcraft.NCToken;
import org.apache.nlpcraft.NCTokenEnricher;
-import
org.apache.nlpcraft.nlp.en.token.enricher.impl.NCENStopWordsTokenEnricherImpl;
+import
org.apache.nlpcraft.nlp.token.enricher.impl.NCENStopWordsTokenEnricherImpl;
import java.util.List;
import java.util.Set;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/token/enricher/NCOpenNlpLemmaPosTokenEnricher.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCOpenNlpLemmaPosTokenEnricher.java
similarity index 93%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/token/enricher/NCOpenNlpLemmaPosTokenEnricher.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCOpenNlpLemmaPosTokenEnricher.java
index 589ba30..fa44f93 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/token/enricher/NCOpenNlpLemmaPosTokenEnricher.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCOpenNlpLemmaPosTokenEnricher.java
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.token.enricher;
+package org.apache.nlpcraft.nlp.token.enricher;
import org.apache.nlpcraft.NCModelConfig;
import org.apache.nlpcraft.NCRequest;
import org.apache.nlpcraft.NCToken;
import org.apache.nlpcraft.NCTokenEnricher;
-import
org.apache.nlpcraft.nlp.mult.token.enricher.impl.NCLemmaPosTokenEnricherImpl;
+import org.apache.nlpcraft.nlp.token.enricher.impl.NCLemmaPosTokenEnricherImpl;
import java.util.List;
diff --git
"a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/N\320\241ENSwearWordsTokenEnricher.java"
"b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/N\320\241ENSwearWordsTokenEnricher.java"
similarity index 93%
rename from
"nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/N\320\241ENSwearWordsTokenEnricher.java"
rename to
"nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/N\320\241ENSwearWordsTokenEnricher.java"
index e852b59..59bc100 100644
---
"a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/N\320\241ENSwearWordsTokenEnricher.java"
+++
"b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/N\320\241ENSwearWordsTokenEnricher.java"
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.token.enricher;
+package org.apache.nlpcraft.nlp.token.enricher;
import org.apache.nlpcraft.NCModelConfig;
import org.apache.nlpcraft.NCRequest;
import org.apache.nlpcraft.NCToken;
import org.apache.nlpcraft.NCTokenEnricher;
-import
org.apache.nlpcraft.nlp.en.token.enricher.impl.NCENSwearWordsTokenEnricherImpl;
+import
org.apache.nlpcraft.nlp.token.enricher.impl.NCENSwearWordsTokenEnricherImpl;
import java.util.List;
import java.util.Objects;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENBracketsTokenEnricherImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENBracketsTokenEnricherImpl.scala
similarity index 97%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENBracketsTokenEnricherImpl.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENBracketsTokenEnricherImpl.scala
index 6414ff3..c4f7709 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENBracketsTokenEnricherImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENBracketsTokenEnricherImpl.scala
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.token.enricher.impl
+package org.apache.nlpcraft.nlp.token.enricher.impl
import com.typesafe.scalalogging.LazyLogging
import org.apache.nlpcraft.*
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENDictionaryTokenEnricherImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENDictionaryTokenEnricherImpl.scala
similarity index 96%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENDictionaryTokenEnricherImpl.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENDictionaryTokenEnricherImpl.scala
index e753967..28dbd30 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENDictionaryTokenEnricherImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENDictionaryTokenEnricherImpl.scala
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.token.enricher.impl
+package org.apache.nlpcraft.nlp.token.enricher.impl
import org.apache.nlpcraft.*
import org.apache.nlpcraft.internal.util.NCUtils
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENQuotesTokenEnricherImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENQuotesTokenEnricherImpl.scala
similarity index 96%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENQuotesTokenEnricherImpl.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENQuotesTokenEnricherImpl.scala
index b804040..c7e1d5f 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENQuotesTokenEnricherImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENQuotesTokenEnricherImpl.scala
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.token.enricher.impl
+package org.apache.nlpcraft.nlp.token.enricher.impl
import com.typesafe.scalalogging.LazyLogging
import org.apache.nlpcraft.*
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENStopWordGenerator.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENStopWordGenerator.scala
similarity index 99%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENStopWordGenerator.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENStopWordGenerator.scala
index f310750..5644397 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENStopWordGenerator.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENStopWordGenerator.scala
@@ -1,4 +1,4 @@
-package org.apache.nlpcraft.nlp.en.token.enricher.impl
+package org.apache.nlpcraft.nlp.token.enricher.impl
import opennlp.tools.stemmer.PorterStemmer
import org.apache.nlpcraft.internal.util.NCUtils
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENStopWordsTokenEnricherImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENStopWordsTokenEnricherImpl.scala
similarity index 98%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENStopWordsTokenEnricherImpl.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENStopWordsTokenEnricherImpl.scala
index b0d4b36..56ab2ca 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENStopWordsTokenEnricherImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENStopWordsTokenEnricherImpl.scala
@@ -15,13 +15,13 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.token.enricher.impl
+package org.apache.nlpcraft.nlp.token.enricher.impl
import com.typesafe.scalalogging.LazyLogging
import opennlp.tools.stemmer.PorterStemmer
import org.apache.nlpcraft.*
import org.apache.nlpcraft.internal.util.NCUtils
-import org.apache.nlpcraft.nlp.mult.entity.parser.NCSemanticStemmer
+import org.apache.nlpcraft.nlp.entity.parser.NCSemanticStemmer
import java.io.*
import java.util
@@ -165,7 +165,7 @@ object NCENStopWordsTokenEnricherImpl:
private def tokenMix(toks: Seq[NCToken], maxLen: Int = Integer.MAX_VALUE):
Seq[Seq[NCToken]] =
(for (n <- toks.length until 0 by -1 if n <= maxLen) yield
toks.sliding(n)).flatten
-import
org.apache.nlpcraft.nlp.en.token.enricher.impl.NCENStopWordsTokenEnricherImpl.*
+import
org.apache.nlpcraft.nlp.token.enricher.impl.NCENStopWordsTokenEnricherImpl.*
/**
*
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENSwearWordsTokenEnricherImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENSwearWordsTokenEnricherImpl.scala
similarity index 96%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENSwearWordsTokenEnricherImpl.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENSwearWordsTokenEnricherImpl.scala
index 686b2dc..300e080 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/enricher/impl/NCENSwearWordsTokenEnricherImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCENSwearWordsTokenEnricherImpl.scala
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.token.enricher.impl
+package org.apache.nlpcraft.nlp.token.enricher.impl
import com.typesafe.scalalogging.LazyLogging
import opennlp.tools.stemmer.PorterStemmer
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/token/enricher/impl/NCLemmaPosTokenEnricherImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCLemmaPosTokenEnricherImpl.scala
similarity index 98%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/token/enricher/impl/NCLemmaPosTokenEnricherImpl.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCLemmaPosTokenEnricherImpl.scala
index 3f3ebfb..b6e71ba 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/token/enricher/impl/NCLemmaPosTokenEnricherImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/NCLemmaPosTokenEnricherImpl.scala
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.token.enricher.impl
+package org.apache.nlpcraft.nlp.token.enricher.impl
import com.typesafe.scalalogging.LazyLogging
import opennlp.tools.lemmatizer.DictionaryLemmatizer
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/parser/NCENOpenNLPTokenParser.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/NCENOpenNLPTokenParser.java
similarity index 89%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/parser/NCENOpenNLPTokenParser.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/NCENOpenNLPTokenParser.java
index 946441d..832c093 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/en/token/parser/NCENOpenNLPTokenParser.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/NCENOpenNLPTokenParser.java
@@ -15,10 +15,10 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.en.token.parser;
+package org.apache.nlpcraft.nlp.token.parser;
import org.apache.nlpcraft.internal.util.NCResourceReader;
-import org.apache.nlpcraft.nlp.mult.token.parser.NCOpenNLPTokenParser;
+import org.apache.nlpcraft.nlp.token.parser.NCOpenNLPTokenParser;
/*
*
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/token/parser/NCOpenNLPTokenParser.java
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/NCOpenNLPTokenParser.java
similarity index 93%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/token/parser/NCOpenNLPTokenParser.java
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/NCOpenNLPTokenParser.java
index bdb7151..e5c133b 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/token/parser/NCOpenNLPTokenParser.java
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/NCOpenNLPTokenParser.java
@@ -15,12 +15,12 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.token.parser;
+package org.apache.nlpcraft.nlp.token.parser;
import org.apache.nlpcraft.NCException;
import org.apache.nlpcraft.NCToken;
import org.apache.nlpcraft.NCTokenParser;
-import org.apache.nlpcraft.nlp.mult.token.parser.impl.NCOpenNLPTokenParserImpl;
+import org.apache.nlpcraft.nlp.token.parser.impl.NCOpenNLPTokenParserImpl;
import java.util.List;
import java.util.Objects;
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/token/parser/impl/NCOpenNLPTokenParserImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/impl/NCOpenNLPTokenParserImpl.scala
similarity index 96%
rename from
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/token/parser/impl/NCOpenNLPTokenParserImpl.scala
rename to
nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/impl/NCOpenNLPTokenParserImpl.scala
index 7bc6907..d14316b 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/mult/token/parser/impl/NCOpenNLPTokenParserImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/impl/NCOpenNLPTokenParserImpl.scala
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.nlpcraft.nlp.mult.token.parser.impl
+package org.apache.nlpcraft.nlp.token.parser.impl
import com.typesafe.scalalogging.LazyLogging
import opennlp.tools.tokenize.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelCallbacksSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelCallbacksSpec.scala
index e00dd2f..1c08462 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelCallbacksSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelCallbacksSpec.scala
@@ -19,9 +19,8 @@ package org.apache.nlpcraft.internal.impl
import org.apache.nlpcraft.*
import org.apache.nlpcraft.NCResultType.*
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser
+import org.apache.nlpcraft.nlp.entity.parser.{NCEnSemanticEntityParser,
NCSemanticEntityParser}
import org.apache.nlpcraft.nlp.entity.parser.semantic.*
-import org.apache.nlpcraft.nlp.mult.entity.parser.NCSemanticEntityParser
import org.apache.nlpcraft.nlp.util.NCTestModelAdapter
import org.apache.nlpcraft.nlp.util.opennlp.*
import org.junit.jupiter.api.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelClientSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelClientSpec.scala
index 214ab26..04800b4 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelClientSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelClientSpec.scala
@@ -18,8 +18,7 @@
package org.apache.nlpcraft.internal.impl
import org.apache.nlpcraft.*
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser
-import org.apache.nlpcraft.nlp.mult.entity.parser.NCSemanticEntityParser
+import org.apache.nlpcraft.nlp.entity.parser.{NCEnSemanticEntityParser,
NCSemanticEntityParser}
import org.apache.nlpcraft.nlp.util.NCTestModelAdapter
import org.apache.nlpcraft.nlp.util.opennlp.*
import org.junit.jupiter.api.Test
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelPingPongSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelPingPongSpec.scala
index 7c34241..4034fa3 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelPingPongSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelPingPongSpec.scala
@@ -19,9 +19,8 @@ package org.apache.nlpcraft.internal.impl
import org.apache.nlpcraft.*
import org.apache.nlpcraft.NCResultType.*
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser
+import org.apache.nlpcraft.nlp.entity.parser.{NCEnSemanticEntityParser,
NCSemanticEntityParser}
import org.apache.nlpcraft.nlp.entity.parser.semantic.{NCSemanticTestElement
as STE, *}
-import org.apache.nlpcraft.nlp.mult.entity.parser.NCSemanticEntityParser
import org.apache.nlpcraft.nlp.util.NCTestModelAdapter
import org.apache.nlpcraft.nlp.util.opennlp.*
import org.junit.jupiter.api.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelPipelineManagerSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelPipelineManagerSpec.scala
index 3cd69bc..dbeaf92 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelPipelineManagerSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/internal/impl/NCModelPipelineManagerSpec.scala
@@ -18,10 +18,9 @@
package org.apache.nlpcraft.internal.impl
import org.apache.nlpcraft.*
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser
+import org.apache.nlpcraft.nlp.entity.parser.{NCEnSemanticEntityParser,
NCSemanticElement}
import org.apache.nlpcraft.nlp.entity.parser.semantic.*
-import org.apache.nlpcraft.nlp.mult.entity.parser.NCSemanticElement
-import org.apache.nlpcraft.nlp.mult.entity.parser.impl.NCNLPEntityParserImpl
+import org.apache.nlpcraft.nlp.entity.parser.impl.NCNLPEntityParserImpl
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
import org.junit.jupiter.api.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/NCENDefaultPipelineSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/NCENDefaultPipelineSpec.scala
index 701ec4a..857a216 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/NCENDefaultPipelineSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/NCENDefaultPipelineSpec.scala
@@ -18,8 +18,7 @@
package org.apache.nlpcraft.nlp
import org.apache.nlpcraft.*
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser
-import org.apache.nlpcraft.nlp.mult.entity.parser.NCSemanticEntityParser
+import org.apache.nlpcraft.nlp.entity.parser.{NCEnSemanticEntityParser,
NCSemanticEntityParser}
import org.apache.nlpcraft.nlp.util.NCTestModelAdapter
import org.junit.jupiter.api.Test
@@ -54,10 +53,7 @@ class NCENDefaultPipelineSpec:
val cfg = new NCModelConfig("test.id", "Test model", "1.0")
// Default EN pipeline with default EN semantic parser.
- val pipeline = new NCModelPipelineBuilder(
- NCModelPipelineLanguage.EN,
- new NCEnSemanticEntityParser("models/lightswitch_model.yaml")
- ).build()
+ val pipeline = new
NCModelPipelineBuilder().withLanguage("EN").withEntityParser(new
NCEnSemanticEntityParser("models/lightswitch_model.yaml")).build()
Using.resource(new NCModelClient(mkModel(cfg, pipeline))) { client =>
println(client.ask("Please, put the light out in the upstairs
bedroom.", null, "userId").getBody)
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
index 8de4147..d9dae4e 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
@@ -19,7 +19,7 @@ package
org.apache.nlpcraft.nlp.benchmark.token.parser.opennlp;
import org.apache.nlpcraft.NCRequest;
import org.apache.nlpcraft.internal.util.NCResourceReader;
-import org.apache.nlpcraft.nlp.mult.token.parser.NCOpenNLPTokenParser;
+import org.apache.nlpcraft.nlp.token.parser.NCOpenNLPTokenParser;
import org.apache.nlpcraft.nlp.util.NCTestRequest;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/nlp/NCNLPEntityParserSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/nlp/NCNLPEntityParserSpec.scala
index 242b77c..ba64e56 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/nlp/NCNLPEntityParserSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/nlp/NCNLPEntityParserSpec.scala
@@ -19,7 +19,7 @@ package org.apache.nlpcraft.nlp.entity.parser.nlp
import org.apache.nlpcraft.*
import org.apache.nlpcraft.internal.util.NCUtils
-import org.apache.nlpcraft.nlp.mult.entity.parser.*
+import org.apache.nlpcraft.nlp.entity.parser.*
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
import org.junit.jupiter.api.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNLPEntityParserSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNLPEntityParserSpec.scala
index d4ec06a..1ee651c 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNLPEntityParserSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNLPEntityParserSpec.scala
@@ -19,7 +19,7 @@ package org.apache.nlpcraft.nlp.entity.parser.opennlp
import org.apache.nlpcraft.*
import org.apache.nlpcraft.internal.util.*
-import org.apache.nlpcraft.nlp.mult.entity.parser.NCOpenNLPEntityParser
+import org.apache.nlpcraft.nlp.entity.parser.NCOpenNLPEntityParser
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
import org.junit.jupiter.api.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserJsonSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserJsonSpec.scala
index 0dcf647..178908f 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserJsonSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserJsonSpec.scala
@@ -19,9 +19,8 @@ package org.apache.nlpcraft.nlp.entity.parser.semantic
import org.apache.nlpcraft.*
import org.apache.nlpcraft.internal.util.NCUtils
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser
-import org.apache.nlpcraft.nlp.mult.entity.parser.*
-import org.apache.nlpcraft.nlp.mult.token.parser.NCOpenNLPTokenParser
+import org.apache.nlpcraft.nlp.entity.parser.*
+import org.apache.nlpcraft.nlp.token.parser.NCOpenNLPTokenParser
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
import org.junit.jupiter.api.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserSpec.scala
index 8c689c7..76f84f6 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserSpec.scala
@@ -19,9 +19,8 @@ package org.apache.nlpcraft.nlp.entity.parser.semantic
import org.apache.nlpcraft.*
import org.apache.nlpcraft.internal.util.*
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser
-import org.apache.nlpcraft.nlp.en.token.enricher.*
-import org.apache.nlpcraft.nlp.mult.entity.parser.*
+import org.apache.nlpcraft.nlp.entity.parser.*
+import org.apache.nlpcraft.nlp.token.enricher.*
import org.apache.nlpcraft.nlp.token.enricher.en.*
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserYamlSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserYamlSpec.scala
index 3a522f0..e1022e7 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserYamlSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserYamlSpec.scala
@@ -19,8 +19,7 @@ package org.apache.nlpcraft.nlp.entity.parser.semantic
import org.apache.nlpcraft.*
import org.apache.nlpcraft.internal.util.NCUtils
-import org.apache.nlpcraft.nlp.en.entity.parser.NCEnSemanticEntityParser
-import org.apache.nlpcraft.nlp.mult.entity.parser.*
+import org.apache.nlpcraft.nlp.entity.parser.*
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
import org.junit.jupiter.api.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCBracketsTokenEnricherSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCBracketsTokenEnricherSpec.scala
index 698f9d0..a16e898 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCBracketsTokenEnricherSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCBracketsTokenEnricherSpec.scala
@@ -18,7 +18,7 @@
package org.apache.nlpcraft.nlp.token.enricher.en
import org.apache.nlpcraft.*
-import org.apache.nlpcraft.nlp.en.token.enricher.*
+import org.apache.nlpcraft.nlp.token.enricher.*
import org.apache.nlpcraft.nlp.token.enricher.en.*
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCDictionaryTokenEnricherSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCDictionaryTokenEnricherSpec.scala
index 916c6c7..654e132 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCDictionaryTokenEnricherSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCDictionaryTokenEnricherSpec.scala
@@ -18,8 +18,8 @@
package org.apache.nlpcraft.nlp.token.enricher.en
import org.apache.nlpcraft.internal.util.NCResourceReader
-import org.apache.nlpcraft.nlp.en.token.enricher.*
import org.apache.nlpcraft.nlp.token.enricher.en.*
+import org.apache.nlpcraft.nlp.token.enricher.*
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
import org.junit.jupiter.api.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCQuotesTokenEnricherSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCQuotesTokenEnricherSpec.scala
index d465dbd..ef4748c 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCQuotesTokenEnricherSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCQuotesTokenEnricherSpec.scala
@@ -19,8 +19,8 @@ package org.apache.nlpcraft.nlp.token.enricher.en
import org.apache.nlpcraft.NCToken
import org.apache.nlpcraft.internal.util.NCResourceReader
-import org.apache.nlpcraft.nlp.en.token.enricher.*
import org.apache.nlpcraft.nlp.token.enricher.en.*
+import org.apache.nlpcraft.nlp.token.enricher.*
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
import org.junit.jupiter.api.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCStopWordsEnricherSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCStopWordsEnricherSpec.scala
index 755bc64..691a47d 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCStopWordsEnricherSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCStopWordsEnricherSpec.scala
@@ -19,8 +19,8 @@ package org.apache.nlpcraft.nlp.token.enricher.en
import org.apache.nlpcraft.*
import org.apache.nlpcraft.internal.util.NCResourceReader
-import org.apache.nlpcraft.nlp.en.token.enricher.*
import org.apache.nlpcraft.nlp.token.enricher.en.*
+import org.apache.nlpcraft.nlp.token.enricher.*
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
import org.junit.jupiter.api.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCSwearWordsTokenEnricherSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCSwearWordsTokenEnricherSpec.scala
index d69aebd..b9eec76 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCSwearWordsTokenEnricherSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCSwearWordsTokenEnricherSpec.scala
@@ -18,7 +18,7 @@
package org.apache.nlpcraft.nlp.token.enricher.en
import org.apache.nlpcraft.internal.util.NCResourceReader
-import org.apache.nlpcraft.nlp.en.token.enricher.NСENSwearWordsTokenEnricher
+import org.apache.nlpcraft.nlp.token.enricher.NСENSwearWordsTokenEnricher
import org.apache.nlpcraft.nlp.token.enricher.en.*
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/impl/NCStopWordsImplSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/impl/NCStopWordsImplSpec.scala
index ca0861e..7756838 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/impl/NCStopWordsImplSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/enricher/en/impl/NCStopWordsImplSpec.scala
@@ -18,7 +18,7 @@
package org.apache.nlpcraft.nlp.token.enricher.en.impl
import org.apache.nlpcraft.*
-import
org.apache.nlpcraft.nlp.en.token.enricher.impl.NCENStopWordsTokenEnricherImpl
+import
org.apache.nlpcraft.nlp.token.enricher.impl.NCENStopWordsTokenEnricherImpl
import org.apache.nlpcraft.nlp.token.enricher.en.*
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/NCOpenNLPTokenParserSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/NCOpenNLPTokenParserSpec.scala
index 689f05d..0393f3a 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/NCOpenNLPTokenParserSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/NCOpenNLPTokenParserSpec.scala
@@ -20,8 +20,8 @@ package org.apache.nlpcraft.nlp.token.parser.opennlp
import org.apache.nlpcraft.*
import org.apache.nlpcraft.internal.ascii.NCAsciiTable
import org.apache.nlpcraft.internal.util.NCResourceReader
-import org.apache.nlpcraft.nlp.en.token.enricher.*
import org.apache.nlpcraft.nlp.token.enricher.en.*
+import org.apache.nlpcraft.nlp.token.enricher.*
import org.apache.nlpcraft.nlp.util.*
import org.apache.nlpcraft.nlp.util.opennlp.*
import org.junit.jupiter.api.*
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/NCTestPipeline.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/NCTestPipeline.scala
index 9be79bd..8c69f06 100644
--- a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/NCTestPipeline.scala
+++ b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/NCTestPipeline.scala
@@ -18,7 +18,7 @@
package org.apache.nlpcraft.nlp.util
import org.apache.nlpcraft.*
-import org.apache.nlpcraft.nlp.mult.token.parser.NCOpenNLPTokenParser
+import org.apache.nlpcraft.nlp.token.parser.NCOpenNLPTokenParser
import org.apache.nlpcraft.nlp.util.NCTestPipeline.*
import java.util.{Optional, ArrayList as JList}
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/opennlp/NCTestConfig.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/opennlp/NCTestConfig.scala
index 6db4ab6..42b885e 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/opennlp/NCTestConfig.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/opennlp/NCTestConfig.scala
@@ -18,7 +18,7 @@
package org.apache.nlpcraft.nlp.util.opennlp
import org.apache.nlpcraft.NCModelConfig
-import org.apache.nlpcraft.nlp.mult.token.parser.NCOpenNLPTokenParser
+import org.apache.nlpcraft.nlp.token.parser.NCOpenNLPTokenParser
import org.apache.nlpcraft.nlp.util.*
/**
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/opennlp/NCTestConfigJava.java
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/opennlp/NCTestConfigJava.java
index 4c45c5b..e11b77b 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/opennlp/NCTestConfigJava.java
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/opennlp/NCTestConfigJava.java
@@ -19,7 +19,7 @@ package org.apache.nlpcraft.nlp.util.opennlp;
import org.apache.nlpcraft.NCModelConfig;
import org.apache.nlpcraft.internal.util.NCResourceReader;
-import org.apache.nlpcraft.nlp.mult.token.parser.NCOpenNLPTokenParser;
+import org.apache.nlpcraft.nlp.token.parser.NCOpenNLPTokenParser;
import org.apache.nlpcraft.nlp.util.NCTestPipeline;
/**