This is an automated email from the ASF dual-hosted git repository. sergeykamov pushed a commit to branch scala in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
commit 11c764543bbaf3788cadccc35ab73cb82c5a3678 Author: Sergey Kamov <[email protected]> AuthorDate: Mon Jun 20 13:16:18 2022 +0300 Scala initial version fixes. --- .../scala/org/apache/nlpcraft/NCCallbackData.scala | 17 ++++++++ .../scala/org/apache/nlpcraft/NCIntentMatch.scala | 3 ++ .../scala/org/apache/nlpcraft/NCModelAdapter.scala | 9 +++- .../scala/org/apache/nlpcraft/NCModelConfig.scala | 13 ++++++ .../scala/org/apache/nlpcraft/NCPipeline.scala | 23 ++++++++++- .../org/apache/nlpcraft/NCPipelineBuilder.scala | 15 +++---- .../org/apache/nlpcraft/NCPropertyMapAdapter.scala | 19 +++++---- .../main/scala/org/apache/nlpcraft/NCResult.scala | 9 ++++ .../org/apache/nlpcraft/NCTokenEnricher.scala | 6 +++ .../scala/org/apache/nlpcraft/NCTokenParser.scala | 5 +++ .../org/apache/nlpcraft/NCTokenValidator.scala | 6 +++ .../main/scala/org/apache/nlpcraft/NCVariant.scala | 3 +- .../org/apache/nlpcraft/NCVariantFilter.scala | 8 +++- .../nlp/entity/parser/NCNLPEntityParser.scala | 3 +- .../nlp/entity/parser/NCOpenNLPEntityParser.scala | 3 ++ .../entity/parser/semantic/NCSemanticElement.scala | 26 ++++++++++++ .../parser/semantic/NCSemanticEntityParser.scala | 48 ++++++++++++++++------ .../entity/parser/semantic/NCSemanticStemmer.scala | 8 ++++ .../parser/semantic/impl/NCSemanticSynonym.scala | 4 +- .../enricher/NCOpenNLPLemmaPosTokenEnricher.scala | 5 ++- .../semantic/NCSemanticEntityParserLemmaSpec.scala | 2 +- .../org/apache/nlpcraft/nlp/util/NCTestUtils.scala | 12 +++--- 22 files changed, 200 insertions(+), 47 deletions(-) diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCCallbackData.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCCallbackData.scala index 2bc38c0b..cb09c81c 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCCallbackData.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCCallbackData.scala @@ -17,7 +17,24 @@ package org.apache.nlpcraft +/** + * + */ trait NCCallbackData: + /** + * + * @return + */ def getIntentId: String + + /** + * + * @return + */ def getCallbackArguments: List[List[NCEntity]] + + /** + * + * @return + */ def getCallback: List[List[NCEntity]] => NCResult diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentMatch.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentMatch.scala index 855de21e..b4b729ec 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentMatch.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCIntentMatch.scala @@ -17,6 +17,9 @@ package org.apache.nlpcraft +/** + * + */ trait NCIntentMatch: /** * Gets ID of the matched intent. diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAdapter.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAdapter.scala index fa9adf99..e9f19729 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAdapter.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelAdapter.scala @@ -17,6 +17,11 @@ package org.apache.nlpcraft +/** + * + * @param cfg + * @param pipeline + */ class NCModelAdapter(cfg: NCModelConfig, pipeline: NCPipeline) extends NCModel: - def getConfig: NCModelConfig = cfg - def getPipeline: NCPipeline = pipeline + override def getConfig: NCModelConfig = cfg + override def getPipeline: NCPipeline = pipeline diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfig.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfig.scala index e49fe348..c1926e74 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfig.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelConfig.scala @@ -20,6 +20,9 @@ package org.apache.nlpcraft import java.time.Duration +/** + * + */ object NCModelConfig: val DFLT_CONV_TIMEOUT: Long = Duration.ofMinutes(60).toMillis val DFLT_CONV_DEPTH = 3 @@ -28,6 +31,16 @@ object NCModelConfig: def apply(id: String, name: String, version: String, description: String, origin: String) = new NCModelConfig(id, name, version, description, origin) import org.apache.nlpcraft.NCModelConfig.* +/** + * + * @param id + * @param name + * @param version + * @param description + * @param origin + * @param conversationTimeout + * @param conversationDepth + */ case class NCModelConfig( id: String, name: String, diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCPipeline.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCPipeline.scala index 055fb654..5b762ab6 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCPipeline.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCPipeline.scala @@ -63,18 +63,39 @@ trait NCPipeline: * @return */ def getEntityParsers: List[NCEntityParser] + /** + * + * @return + */ def getTokenEnrichers: List[NCTokenEnricher] = List.empty + /** + * + * @return + */ def getEntityEnrichers: List[NCEntityEnricher] = List.empty + /** + * + * @return + */ def getTokenValidators: List[NCTokenValidator] = List.empty + /** + * + * @return + */ def getEntityValidators: List[NCEntityValidator] = List.empty + /** + * + * @return + */ def getVariantFilter: Option[NCVariantFilter] = None /** * Gets optional list of entity mappers. * - * @return Optional list of entity mappers. Can be empty but never {@code null}. */ + * @return Optional list of entity mappers. Can be empty but never {@code null}. + */ def getEntityMappers: List[NCEntityMapper] = List.empty diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCPipelineBuilder.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCPipelineBuilder.scala index 2026ae07..f12229e8 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCPipelineBuilder.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCPipelineBuilder.scala @@ -193,7 +193,7 @@ class NCPipelineBuilder: lang.toUpperCase match case "EN" => setEnComponents() - this.entParsers += new NCSemanticEntityParser(mkEnStemmer, mkEnOpenNLPTokenParser, macros, elms) + this.entParsers += NCSemanticEntityParser(mkEnStemmer, mkEnOpenNLPTokenParser, macros, elms) case _ => throw new IllegalArgumentException("Unsupported language: " + lang) this @@ -207,16 +207,17 @@ class NCPipelineBuilder: /** * * @param lang - * @param src - * @return */ - def withSemantic(lang: String, src: String): NCPipelineBuilder = + * @param mdlSrc + * @return + */ + def withSemantic(lang: String, mdlSrc: String): NCPipelineBuilder = Objects.requireNonNull(lang, "Language cannot be null.") - Objects.requireNonNull(src, "Model source cannot be null.") + Objects.requireNonNull(mdlSrc, "Model source cannot be null.") lang.toUpperCase match case "EN" => setEnComponents() - this.entParsers += new NCSemanticEntityParser(mkEnStemmer, mkEnOpenNLPTokenParser, mdlSrc = src) - case _ => throw new IllegalArgumentException("Unsupported language: " + lang) + this.entParsers += NCSemanticEntityParser(mkEnStemmer, mkEnOpenNLPTokenParser, mdlSrc) + case _ => throw new IllegalArgumentException(s"Unsupported language: $lang") this diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCPropertyMapAdapter.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCPropertyMapAdapter.scala index 3a05cec8..1c8c8e86 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCPropertyMapAdapter.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCPropertyMapAdapter.scala @@ -26,23 +26,24 @@ class NCPropertyMapAdapter extends NCPropertyMap: private val map = new ConcurrentHashMap[String, Any] // TODO: or error? - def get[T](key: String): T = getOpt(key).orNull.asInstanceOf[T] - def getOpt[T](key: String): Option[T] = + override def get[T](key: String): T = getOpt(key).orNull.asInstanceOf[T] + + override def getOpt[T](key: String): Option[T] = map.get(key) match case null => None case x => Some(x.asInstanceOf[T]) - def put[T](key: String, obj: Any): T = map.put(key, obj).asInstanceOf[T] + override def put[T](key: String, obj: Any): T = map.put(key, obj).asInstanceOf[T] - def putIfAbsent[T](key: String, obj: T): T = map.putIfAbsent(key, obj).asInstanceOf[T] + override def putIfAbsent[T](key: String, obj: T): T = map.putIfAbsent(key, obj).asInstanceOf[T] - def contains(key: String): Boolean = map.containsKey(key) + override def contains(key: String): Boolean = map.containsKey(key) - def remove[T](key: String): T = map.remove(key).asInstanceOf[T] + override def remove[T](key: String): T = map.remove(key).asInstanceOf[T] - def remove(key: String, obj: Any): Boolean = map.remove(key, obj) + override def remove(key: String, obj: Any): Boolean = map.remove(key, obj) - def keysSet = map.keys().asScala.toSet + override def keysSet = map.keys().asScala.toSet - def clear(): Unit = map.clear() + override def clear(): Unit = map.clear() \ No newline at end of file diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResult.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResult.scala index f65048a2..83826c4a 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResult.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCResult.scala @@ -19,9 +19,18 @@ package org.apache.nlpcraft import org.apache.nlpcraft.NCResultType.* +/** + * + */ object NCResult: def apply(): NCResult = new NCResult(body = null, resultType = null, intentId = null) def apply(body: Any, resultType: NCResultType): NCResult = new NCResult(body = body, resultType = resultType, intentId = null) def apply(body: Any, resultType: NCResultType, intentId: String): NCResult = new NCResult(body = body, resultType =resultType, intentId) +/** + * + * @param body + * @param resultType + * @param intentId + */ case class NCResult(body: Any, resultType: NCResultType, intentId: String) diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCTokenEnricher.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCTokenEnricher.scala index de5fcfa3..f9d4739b 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCTokenEnricher.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCTokenEnricher.scala @@ -29,4 +29,10 @@ package org.apache.nlpcraft * @see NCEntityValidator * @see NCEntityMapper */ trait NCTokenEnricher extends NCLifecycle: + /** + * + * @param req + * @param cfg + * @param toks + */ def enrich(req: NCRequest, cfg: NCModelConfig, toks: List[NCToken]): Unit diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCTokenParser.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCTokenParser.scala index 1679da5d..9ce8d495 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCTokenParser.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCTokenParser.scala @@ -33,4 +33,9 @@ package org.apache.nlpcraft * @see NCEntityValidator * @see NCEntityMapper */ trait NCTokenParser: + /** + * + * @param text + * @return + */ def tokenize(text: String): List[NCToken] diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCTokenValidator.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCTokenValidator.scala index 49185a0d..388352bd 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCTokenValidator.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCTokenValidator.scala @@ -29,6 +29,12 @@ package org.apache.nlpcraft * @see NCEntityValidator * @see NCEntityMapper */ trait NCTokenValidator extends NCLifecycle: + /** + * + * @param req + * @param cfg + * @param toks + */ def validate(req: NCRequest, cfg: NCModelConfig, toks: List[NCToken]): Unit diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCVariant.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCVariant.scala index 3fa27cc2..68b509f9 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCVariant.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCVariant.scala @@ -27,5 +27,6 @@ trait NCVariant: /** * Gets the list of entities for this variant. * - * @return List of entities for this variant. Can be empty but never {@code null}. */ + * @return List of entities for this variant. Can be empty but never {@code null}. + */ def getEntities: List[NCEntity] diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCVariantFilter.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCVariantFilter.scala index 755b9524..1de2c157 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCVariantFilter.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCVariantFilter.scala @@ -17,9 +17,15 @@ package org.apache.nlpcraft +/** + * + */ trait NCVariantFilter extends NCLifecycle: /** + * * @param req * @param cfg - * @param vars */ + * @param vars + * @return + */ def filter(req: NCRequest, cfg: NCModelConfig, vars: List[NCVariant]): List[NCVariant] diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCNLPEntityParser.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCNLPEntityParser.scala index 7a046cf7..b809a57a 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCNLPEntityParser.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCNLPEntityParser.scala @@ -28,7 +28,8 @@ import java.util.stream.Collectors object NCNLPEntityParser: private def id = "nlp:token" -import org.apache.nlpcraft.nlp.entity.parser.NCNLPEntityParser.* +import NCNLPEntityParser.* + /** * */ diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCOpenNLPEntityParser.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCOpenNLPEntityParser.scala index c2bf53bb..0462b8aa 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCOpenNLPEntityParser.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/NCOpenNLPEntityParser.scala @@ -32,6 +32,9 @@ import scala.jdk.CollectionConverters.* import scala.language.postfixOps import scala.util.Using +/** + * + */ object NCOpenNLPEntityParser: def apply(src: String): NCOpenNLPEntityParser = Objects.requireNonNull(src, "Model source cannot be null.") diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticElement.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticElement.scala index 28480f24..f27c6866 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticElement.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticElement.scala @@ -16,10 +16,36 @@ */ package org.apache.nlpcraft.nlp.entity.parser.semantic +/** + * + */ trait NCSemanticElement: + /** + * + * @return + */ def getId: String + + /** + * + * @return + */ def getGroups: Set[String] = Set(getId) + + /** + * + * @return + */ def getValues: Map[String, Set[String]] = Map.empty + + /** + * + * @return + */ def getSynonyms: Set[String] = Set.empty + /** + * + * @return + */ def getProperties: Map[String, AnyRef] = Map.empty 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 da2eebd6..29dc62da 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 @@ -40,30 +40,53 @@ object NCSemanticEntityParser: * @param stemmer * @param parser * @param macros - * @param elms + * @param elements * @return */ def apply( stemmer: NCSemanticStemmer, parser: NCTokenParser, macros: Map[String, String], - elms: List[NCSemanticElement] + elements: List[NCSemanticElement] ): NCSemanticEntityParser = - require(elms != null) + Objects.requireNonNull(stemmer, "Stemmer cannot be null.") + Objects.requireNonNull(parser, "Parser cannot be null.") + Objects.requireNonNull(macros, "Macros cannot be null.") + Objects.requireNonNull(elements, "Elements cannot be null.") - new NCSemanticEntityParser(stemmer, parser, macros = macros, elements = elms) + new NCSemanticEntityParser(stemmer, parser, macros = macros, elements = elements) /** * * @param stemmer * @param parser - * @param src + * @param elements * @return */ - def apply(stemmer: NCSemanticStemmer, parser: NCTokenParser, src: String): NCSemanticEntityParser = - require(src != null) + def apply( + stemmer: NCSemanticStemmer, + parser: NCTokenParser, + elements: List[NCSemanticElement] + ): NCSemanticEntityParser = + Objects.requireNonNull(stemmer, "Stemmer cannot be null.") + Objects.requireNonNull(parser, "Parser cannot be null.") + Objects.requireNonNull(elements, "Elements cannot be null.") - new NCSemanticEntityParser(stemmer, parser, mdlSrc = src) + new NCSemanticEntityParser(stemmer, parser, macros = Map.empty, elements = elements) + + /** + * + * @param stemmer + * @param parser + * @param mdlSrc + * @return + */ + def apply(stemmer: NCSemanticStemmer, parser: NCTokenParser, mdlSrc: String): NCSemanticEntityParser = + Objects.requireNonNull(stemmer, "Stemmer cannot be null.") + Objects.requireNonNull(parser, "Parser cannot be null.") + Objects.requireNonNull(mdlSrc, "Model source cannot be null.") + + new NCSemanticEntityParser(stemmer, parser, mdlSrc = mdlSrc) /** * @param baseTokens Tokens. @@ -168,11 +191,10 @@ class NCSemanticEntityParser( elements: List[NCSemanticElement] = List.empty, mdlSrc: String = null ) extends NCEntityParser with LazyLogging: - Objects.requireNonNull(stemmer, "Stemmer cannot be null.") - Objects.requireNonNull(parser, "Parser cannot be null.") - - // TODO: exception. - require(elements != null && elements.nonEmpty || mdlSrc != null && mdlSrc.nonEmpty) + require(stemmer != null) + require(parser != null) + require(macros != null) + require(elements != null && elements.nonEmpty || mdlSrc != null) private val scrType = if mdlSrc != null then NCSemanticSourceType.detect(mdlSrc) else null diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticStemmer.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticStemmer.scala index eb36e688..7fa335cf 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticStemmer.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticStemmer.scala @@ -16,5 +16,13 @@ */ package org.apache.nlpcraft.nlp.entity.parser.semantic +/** + * + */ trait NCSemanticStemmer: + /** + * + * @param txt + * @return + */ def stem(txt: String): String diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/impl/NCSemanticSynonym.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/impl/NCSemanticSynonym.scala index 9ead7345..bb8aeb6d 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/impl/NCSemanticSynonym.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/impl/NCSemanticSynonym.scala @@ -49,9 +49,7 @@ private[impl] case class NCSemanticSynonymChunk( * @param chunks * @param value */ -private[impl] case class NCSemanticSynonym( - chunks: Seq[NCSemanticSynonymChunk], value: String = null -) extends Comparable[NCSemanticSynonym]: +private[impl] case class NCSemanticSynonym(chunks: Seq[NCSemanticSynonymChunk], value: String = null) extends Comparable[NCSemanticSynonym]: require(chunks != null) require(chunks.nonEmpty) diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCOpenNLPLemmaPosTokenEnricher.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCOpenNLPLemmaPosTokenEnricher.scala index eccd8095..ed4adb2d 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCOpenNLPLemmaPosTokenEnricher.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/nlp/token/enricher/NCOpenNLPLemmaPosTokenEnricher.scala @@ -34,7 +34,7 @@ import scala.concurrent.ExecutionContext * - tagger: http://opennlp.sourceforge.net/models-1.5/en-pos-maxent.bin * - lemmatizer: https://raw.githubusercontent.com/richardwilly98/elasticsearch-opennlp-auto-tagging/master/src/main/resources/models/en-lemmatizer.dict */ -class NCOpenNLPLemmaPosTokenEnricher(posMdlSrc: String, lemmaDicSrc: String) extends NCTokenEnricher with LazyLogging: +class NCOpenNLPLemmaPosTokenEnricher(posMdlSrc: String = null, lemmaDicSrc: String = null) extends NCTokenEnricher with LazyLogging: private var tagger: POSTaggerME = _ private var lemmatizer: DictionaryLemmatizer = _ @@ -47,11 +47,13 @@ class NCOpenNLPLemmaPosTokenEnricher(posMdlSrc: String, lemmaDicSrc: String) ext if posMdlSrc != null then tagger = new POSTaggerME(new POSModel(NCUtils.getStream(posMdlSrc))) logger.trace(s"Loaded resource: $posMdlSrc") + else logger.warn("POS tagger is not configured.") }, () => { if lemmaDicSrc != null then lemmatizer = new DictionaryLemmatizer(NCUtils.getStream(lemmaDicSrc)) logger.trace(s"Loaded resource: $lemmaDicSrc") + else logger.warn("Lemmatizer is not configured.") } ) )(ExecutionContext.Implicits.global) @@ -87,4 +89,3 @@ class NCOpenNLPLemmaPosTokenEnricher(posMdlSrc: String, lemmaDicSrc: String) ext () // Otherwise - NPE. } } - diff --git a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserLemmaSpec.scala b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserLemmaSpec.scala index 43a70e03..ff778fa2 100644 --- a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserLemmaSpec.scala +++ b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/entity/parser/semantic/NCSemanticEntityParserLemmaSpec.scala @@ -68,7 +68,7 @@ class NCSemanticEntityParserLemmaSpec: toks.foreach(t => t.put("lemma", wrap(t.get[String]("lemma")))) ). // 2. Semantic parser with fixed stemmer which stems only lemmas. - withEntityParser(new NCSemanticEntityParser(lemmaStemmer, EN_TOK_PARSER, elements = elems)). + withEntityParser(NCSemanticEntityParser(lemmaStemmer, EN_TOK_PARSER, elems)). build ) diff --git a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/NCTestUtils.scala b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/NCTestUtils.scala index a816b439..95339821 100644 --- a/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/NCTestUtils.scala +++ b/nlpcraft/src/test/scala/org/apache/nlpcraft/nlp/util/NCTestUtils.scala @@ -137,8 +137,8 @@ object NCTestUtils: * @param macros * @return */ - def mkEnSemanticParser(elms: List[NCSemanticElement], macros: Map[String, String] = null): NCSemanticEntityParser = - new NCSemanticEntityParser(mkSemanticStemmer, EN_TOK_PARSER, macros, elms) + def mkEnSemanticParser(elms: List[NCSemanticElement], macros: Map[String, String] = Map.empty): NCSemanticEntityParser = + NCSemanticEntityParser(mkSemanticStemmer, EN_TOK_PARSER, macros, elms) /** * @@ -146,12 +146,12 @@ object NCTestUtils: * @return */ def mkEnSemanticParser(elms: NCSemanticElement*): NCSemanticEntityParser = - new NCSemanticEntityParser(mkSemanticStemmer, EN_TOK_PARSER, null, elms.toList) + NCSemanticEntityParser(mkSemanticStemmer, EN_TOK_PARSER, elms.toList) /** * - * @param src + * @param mdlSrc * @return */ - def mkEnSemanticParser(src: String): NCSemanticEntityParser = - new NCSemanticEntityParser(mkSemanticStemmer, EN_TOK_PARSER, mdlSrc = src) \ No newline at end of file + def mkEnSemanticParser(mdlSrc: String): NCSemanticEntityParser = + NCSemanticEntityParser(mkSemanticStemmer, EN_TOK_PARSER, mdlSrc) \ No newline at end of file
