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