This is an automated email from the ASF dual-hosted git repository.
sergeykamov pushed a commit to branch NLPCRAFT-70_NEW
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-70_NEW by this push:
new 101a0e0 WIP.
101a0e0 is described below
commit 101a0e0241d9bea0a94f847a988219e8facab2ad
Author: Sergey Kamov <[email protected]>
AuthorDate: Sat Jun 26 11:11:18 2021 +0300
WIP.
---
.../nlp/enrichers/ctxword/NCContextWordEnricher.scala | 15 ++++++++++-----
.../apache/nlpcraft/model/ctxword/NCContextWordSpec.scala | 14 +++++++-------
2 files changed, 17 insertions(+), 12 deletions(-)
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/ctxword/NCContextWordEnricher.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/ctxword/NCContextWordEnricher.scala
index d60d15b..f734afb 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/ctxword/NCContextWordEnricher.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/enrichers/ctxword/NCContextWordEnricher.scala
@@ -70,12 +70,19 @@ object NCContextWordEnricher extends NCServerEnricher {
/**
*
+ * @param awaitable
+ * @tparam T
+ * @return
+ */
+ private def syncExec[T](awaitable : scala.concurrent.Awaitable[T]): T =
Await.result(awaitable, Duration.Inf)
+
+ /**
+ *
* @param reqs
* @return
*/
private def getSentenceData(reqs: Seq[NCSuggestionRequest]):
Map[NCWordSuggestion, Int] =
- Await.result(NCSuggestSynonymManager.suggestWords(reqs), Duration.Inf).
- flatMap { case (req, suggs) => suggs.map(_ -> req.index) }
+ syncExec(NCSuggestSynonymManager.suggestWords(reqs)).flatMap { case
(req, suggs) => suggs.map(_ -> req.index) }
/**
*
@@ -154,9 +161,7 @@ object NCContextWordEnricher extends NCServerEnricher {
val map = recs.flatMap { case (elemId, recs) => recs.map(p =>
p.request -> ElementValue(elemId, p.value)) }
if (recs.nonEmpty)
- Await.result(
-
NCSuggestSynonymManager.suggestWords(recs.flatMap(_._2.map(_.request)).toSeq),
Duration.Inf
- ).
+
syncExec(NCSuggestSynonymManager.suggestWords(recs.flatMap(_._2.map(_.request)).toSeq)).
map { case (req, suggs) =>
map(req).elementId -> suggs.groupBy(p => stem(p.word)).map {
case (stem, suggs) =>
stem -> normalizeScore(suggs.map(_.score).max)
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec.scala
index 95e5e6d..ce3ec97 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec.scala
@@ -36,15 +36,15 @@ class NCContextWordSpecModel extends NCModel {
override def getSynonyms: util.List[String] = (Seq(name) ++
syns).asJava
}
- case class Elem(id: String, level: Double, values: NCValue*) extends
NCElement {
+ case class Element(id: String, level: Double, values: NCValue*) extends
NCElement {
override def getId: String = id
override def getValues: util.List[NCValue] = values.asJava
override def getContextWordStrictLevel: Optional[lang.Double] =
Optional.of(level)
override def getGroups: util.List[String] =
Collections.singletonList("testGroup")
}
- object Elem {
- def apply(id: String, values: NCValue*): Elem = new Elem(id, LEVEL,
values: _*)
+ object Element {
+ def apply(id: String, values: NCValue*): Element = new Element(id,
LEVEL, values: _*)
}
override def getId: String = this.getClass.getSimpleName
@@ -53,9 +53,9 @@ class NCContextWordSpecModel extends NCModel {
override def getElements: util.Set[NCElement] =
Set(
- Elem("class:cars", Value("BMW")),
- Elem("class:animal", Value("fox"), Value("cat", "tomcat")),
- Elem("class:weather", Value("temperature"), Value("rain"),
Value("sun"))
+ Element("class:cars", Value("BMW")),
+ Element("class:animal", Value("fox"), Value("cat", "tomcat")),
+ Element("class:weather", Value("temperature"), Value("rain"),
Value("sun"))
).map(p => {
val e: NCElement = p
@@ -73,7 +73,7 @@ class NCContextWordSpecModel extends NCModel {
"A fox eats hens",
"The fox was already in your chicken house",
- "What is the local temperature ?",
+ "What is the local temperature?",
"This is the first day of heavy rain",
"It is the beautiful day, the sun is shining ",
)