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 <[email protected]>
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