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;
 
 /**

Reply via email to