You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by ar...@apache.org on 2021/12/28 23:04:58 UTC

[incubator-nlpcraft] branch NLPCRAFT-471 updated: Refactoring.

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

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


The following commit(s) were added to refs/heads/NLPCRAFT-471 by this push:
     new 8c577cf  Refactoring.
8c577cf is described below

commit 8c577cfa7ae6a0105496d0bb952452af9c7cd7fe
Author: Aaron Radzinski <ar...@datalingvo.com>
AuthorDate: Tue Dec 28 15:04:24 2021 -0800

    Refactoring.
---
 nlpcraft/src/main/scala/org/apache/nlpcraft/NCContext.java    |  3 +--
 .../org/apache/nlpcraft/internal/ansi/NCAnsiProgressBar.scala |  2 +-
 .../org/apache/nlpcraft/internal/ansi/NCAnsiSpinner.scala     |  2 +-
 .../org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala     |  7 +++----
 .../org/apache/nlpcraft/internal/makro/NCMacroCompiler.scala  |  7 ++++---
 .../org/apache/nlpcraft/internal/makro/NCMacroParser.scala    |  3 +--
 .../scala/org/apache/nlpcraft/internal/util/NCUtils.scala     |  7 ++++---
 .../nlp/entity/parser/opennlp/NCOpenNlpEntityParser.java      | 11 ++++-------
 .../parser/opennlp/impl/NCOpenNlpEntityParserImpl.scala       |  4 ++--
 .../token/enricher/en}/NCEnBracketsTokenEnricher.java         |  4 ++--
 .../token/enricher/en}/NCEnDictionaryTokenEnricher.java       |  5 +++--
 .../token/enricher/en}/NCEnLanguageTokenEnricher.java         |  4 ++--
 .../token/enricher/en}/NCEnQuotesTokenEnricher.java           |  9 +++------
 .../token/enricher/en}/NCEnSwearWordsTokenEnricher.java       |  4 ++--
 .../token/enricher/impl/en}/NCEnBracketsImpl.scala            |  2 +-
 .../token/enricher/impl/en}/NCEnDictionaryImpl.scala          |  2 +-
 .../token/enricher/impl/en}/NCEnLanguageWordsImpl.scala       |  2 +-
 .../impl => nlp/token/enricher/impl/en}/NCEnQuotesImpl.scala  |  2 +-
 .../token/enricher/impl/en}/NCEnSwearWordsImpl.scala          |  4 +---
 .../token/parser/opennlp/en}/NCEnOpenNlpTokenParser.java      |  4 ++--
 .../token/parser/opennlp/impl/en}/NCEnOpenNlpImpl.scala       |  3 ++-
 .../token/parser/opennlp/impl/en}/NCEnStopWordGenerator.scala |  3 ++-
 .../token/parser/opennlp/impl/en}/NCEnStopWordsFinder.scala   | 11 ++++++-----
 .../{internal => }/nlp/benchmark/NCBenchmarkAdapter.java      |  4 ++--
 .../token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java | 10 +++++-----
 .../nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala | 10 +++++-----
 .../token/enricher/en}/NCEnBracketsTokenEnricherSpec.scala    | 11 ++++++-----
 .../token/enricher/en}/NCEnDictionaryTokenEnricherSpec.scala  |  9 +++++----
 .../token/enricher/en}/NCEnLanguageTokenEnricherSpec.scala    |  9 +++++----
 .../token/enricher/en}/NCEnQuotesTokenEnricherSpec.scala      |  9 ++++++---
 .../token/enricher/en}/NCEnSwearWordsTokenEnricherSpec.scala  |  9 +++++----
 .../token/parser/opennlp/en}/NCEnOpenNlpTokenParserSpec.scala |  6 +++---
 .../nlpcraft/{internal => }/nlp/util/NCTestRequest.scala      |  2 +-
 .../apache/nlpcraft/{internal => }/nlp/util/NCTestToken.scala |  2 +-
 .../apache/nlpcraft/{internal => }/nlp/util/NCTestUtils.scala |  7 ++++---
 35 files changed, 98 insertions(+), 95 deletions(-)

diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCContext.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCContext.java
index f560672..39f4004 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCContext.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCContext.java
@@ -17,8 +17,7 @@
 
 package org.apache.nlpcraft;
 
-import java.util.Collection;
-import java.util.List;
+import java.util.*;
 
 /**
  *
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiProgressBar.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiProgressBar.scala
index e5f4817..3135881 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiProgressBar.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiProgressBar.scala
@@ -21,7 +21,7 @@ import java.io.PrintWriter
 import org.apache.nlpcraft.internal.*
 import NCAnsi.*
 import org.apache.commons.lang3.StringUtils
-import org.apache.nlpcraft.internal.ansi.NCAnsiProgressBar.*
+import NCAnsiProgressBar.*
 
 /**
   * Forward-only, bound ANSI-based progress bar.
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiSpinner.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiSpinner.scala
index ca1b702..08048a4 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiSpinner.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ansi/NCAnsiSpinner.scala
@@ -20,7 +20,7 @@ package org.apache.nlpcraft.internal.ansi
 import java.io.PrintWriter
 import NCAnsi.*
 import org.apache.nlpcraft.internal.*
-import org.apache.nlpcraft.internal.ansi.NCAnsiSpinner.*
+import NCAnsiSpinner.*
 import org.apache.nlpcraft.internal.util.NCUtils
 
 /**
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
index 4c7292a..6bb3b4d 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/ascii/NCAsciiTable.scala
@@ -20,11 +20,10 @@ package org.apache.nlpcraft.internal.ascii
 import java.io.{IOException, PrintStream}
 import java.util.List as JList
 import com.typesafe.scalalogging.Logger
-import org.apache.nlpcraft.NCException
-import org.apache.nlpcraft.internal.*
-import org.apache.nlpcraft.internal.ascii.NCAsciiTable.*
-import org.apache.nlpcraft.internal.ansi.NCAnsi.*
+import org.apache.nlpcraft.*
+import NCAsciiTable.*
 import org.apache.nlpcraft.internal.util.NCUtils
+import org.apache.nlpcraft.internal.ansi.NCAnsi.*
 
 import scala.collection.mutable
 import scala.jdk.CollectionConverters.CollectionHasAsScala
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroCompiler.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroCompiler.scala
index 9a98a1a..9e5ecca 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroCompiler.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroCompiler.scala
@@ -20,13 +20,14 @@ package org.apache.nlpcraft.internal.makro
 import com.typesafe.scalalogging.LazyLogging
 import org.antlr.v4.runtime.tree.ParseTreeWalker
 import org.antlr.v4.runtime.*
-import org.apache.nlpcraft.NCException
 import org.apache.nlpcraft.internal.*
 import org.apache.nlpcraft.internal.ansi.NCAnsi.*
-import org.apache.nlpcraft.internal.antlr4.*
-import org.apache.nlpcraft.internal.makro.NCMacroCompiler.FiniteStateMachine
+import org.apache.nlpcraft.internal.antlr4.{NCCompilerUtils, *}
+import NCMacroCompiler.FiniteStateMachine
 import org.apache.nlpcraft.internal.makro.antlr4.*
 import org.apache.nlpcraft.internal.util.NCUtils
+import org.apache.nlpcraft.NCException
+import org.apache.nlpcraft.internal.makro.antlr4.NCMacroDslLexer
 
 import scala.collection.mutable
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroParser.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroParser.scala
index af085a5..cf6c3e2 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroParser.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/makro/NCMacroParser.scala
@@ -17,8 +17,7 @@
 
 package org.apache.nlpcraft.internal.makro
 
-import org.apache.nlpcraft.NCException
-import org.apache.nlpcraft.internal.*
+import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.util.NCUtils
 
 import scala.jdk.CollectionConverters.*
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/util/NCUtils.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/util/NCUtils.scala
index 12875e4..bad8159 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/util/NCUtils.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/util/NCUtils.scala
@@ -19,18 +19,19 @@ package org.apache.nlpcraft.internal.util
 
 import com.google.gson.GsonBuilder
 import com.typesafe.scalalogging.*
-import org.apache.nlpcraft.{NCException, NCToken}
+import org.apache.nlpcraft.NCToken
+import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.ansi.NCAnsi.*
 
 import java.io.*
 import java.net.*
 import java.util.{Random, UUID}
 import java.util.regex.Pattern
-import java.util.zip.{GZIPInputStream, GZIPOutputStream}
+import java.util.zip.*
 import scala.annotation.tailrec
 import scala.collection.{IndexedSeq, Seq}
 import scala.concurrent.duration.Duration
-import scala.concurrent.{Await, ExecutionContext, Future}
+import scala.concurrent.*
 import scala.io.Source
 import scala.sys.SystemProperties
 import scala.util.Using
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/NCOpenNlpEntityParser.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNlpEntityParser.java
similarity index 86%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/NCOpenNlpEntityParser.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNlpEntityParser.java
index b02a6f8..6873dc5 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/NCOpenNlpEntityParser.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNlpEntityParser.java
@@ -15,20 +15,17 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.entity.parser.opennlp;
+package org.apache.nlpcraft.nlp.entity.parser.opennlp;
 
-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.internal.nlp.entity.parser.opennlp.impl.NCOpenNlpEntityParserImpl;
+import org.apache.nlpcraft.*;
+import org.apache.nlpcraft.nlp.entity.parser.opennlp.impl.NCOpenNlpEntityParserImpl;
 
 import java.io.File;
 import java.util.List;
 import java.util.Objects;
 
 /**
+ * TODO
  * Generates entities with
  *  - ID `opennlp:{name}` where 'name' is element model name (from trained file or resource) and
  *  - one property `opennlp:{name}:probability`, where probability is double value between 0 and 1.
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/impl/NCOpenNlpEntityParserImpl.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/opennlp/impl/NCOpenNlpEntityParserImpl.scala
similarity index 95%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/impl/NCOpenNlpEntityParserImpl.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/opennlp/impl/NCOpenNlpEntityParserImpl.scala
index 70a59bf..ac36d95 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/impl/NCOpenNlpEntityParserImpl.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/opennlp/impl/NCOpenNlpEntityParserImpl.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.entity.parser.opennlp.impl
+package org.apache.nlpcraft.nlp.entity.parser.opennlp.impl
 
 import com.typesafe.scalalogging.LazyLogging
 import opennlp.tools.namefind.*
 import org.apache.nlpcraft.*
-import org.apache.nlpcraft.internal.nlp.token.enricher.impl.NCEnQuotesImpl.*
 import org.apache.nlpcraft.internal.util.NCUtils
+import org.apache.nlpcraft.nlp.token.enricher.impl.en.NCEnQuotesImpl.*
 
 import java.io.*
 import java.util
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnBracketsTokenEnricher.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnBracketsTokenEnricher.java
similarity index 91%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnBracketsTokenEnricher.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnBracketsTokenEnricher.java
index bf7d0b9..4e3992c 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnBracketsTokenEnricher.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnBracketsTokenEnricher.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher;
+package org.apache.nlpcraft.nlp.token.enricher.en;
 
 import org.apache.nlpcraft.*;
-import org.apache.nlpcraft.internal.nlp.token.enricher.impl.NCEnBracketsImpl;
+import org.apache.nlpcraft.nlp.token.enricher.impl.en.NCEnBracketsImpl;
 
 import java.util.List;
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnDictionaryTokenEnricher.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnDictionaryTokenEnricher.java
similarity index 91%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnDictionaryTokenEnricher.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnDictionaryTokenEnricher.java
index 30ed1e9..d42c4f6 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnDictionaryTokenEnricher.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnDictionaryTokenEnricher.java
@@ -15,10 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher;
+package org.apache.nlpcraft.nlp.token.enricher.en;
 
 import org.apache.nlpcraft.*;
-import org.apache.nlpcraft.internal.nlp.token.enricher.impl.NCEnDictionaryImpl;
+import org.apache.nlpcraft.nlp.token.enricher.impl.en.NCEnDictionaryImpl;
+
 import java.util.List;
 
 /**
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnLanguageTokenEnricher.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnLanguageTokenEnricher.java
similarity index 90%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnLanguageTokenEnricher.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnLanguageTokenEnricher.java
index cdd765b..64c13f7 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnLanguageTokenEnricher.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnLanguageTokenEnricher.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher;
+package org.apache.nlpcraft.nlp.token.enricher.en;
 
 import org.apache.nlpcraft.*;
-import org.apache.nlpcraft.internal.nlp.token.enricher.impl.NCEnLanguageWordsImpl;
+import org.apache.nlpcraft.nlp.token.enricher.impl.en.NCEnLanguageWordsImpl;
 
 import java.util.List;
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnQuotesTokenEnricher.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnQuotesTokenEnricher.java
similarity index 82%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnQuotesTokenEnricher.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnQuotesTokenEnricher.java
index 834732c..ba9884a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnQuotesTokenEnricher.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnQuotesTokenEnricher.java
@@ -15,13 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher;
+package org.apache.nlpcraft.nlp.token.enricher.en;
 
-import org.apache.nlpcraft.NCModelConfig;
-import org.apache.nlpcraft.NCRequest;
-import org.apache.nlpcraft.NCToken;
-import org.apache.nlpcraft.NCTokenEnricher;
-import org.apache.nlpcraft.internal.nlp.token.enricher.impl.NCEnQuotesImpl;
+import org.apache.nlpcraft.*;
+import org.apache.nlpcraft.nlp.token.enricher.impl.en.NCEnQuotesImpl;
 
 import java.util.List;
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnSwearWordsTokenEnricher.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnSwearWordsTokenEnricher.java
similarity index 93%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnSwearWordsTokenEnricher.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnSwearWordsTokenEnricher.java
index 654d446..50a771d 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnSwearWordsTokenEnricher.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/en/NCEnSwearWordsTokenEnricher.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher;
+package org.apache.nlpcraft.nlp.token.enricher.en;
 
 import org.apache.nlpcraft.*;
-import org.apache.nlpcraft.internal.nlp.token.enricher.impl.NCEnSwearWordsImpl;
+import org.apache.nlpcraft.nlp.token.enricher.impl.en.NCEnSwearWordsImpl;
 
 import java.io.File;
 import java.util.List;
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnBracketsImpl.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnBracketsImpl.scala
similarity index 94%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnBracketsImpl.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnBracketsImpl.scala
index acb3a02..b81a4c6 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnBracketsImpl.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnBracketsImpl.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher.impl
+package org.apache.nlpcraft.nlp.token.enricher.impl.en
 
 import com.typesafe.scalalogging.LazyLogging
 import org.apache.nlpcraft.*
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnDictionaryImpl.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnDictionaryImpl.scala
similarity index 95%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnDictionaryImpl.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnDictionaryImpl.scala
index 0c48f46..a62159f 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnDictionaryImpl.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnDictionaryImpl.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher.impl
+package org.apache.nlpcraft.nlp.token.enricher.impl.en
 
 import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.util.NCUtils
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnLanguageWordsImpl.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnLanguageWordsImpl.scala
similarity index 92%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnLanguageWordsImpl.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnLanguageWordsImpl.scala
index 7cdcf23..d34d35a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnLanguageWordsImpl.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnLanguageWordsImpl.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher.impl
+package org.apache.nlpcraft.nlp.token.enricher.impl.en
 
 import org.apache.nlpcraft.*
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnQuotesImpl.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnQuotesImpl.scala
similarity index 94%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnQuotesImpl.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnQuotesImpl.scala
index 4762cea..5a7b2b7 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnQuotesImpl.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnQuotesImpl.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher.impl
+package org.apache.nlpcraft.nlp.token.enricher.impl.en
 
 import com.typesafe.scalalogging.LazyLogging
 import org.apache.nlpcraft.*
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnSwearWordsImpl.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnSwearWordsImpl.scala
similarity index 91%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnSwearWordsImpl.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnSwearWordsImpl.scala
index 1551e21..a54ff1a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/enricher/impl/NCEnSwearWordsImpl.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/impl/en/NCEnSwearWordsImpl.scala
@@ -15,14 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher.impl
+package org.apache.nlpcraft.nlp.token.enricher.impl.en
 
 import com.typesafe.scalalogging.LazyLogging
 import opennlp.tools.stemmer.PorterStemmer
 import org.apache.nlpcraft.*
-import org.apache.nlpcraft.internal.nlp.token.parser.opennlp.impl.NCEnOpenNlpImpl
 import org.apache.nlpcraft.internal.util.NCUtils
-import org.apache.nlpcraft.internal.util.NCUtils.getStream
 
 import java.io.*
 
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/NCEnOpenNlpTokenParser.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParser.java
similarity index 96%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/NCEnOpenNlpTokenParser.java
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParser.java
index d0cd2fb..b290516 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/NCEnOpenNlpTokenParser.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParser.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.parser.opennlp;
+package org.apache.nlpcraft.nlp.token.parser.opennlp.en;
 
 import org.apache.nlpcraft.*;
-import org.apache.nlpcraft.internal.nlp.token.parser.opennlp.impl.NCEnOpenNlpImpl;
+import org.apache.nlpcraft.nlp.token.parser.opennlp.impl.en.NCEnOpenNlpImpl;
 
 import java.io.*;
 import java.util.*;
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/impl/NCEnOpenNlpImpl.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/impl/en/NCEnOpenNlpImpl.scala
similarity index 98%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/impl/NCEnOpenNlpImpl.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/impl/en/NCEnOpenNlpImpl.scala
index 07b4e3a..e68ebff 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/impl/NCEnOpenNlpImpl.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/impl/en/NCEnOpenNlpImpl.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.parser.opennlp.impl
+package org.apache.nlpcraft.nlp.token.parser.opennlp.impl.en
 
 import opennlp.tools.lemmatizer.*
 import opennlp.tools.postag.*
@@ -23,6 +23,7 @@ import opennlp.tools.stemmer.*
 import opennlp.tools.tokenize.*
 import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.util.NCUtils
+import org.apache.nlpcraft.nlp.token.parser.opennlp.impl.en.*
 
 import java.io.*
 import java.util
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/impl/NCEnStopWordGenerator.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/impl/en/NCEnStopWordGenerator.scala
similarity index 99%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/impl/NCEnStopWordGenerator.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/impl/en/NCEnStopWordGenerator.scala
index 959d149..54fb898 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/impl/NCEnStopWordGenerator.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/impl/en/NCEnStopWordGenerator.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.parser.opennlp.impl
+package org.apache.nlpcraft.nlp.token.parser.opennlp.impl.en
 
 import opennlp.tools.stemmer.PorterStemmer
 import org.apache.nlpcraft.internal.util.NCUtils
@@ -174,6 +174,7 @@ object NCEnStopWordGenerator:
         mkGzip(NOUN_WORDS_FILE, stem(buf.toSeq))
 
     private def stem(s: String): String = s.split(" ").map(stemmer.stem).mkString(" ")
+
     private def stem(seq: Seq[String]): Seq[String] = seq.map(stem)
 
     private[impl] def mkFirstWords(): Unit =
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/impl/NCEnStopWordsFinder.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/impl/en/NCEnStopWordsFinder.scala
similarity index 98%
rename from nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/impl/NCEnStopWordsFinder.scala
rename to nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/impl/en/NCEnStopWordsFinder.scala
index fb1cbe3..cf49e7f 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/impl/NCEnStopWordsFinder.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/parser/opennlp/impl/en/NCEnStopWordsFinder.scala
@@ -15,14 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.parser.opennlp.impl
+package org.apache.nlpcraft.nlp.token.parser.opennlp.impl.en
 
 import com.typesafe.scalalogging.LazyLogging
 import opennlp.tools.stemmer.PorterStemmer
-
-import org.apache.nlpcraft.internal.nlp.token.parser.opennlp.impl.NCEnStopWordsFinder.*
-import org.apache.nlpcraft.internal.util.NCUtils
 import org.apache.nlpcraft.*
+import org.apache.nlpcraft.internal.util.NCUtils
 
 import java.util
 import java.util.{List as JList, Set as JSet}
@@ -188,6 +186,8 @@ private[impl] object NCEnStopWordsFinder:
   * @param exclStems
   */
 private[impl] class NCEnStopWordsFinder(addStems: Set[String], exclStems: Set[String]) extends LazyLogging:
