This is an automated email from the ASF dual-hosted git repository.
sergeykamov pushed a commit to branch NLPCRAFT-415
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-415 by this push:
new ddef0ff WIP.
ddef0ff is described below
commit ddef0fff167e44036b857be08a7d883de7bef225
Author: Sergey Kamov <[email protected]>
AuthorDate: Sun Aug 22 23:02:57 2021 +0300
WIP.
---
.../nlpcraft/server/probe/NCProbeManager.scala | 23 ++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/probe/NCProbeManager.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/probe/NCProbeManager.scala
index ad9f84a..66804a3 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/probe/NCProbeManager.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/probe/NCProbeManager.scala
@@ -1126,16 +1126,17 @@ object NCProbeManager extends NCService {
)
val macros =
res.remove("macros").asInstanceOf[java.util.Map[String, String]].asScala
-
var syns =
res.remove("synonyms").asInstanceOf[java.util.List[String]].asScala
var vals =
res.remove("values").asInstanceOf[java.util.Map[String,
java.util.List[String]]].asScala
+ require(macros != null)
+ require(syns != null)
+ require(vals != null)
+
val parser = NCMacroParser(macros.toList)
- var synsExp: Seq[(String, Seq[String])] =
- syns.map(s => s -> parser.expand(s))
- var valsExp: Map[String, mutable.Buffer[(String,
Seq[String])]] =
- vals.map(v => v._1 -> v._2.asScala.map(s => s ->
parser.expand(s))).toMap
+ var synsExp = syns.map(s => s -> parser.expand(s))
+ var valsExp = vals.map(v => v._1 -> v._2.asScala.map(s =>
s -> parser.expand(s))).toMap
pattern match {
case Some(p) =>
@@ -1154,9 +1155,15 @@ object NCProbeManager extends NCService {
else
None
}
- vals = vals.map { case (name, syns) => name ->
syns.asScala.filter(s =>
- valsExp.exists { case (valExpName, valExpSyns)
=> name == valExpName && valExpSyns.exists(_._1 == s)}
- )}.filter(_._2.nonEmpty).map(p => p._1 ->
p._2.asJava)
+ vals = vals.map {
+ case (vName, vSyns) =>
+ vName ->
+ vSyns.asScala.filter(s =>
+ valsExp.exists {
+ case (vExpName, vExpSyns) => vName
== vExpName && vExpSyns.exists(_._1 == s)
+ }
+ )
+ }.filter(_._2.nonEmpty).map(p => p._1 ->
p._2.asJava)
case None => // No-op.
}