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

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


The following commit(s) were added to refs/heads/NLPCRAFT-504 by this push:
     new ab461767 Minor fixes.
ab461767 is described below

commit ab46176767064c0478f8e3e29636172eb59b177d
Author: Sergey Kamov <skhdlem...@gmail.com>
AuthorDate: Thu Jul 7 10:39:28 2022 +0300

    Minor fixes.
---
 .../entity/parser/NCFrSemanticEntityParser.scala   |  2 +-
 .../entity/parser/NCRuSemanticEntityParser.scala   |  2 +-
 .../stanford/NCStanfordNLPEntityParser.scala       |  2 +-
 .../parser/semantic/NCSemanticEntityParser.scala   | 24 ++++++++++++----------
 4 files changed, 16 insertions(+), 14 deletions(-)

diff --git 
a/nlpcraft-examples/lightswitch-fr/src/main/scala/org/apache/nlpcraft/examples/lightswitch/nlp/entity/parser/NCFrSemanticEntityParser.scala
 
b/nlpcraft-examples/lightswitch-fr/src/main/scala/org/apache/nlpcraft/examples/lightswitch/nlp/entity/parser/NCFrSemanticEntityParser.scala
index 1a2aab80..d918a325 100644
--- 
a/nlpcraft-examples/lightswitch-fr/src/main/scala/org/apache/nlpcraft/examples/lightswitch/nlp/entity/parser/NCFrSemanticEntityParser.scala
+++ 
b/nlpcraft-examples/lightswitch-fr/src/main/scala/org/apache/nlpcraft/examples/lightswitch/nlp/entity/parser/NCFrSemanticEntityParser.scala
@@ -32,5 +32,5 @@ class NCFrSemanticEntityParser(src: String) extends 
NCSemanticEntityParser(
         override def stem(txt: String): String = stemmer.synchronized { 
stemmer.stem(txt.toLowerCase).toString }
     ,
     new NCFrTokenParser(),
-    mdlSrc = src
+    mdlSrcOpt = Option(src)
 )
diff --git 
a/nlpcraft-examples/lightswitch-ru/src/main/scala/org/apache/nlpcraft/examples/lightswitch/nlp/entity/parser/NCRuSemanticEntityParser.scala
 
b/nlpcraft-examples/lightswitch-ru/src/main/scala/org/apache/nlpcraft/examples/lightswitch/nlp/entity/parser/NCRuSemanticEntityParser.scala
index c1e3f38a..5afa8c8f 100644
--- 
a/nlpcraft-examples/lightswitch-ru/src/main/scala/org/apache/nlpcraft/examples/lightswitch/nlp/entity/parser/NCRuSemanticEntityParser.scala
+++ 
b/nlpcraft-examples/lightswitch-ru/src/main/scala/org/apache/nlpcraft/examples/lightswitch/nlp/entity/parser/NCRuSemanticEntityParser.scala
@@ -32,5 +32,5 @@ class NCRuSemanticEntityParser(src: String) extends 
NCSemanticEntityParser(
         override def stem(txt: String): String = stemmer.synchronized { 
stemmer.stem(txt.toLowerCase).toString }
     ,
     new NCRuTokenParser(),
-    mdlSrc = src
+    mdlSrcOpt = Option(src)
 )
diff --git 
a/nlpcraft-stanford/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/stanford/NCStanfordNLPEntityParser.scala
 
b/nlpcraft-stanford/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/stanford/NCStanfordNLPEntityParser.scala
index bbd1ff34..d17e3c04 100644
--- 
a/nlpcraft-stanford/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/stanford/NCStanfordNLPEntityParser.scala
+++ 
b/nlpcraft-stanford/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/stanford/NCStanfordNLPEntityParser.scala
@@ -32,7 +32,7 @@ import scala.jdk.CollectionConverters.*
   */
 class NCStanfordNLPEntityParser(stanford: StanfordCoreNLP, supported: 
Set[String]) extends NCEntityParser:
     require(stanford != null, "Stanford instance cannot be null.");
-    require(supported != null, "Supported elements set cannot be null.");
+    require(supported != null && supported.nonEmpty, "Supported elements set 
cannot be null or empty.");
 
     override def parse(req: NCRequest, cfg: NCModelConfig, toks: 
List[NCToken]): List[NCEntity] =
         val doc = new CoreDocument(req.getText)
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParser.scala
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParser.scala
index 26232a8c..2c6a173a 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParser.scala
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParser.scala
@@ -86,7 +86,7 @@ object NCSemanticEntityParser:
         require(parser != null, "Parser cannot be null.")
         require(mdlSrc != null, "Model source cannot be null.")
 
-        new NCSemanticEntityParser(stemmer, parser, mdlSrc = mdlSrc)
+        new NCSemanticEntityParser(stemmer, parser, mdlSrcOpt = Option(mdlSrc))
 
     /**
       * @param baseTokens Tokens.
@@ -182,21 +182,23 @@ import 
org.apache.nlpcraft.nlp.entity.parser.semantic.NCSemanticEntityParser.*
   * @param parser
   * @param macros
   * @param elements
-  * @param mdlSrc
+  * @param mdlSrcOpt
   */
 class NCSemanticEntityParser(
     stemmer: NCSemanticStemmer,
     parser: NCTokenParser,
     macros: Map[String, String] = Map.empty,
     elements: List[NCSemanticElement] = List.empty,
-    mdlSrc: String = null
+    mdlSrcOpt: Option[String] = None
 ) extends NCEntityParser with LazyLogging:
     require(stemmer != null)
     require(parser != null)
     require(macros != null)
-    require(elements != null && elements.nonEmpty || mdlSrc != null)
+    require(elements != null && elements.nonEmpty || mdlSrcOpt.isDefined)
 
-    private val scrType = if mdlSrc != null then 
NCSemanticSourceType.detect(mdlSrc) else null
+    private lazy val scrType =
+        require(mdlSrcOpt.isDefined)
+        NCSemanticSourceType.detect(mdlSrcOpt.get)
 
     private var synsHolder: NCSemanticSynonymsHolder = _
     private var elemsMap: Map[String, NCSemanticElement] = _
@@ -209,12 +211,12 @@ class NCSemanticEntityParser(
         val (macros, elements, elemsMap) =
             def toMap(elems: Seq[NCSemanticElement]): Map[String, 
NCSemanticElement] = elems.map(p => p.getId -> p).toMap
 
-            if mdlSrc != null then
-                val src = NCSemanticSourceReader.read(new 
BufferedInputStream(NCUtils.getStream(mdlSrc)), scrType)
-                logger.trace(s"Loaded resource: $mdlSrc")
-                (src.macros, src.elements, toMap(src.elements))
-            else
-                (this.macros, this.elements, toMap(this.elements))
+            mdlSrcOpt match
+                case Some(mdlSrc) =>
+                    val src = NCSemanticSourceReader.read(new 
BufferedInputStream(NCUtils.getStream(mdlSrc)), scrType)
+                    logger.trace(s"Loaded resource: $mdlSrcOpt")
+                    (src.macros, src.elements, toMap(src.elements))
+                case None => (this.macros, this.elements, toMap(this.elements))
 
         this.synsHolder = NCSemanticSynonymsProcessor.prepare(stemmer, parser, 
macros, elements)
         this.elemsMap = elemsMap

Reply via email to