+    import NCEnStopWordsFinder.*
+
     require(addStems != null)
     require(exclStems != null)
 
@@ -352,7 +352,8 @@ private[impl] class NCEnStopWordsFinder(addStems: Set[String], exclStems: Set[St
                 mkInstance(any ++ excl.values.flatten, incl, excl)
             end mkHolder
             def mkHash(form: WordForm): HashHolder = mkHolder(mHash, form, HashHolder.apply)
-            def mkScan(form: WordForm): ScanHolder = mkHolder(mScan, form, ScanHolder.apply)
+            def mkScan(form: WordForm):
+            ScanHolder = mkHolder(mScan, form, ScanHolder.apply)
 
             isExc -> StopWordHolder(mkHash(STEM), mkHash(LEM), mkHash(ORIG), mkScan(LEM), mkScan(ORIG))
         ).toMap
diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/benchmark/NCBenchmarkAdapter.java b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/benchmark/NCBenchmarkAdapter.java
similarity index 94%
rename from nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/benchmark/NCBenchmarkAdapter.java
rename to nlpcraft/src/test/java/org/apache/nlpcraft/nlp/benchmark/NCBenchmarkAdapter.java
index c81a80d..f5096e5 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/benchmark/NCBenchmarkAdapter.java
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/benchmark/NCBenchmarkAdapter.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.benchmark;
+package org.apache.nlpcraft.nlp.benchmark;
 
 import org.apache.nlpcraft.NCRequest;
-import org.apache.nlpcraft.internal.nlp.util.NCTestRequest;
+import org.apache.nlpcraft.nlp.util.NCTestRequest;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.openjdk.jmh.annotations.*;
diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
similarity index 84%
rename from nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
rename to nlpcraft/src/test/java/org/apache/nlpcraft/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
index 6be79e7..4a7764e 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/benchmark/token/parser/opennlp/NCEnOpenNlpTokenParserBenchmark.java
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.benchmark.token.parser.opennlp;
+package org.apache.nlpcraft.nlp.benchmark.token.parser.opennlp;
 
-import org.apache.nlpcraft.internal.nlp.benchmark.NCBenchmarkAdapter;
-import org.apache.nlpcraft.internal.nlp.token.parser.opennlp.NCEnOpenNlpTokenParser;
-import org.apache.nlpcraft.internal.nlp.util.NCTestUtils;
+import org.apache.nlpcraft.nlp.benchmark.NCBenchmarkAdapter;
+import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser;
+import org.apache.nlpcraft.nlp.util.NCTestUtils;
 import org.junit.jupiter.api.Disabled;
 import org.openjdk.jmh.annotations.*;
 import org.openjdk.jmh.infra.Blackhole;
@@ -29,7 +29,7 @@ import org.openjdk.jmh.infra.Blackhole;
  *
  */
 @Disabled
-public class NCEnOpenNlpTokenParserBenchmark extends NCBenchmarkAdapter  {
+public class NCEnOpenNlpTokenParserBenchmark extends NCBenchmarkAdapter {
     private NCEnOpenNlpTokenParser parser;
 
     @Setup
diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala
similarity index 88%
rename from nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala
rename to nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala
index f4762cc..8e1e78b 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.entity.parser.opennlp
+package org.apache.nlpcraft.nlp.entity.parser.opennlp
 
-import org.apache.nlpcraft.internal.nlp.entity.parser.opennlp.NCOpenNlpEntityParser
-import org.apache.nlpcraft.internal.nlp.token.parser.opennlp.NCEnOpenNlpTokenParser
-import org.apache.nlpcraft.internal.nlp.util.*
+import org.apache.nlpcraft.nlp.entity.parser.opennlp.NCOpenNlpEntityParser
+import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
+import org.apache.nlpcraft.nlp.util.*
+import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.util.NCUtils
-import org.apache.nlpcraft.{NCEntity, NCLifecycle}
 import org.junit.jupiter.api.*
 
 import java.util
diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnBracketsTokenEnricherSpec.scala b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnBracketsTokenEnricherSpec.scala
similarity index 85%
rename from nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnBracketsTokenEnricherSpec.scala
rename to nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnBracketsTokenEnricherSpec.scala
index 8dfb2dd..6981788 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnBracketsTokenEnricherSpec.scala
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnBracketsTokenEnricherSpec.scala
@@ -15,12 +15,13 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher
+package org.apache.nlpcraft.nlp.token.enricher.en
 
-import org.apache.nlpcraft.NCToken
-import org.apache.nlpcraft.internal.nlp.token.parser.opennlp.NCEnOpenNlpTokenParser
-import org.apache.nlpcraft.internal.nlp.util.{NCTestRequest, NCTestToken, NCTestUtils}
-import org.junit.jupiter.api.{BeforeEach, Test}
+import org.apache.nlpcraft.*
+import org.apache.nlpcraft.nlp.token.enricher.en.NCEnBracketsTokenEnricher
+import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
+import org.apache.nlpcraft.nlp.util.*
+import org.junit.jupiter.api.*
 
 import scala.jdk.CollectionConverters.*
 
diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnDictionaryTokenEnricherSpec.scala b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnDictionaryTokenEnricherSpec.scala
similarity index 83%
rename from nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnDictionaryTokenEnricherSpec.scala
rename to nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnDictionaryTokenEnricherSpec.scala
index 50eb872..fe4703e 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnDictionaryTokenEnricherSpec.scala
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnDictionaryTokenEnricherSpec.scala
@@ -15,11 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher
+package org.apache.nlpcraft.nlp.token.enricher.en
 
-import org.apache.nlpcraft.internal.nlp.token.parser.opennlp.NCEnOpenNlpTokenParser
-import org.apache.nlpcraft.internal.nlp.util.{NCTestToken, NCTestUtils}
-import org.junit.jupiter.api.{BeforeEach, Test}
+import org.apache.nlpcraft.nlp.token.enricher.en.NCEnDictionaryTokenEnricher
+import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
+import org.apache.nlpcraft.nlp.util.*
+import org.junit.jupiter.api.*
 
 import scala.jdk.CollectionConverters.SeqHasAsJava
 
diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnLanguageTokenEnricherSpec.scala b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnLanguageTokenEnricherSpec.scala
similarity index 83%
rename from nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnLanguageTokenEnricherSpec.scala
rename to nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnLanguageTokenEnricherSpec.scala
index 8cdb0f6..6a5eb98 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnLanguageTokenEnricherSpec.scala
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnLanguageTokenEnricherSpec.scala
@@ -15,11 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher
+package org.apache.nlpcraft.nlp.token.enricher.en
 
-import org.apache.nlpcraft.internal.nlp.token.parser.opennlp.NCEnOpenNlpTokenParser
-import org.apache.nlpcraft.internal.nlp.util.{NCTestToken, NCTestUtils}
-import org.junit.jupiter.api.{BeforeEach, Test}
+import org.apache.nlpcraft.nlp.token.enricher.en.NCEnLanguageTokenEnricher
+import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
+import org.apache.nlpcraft.nlp.util.*
+import org.junit.jupiter.api.*
 
 import scala.jdk.CollectionConverters.SeqHasAsJava
 
diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnQuotesTokenEnricherSpec.scala b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnQuotesTokenEnricherSpec.scala
similarity index 83%
rename from nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnQuotesTokenEnricherSpec.scala
rename to nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnQuotesTokenEnricherSpec.scala
index b9aac95..98a9837 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnQuotesTokenEnricherSpec.scala
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnQuotesTokenEnricherSpec.scala
@@ -15,11 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher
+package org.apache.nlpcraft.nlp.token.enricher.en
 
 import org.apache.nlpcraft.NCToken
-import org.apache.nlpcraft.internal.nlp.token.parser.opennlp.NCEnOpenNlpTokenParser
-import org.apache.nlpcraft.internal.nlp.util.{NCTestRequest, NCTestToken, NCTestUtils}
+import org.apache.nlpcraft.nlp.token.enricher.en.NCEnQuotesTokenEnricher
+import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
+import org.apache.nlpcraft.nlp.util.NCTestUtils
+import org.apache.nlpcraft.nlp.util.{NCTestRequest, NCTestUtils}
+import org.apache.nlpcraft.nlp.util.NCTestRequest
 import org.junit.jupiter.api.{BeforeEach, Test}
 
 import scala.jdk.CollectionConverters.*
diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnSwearWordsTokenEnricherSpec.scala b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnSwearWordsTokenEnricherSpec.scala
similarity index 83%
rename from nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnSwearWordsTokenEnricherSpec.scala
rename to nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnSwearWordsTokenEnricherSpec.scala
index 658b809..df9f47b 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/enricher/NCEnSwearWordsTokenEnricherSpec.scala
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/enricher/en/NCEnSwearWordsTokenEnricherSpec.scala
@@ -15,11 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.enricher
+package org.apache.nlpcraft.nlp.token.enricher.en
 
-import org.apache.nlpcraft.internal.nlp.token.parser.opennlp.NCEnOpenNlpTokenParser
-import org.apache.nlpcraft.internal.nlp.util.{NCTestToken, NCTestUtils}
-import org.junit.jupiter.api.{BeforeEach, Test}
+import org.apache.nlpcraft.nlp.token.enricher.en.NCEnSwearWordsTokenEnricher
+import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
+import org.apache.nlpcraft.nlp.util.*
+import org.junit.jupiter.api.*
 
 import scala.jdk.CollectionConverters.SeqHasAsJava
 
diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/NCEnOpenNlpTokenParserSpec.scala b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParserSpec.scala
similarity index 94%
rename from nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/NCEnOpenNlpTokenParserSpec.scala
rename to nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParserSpec.scala
index 3ba6869..5bfc288 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/NCEnOpenNlpTokenParserSpec.scala
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/token/parser/opennlp/en/NCEnOpenNlpTokenParserSpec.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.token.parser.opennlp
+package org.apache.nlpcraft.nlp.token.parser.opennlp.en
 
 import org.apache.nlpcraft.*
 import org.apache.nlpcraft.internal.ascii.NCAsciiTable
-import org.apache.nlpcraft.internal.nlp
-import org.apache.nlpcraft.internal.nlp.util.*
+import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
+import org.apache.nlpcraft.nlp.util.*
 import org.junit.jupiter.api.*
 
 import java.util
diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestRequest.scala b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestRequest.scala
similarity index 97%
rename from nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestRequest.scala
rename to nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestRequest.scala
index 8665bf3..ab07b91 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestRequest.scala
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestRequest.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.util
+package org.apache.nlpcraft.nlp.util
 
 import org.apache.nlpcraft.NCRequest
 
diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestToken.scala b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestToken.scala
similarity index 95%
rename from nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestToken.scala
rename to nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestToken.scala
index 034f40c..d027e9c 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestToken.scala
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestToken.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.util
+package org.apache.nlpcraft.nlp.util
 
 import org.apache.nlpcraft.*
 
diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestUtils.scala b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestUtils.scala
similarity index 95%
rename from nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestUtils.scala
rename to nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestUtils.scala
index 15eebf0..933d889 100644
--- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestUtils.scala
+++ b/nlpcraft/src/test/java/org/apache/nlpcraft/nlp/util/NCTestUtils.scala
@@ -15,11 +15,12 @@
  * limitations under the License.
  */
 
-package org.apache.nlpcraft.internal.nlp.util
+package org.apache.nlpcraft.nlp.util
 
-import org.apache.nlpcraft.internal.ascii.NCAsciiTable
 import org.apache.nlpcraft.*
-import org.apache.nlpcraft.internal.nlp.token.parser.opennlp.NCEnOpenNlpTokenParser
+import org.apache.nlpcraft.internal.ascii.NCAsciiTable
+import org.apache.nlpcraft.nlp.token.parser.opennlp.en.NCEnOpenNlpTokenParser
+
 import scala.jdk.CollectionConverters.*
 
 /**