This is an automated email from the ASF dual-hosted git repository. sergeykamov pushed a commit to branch NLPCRAFT-471 in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
commit 56a5894f4acaf9d90ccf990b9bc3b9981b1a0b29 Author: Sergey Kamov <[email protected]> AuthorDate: Tue Dec 28 22:40:20 2021 +0300 WIP. --- .../src/main/scala/org/apache/nlpcraft/NCModelClient.java | 8 +++----- .../nlp/entity/parser/opennlp/NCOpenNlpEntityParser.java | 13 +++++++++---- .../parser/opennlp/impl/NCOpenNlpEntityParserImpl.scala | 4 ++-- .../entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala | 1 - .../token/parser/opennlp/NCEnOpenNlpTokenParserSpec.scala | 2 +- .../org/apache/nlpcraft/internal/nlp/util/NCTestUtils.scala | 5 +++-- 6 files changed, 18 insertions(+), 15 deletions(-) diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelClient.java b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelClient.java index b70b2d1..603a481 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelClient.java +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/NCModelClient.java @@ -43,7 +43,7 @@ public class NCModelClient implements NCLifecycle { // TODO: } - private static void start(ExecutorService s, List<? extends NCLifecycle> list) { + private static void start(ExecutorService s, List<? extends NCLifecycle> list, NCModelConfig cfg) { assert s != null; if (list != null) @@ -74,11 +74,10 @@ public class NCModelClient implements NCLifecycle { public void start(NCModelConfig cfg) { verify(); - NCModelConfig cfg = mdl.getConfig(); ExecutorService s = getExecutorService(); try { - s.execute(() -> cfg.getTokenParser().start()); + start(s, cfg.getTokenParsers(), cfg); start(s, cfg.getEntityParsers(), cfg); start(s, cfg.getEntityEnrichers(), cfg); start(s, cfg.getTokenEnrichers(), cfg); @@ -97,8 +96,7 @@ public class NCModelClient implements NCLifecycle { stop(s, cfg.getTokenEnrichers()); stop(s, cfg.getEntityEnrichers()); stop(s, cfg.getEntityParsers()); - s.execute(() -> cfg.getTokenParser().stop()); - + stop(s, cfg.getTokenEnrichers()); } finally { stopExecutorService(s); 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/internal/nlp/entity/parser/opennlp/NCOpenNlpEntityParser.java index 3425af8..b02a6f8 100644 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/NCOpenNlpEntityParser.java +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/NCOpenNlpEntityParser.java @@ -17,11 +17,16 @@ package org.apache.nlpcraft.internal.nlp.entity.parser.opennlp; -import org.apache.nlpcraft.*; +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 java.io.File; -import java.util.*; +import java.util.List; +import java.util.Objects; /** * Generates entities with @@ -58,8 +63,8 @@ public class NCOpenNlpEntityParser implements NCEntityParser { } @Override - public void start() { - impl.start(); + public void start(NCModelConfig cfg) { + impl.start(cfg); } @Override 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/internal/nlp/entity/parser/opennlp/impl/NCOpenNlpEntityParserImpl.scala index 588923a..70a59bf 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/internal/nlp/entity/parser/opennlp/impl/NCOpenNlpEntityParserImpl.scala @@ -46,7 +46,7 @@ class NCOpenNlpEntityParserImpl(is: InputStream, res: String) extends NCEntityPa private case class Holder(start: Int, end: Int, name: String, probability: Double) - override def start(): Unit = + override def start(cfg: NCModelConfig): Unit = finder = new NameFinderME(new TokenNameFinderModel(NCUtils.getStream(res))) logger.trace(s"Loaded resource: $res") @@ -63,7 +63,7 @@ class NCOpenNlpEntityParserImpl(is: InputStream, res: String) extends NCEntityPa override def parse(req: NCRequest, cfg: NCModelConfig, toks: JList[NCToken]): JList[NCEntity] = val toksSeq = toks.asScala - find(toksSeq.map(_.getOriginalText).toArray).flatMap(h => + find(toksSeq.map(_.getText).toArray).flatMap(h => def calcIndex(getHolderIndex: Holder => Int): Int = toksSeq.find(_.getIndex == getHolderIndex(h)) match case Some(t) => t.getIndex 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/internal/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala index 0192085..f4762cc 100644 --- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala +++ b/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/entity/parser/opennlp/NCOpenNlpEntityParserSpec.scala @@ -62,7 +62,6 @@ class NCOpenNlpEntityParserSpec: require(resSeq.size == 1) val res = resSeq.head - NCTestUtils.printEntities(txt, res) require(res.exists(_.getOpt(s"opennlp:$expected:probability").isPresent)) 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/internal/nlp/token/parser/opennlp/NCEnOpenNlpTokenParserSpec.scala index 6eae9d3..3ba6869 100644 --- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/NCEnOpenNlpTokenParserSpec.scala +++ b/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/token/parser/opennlp/NCEnOpenNlpTokenParserSpec.scala @@ -87,5 +87,5 @@ class NCEnOpenNlpTokenParserSpec: test( // Nested brackets. "< < [ A ] > >", - toks => require(!toks.find(_.getText == "a").get.isStopWord) + toks => require(!toks.find(_.getText == "A").get.isStopWord) ) diff --git a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestUtils.scala b/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestUtils.scala index 6ef2feb..0afda8a 100644 --- a/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestUtils.scala +++ b/nlpcraft/src/test/java/org/apache/nlpcraft/internal/nlp/util/NCTestUtils.scala @@ -32,10 +32,11 @@ object NCTestUtils: def printTokens(toks: Seq[NCToken]): Unit = val tbl = new NCAsciiTable() - tbl #= ("Text", "POS", "Stem", "Lemma", "Start", "End", "Length", "Stopword", "Properties") + tbl #= ("Text", "Index", "POS", "Stem", "Lemma", "Start", "End", "Length", "Stopword", "Properties") for (t <- toks) tbl += ( t.getText, + t.getIndex, t.getPos, t.getStem, t.getLemma, @@ -61,7 +62,7 @@ object NCTestUtils: for (e <- ents) tbl += ( e.getId, - e.getTokens.asScala.map(_.getOriginalText).mkString("|"), + e.getTokens.asScala.map(_.getText).mkString("|"), e.keysSet().asScala.map(p => s"$p=${e.get[Any](p)}").mkString("{", ", ", "}") )
