This is an automated email from the ASF dual-hosted git repository.
sergeykamov pushed a commit to branch NLPCRAFT-431
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-431 by this push:
new ab6dc1f WIP.
ab6dc1f is described below
commit ab6dc1f2deff61a3f99857abd9b94dbb86f70444
Author: Sergey Kamov <[email protected]>
AuthorDate: Fri Sep 3 12:31:30 2021 +0300
WIP.
---
.../mgrs/nlp/enrichers/model/NCModelEnricher.scala | 4 ++-
.../probe/mgrs/sentence/NCSentenceManager.scala | 6 ++--
.../model/NCEnricherNestedModelSpec3.scala | 8 ++---
.../model/NCEnricherNestedModelSpec4.scala | 4 +--
.../model/NCEnricherNestedModelSpec5.scala | 4 +--
...pec5.scala => NCEnricherNestedModelSpec6.scala} | 37 ++++++++++++----------
.../space/NCNestedTestModelAnyNotSpace1.scala | 4 +--
7 files changed, 33 insertions(+), 34 deletions(-)
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
index 5d042e6..6e6f7d1 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCModelEnricher.scala
@@ -423,7 +423,9 @@ object NCModelEnricher extends NCProbeEnricher {
if (resIdxsSorted == sliceToksIdxs && U.isContinuous(resIdxsSorted))
contCache(elemId) += sliceToksIdxs
- val ok = !greedy || !alreadyMarked(ns, elemId, elemToks, sliceToksIdxs)
+ val ok =
+ (!greedy || !alreadyMarked(ns, elemId, elemToks, sliceToksIdxs)) &&
+ ( parts.isEmpty || !parts.exists { case (t, _) => t.getId ==
elemId })
if (ok)
mark(ns, elemId, elemToks, direct = syn.isDirect &&
U.isIncreased(resIdxs), syn = Some(syn), parts = parts)
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/sentence/NCSentenceManager.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/sentence/NCSentenceManager.scala
index cd29f66..d5dfc1e 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/sentence/NCSentenceManager.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/sentence/NCSentenceManager.scala
@@ -656,8 +656,8 @@ object NCSentenceManager extends NCService {
delCombs.filter(_ != note).flatMap(n => if
(getPartKeys(n).contains(key)) Some(n) else None)
if (
- delCombOthers.exists(o => noteWordsIdxs ==
o.wordIndexes.toSet) ||
- delCombOthers.nonEmpty && !delCombOthers.exists(o =>
noteWordsIdxs.subsetOf(o.wordIndexes.toSet))
+ delCombOthers.nonEmpty &&
+ !delCombOthers.exists(o =>
noteWordsIdxs.subsetOf(o.wordIndexes.toSet))
)
Some(note)
else
@@ -798,4 +798,4 @@ object NCSentenceManager extends NCService {
* @param srvReqId
*/
def clearCache(srvReqId: String): Unit = combCache -= srvReqId
-}
+}
\ No newline at end of file
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec3.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec3.scala
index 60e83c6..91ce96f 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec3.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec3.scala
@@ -27,9 +27,7 @@ import scala.jdk.CollectionConverters.SetHasAsJava
/**
* Nested Elements test model.
*/
-class NCNestedTestModel3 extends NCModelAdapter(
- "nlpcraft.nested3.test.mdl", "Nested Data Test Model", "1.0"
-) {
+class NCNestedTestModel3 extends NCModelAdapter("nlpcraft.nested3.test.mdl",
"Nested Test Model", "1.0") {
override def getElements: util.Set[NCElement] =
Set(
NCTestElement("e1", "//[a-zA-Z0-9]+//"),
@@ -40,7 +38,7 @@ class NCNestedTestModel3 extends NCModelAdapter(
override def getEnabledBuiltInTokens: util.Set[String] =
Set.empty[String].asJava
@NCIntent("intent=onE2 term(t1)={# == 'e2'}[12, 100]")
- def onAB(ctx: NCIntentMatch): NCResult = NCResult.text("OK")
+ def onAB(): NCResult = NCResult.text("OK")
}
/**
@@ -49,5 +47,5 @@ class NCNestedTestModel3 extends NCModelAdapter(
@NCTestEnvironment(model = classOf[NCNestedTestModel3], startClient = true)
class NCEnricherNestedModelSpec3 extends NCTestContext {
@Test
- def test(): Unit = checkIntent("a " * 18, "onE2")
+ def test(): Unit = checkIntent("a " * 15, "onE2")
}
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec4.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec4.scala
index e049a39..27082f1 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec4.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec4.scala
@@ -27,9 +27,7 @@ import scala.jdk.CollectionConverters.SetHasAsJava
/**
* Nested Elements test model.
*/
-class NCNestedTestModel41 extends NCModelAdapter(
- "nlpcraft.nested4.test.mdl", "Nested Data Test Model", "1.0"
-) {
+class NCNestedTestModel41 extends NCModelAdapter("nlpcraft.nested4.test.mdl",
"Nested Test Model", "1.0") {
override def getElements: util.Set[NCElement] =
Set(
NCTestElement("e1", "//[a-zA-Z0-9]+//"),
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
index 72d6589..f8a394a 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
@@ -26,9 +26,7 @@ import java.util
/**
* Nested Elements test model.
*/
-class NCNestedTestModel5 extends NCModelAdapter(
- "nlpcraft.nested5.test.mdl", "Nested Data Test Model", "1.0"
-) {
+class NCNestedTestModel5 extends NCModelAdapter("nlpcraft.nested5.test.mdl",
"Nested Test Model", "1.0") {
override def getElements: util.Set[NCElement] =
Set(
NCTestElement("cityWrapper", "^^[cityAlias]{# ==
'nlpcraft:city'}^^"),
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec6.scala
similarity index 55%
copy from
nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
copy to
nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec6.scala
index 72d6589..5a8cb15 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec5.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/NCEnricherNestedModelSpec6.scala
@@ -17,37 +17,40 @@
package org.apache.nlpcraft.probe.mgrs.nlp.enrichers.model
-import org.apache.nlpcraft.model.{NCElement, NCIntent, NCIntentMatch,
NCModelAdapter, NCResult}
+import org.apache.nlpcraft.model.{NCContext, NCElement, NCModelAdapter,
NCResult}
import org.apache.nlpcraft.{NCTestContext, NCTestElement, NCTestEnvironment}
import org.junit.jupiter.api.Test
import java.util
+import scala.jdk.CollectionConverters.{IterableHasAsScala, SetHasAsJava}
/**
* Nested Elements test model.
*/
-class NCNestedTestModel5 extends NCModelAdapter(
- "nlpcraft.nested5.test.mdl", "Nested Data Test Model", "1.0"
-) {
+class NCNestedTestModel6 extends NCModelAdapter("nlpcraft.nested5.test.mdl",
"Nested Test Model", "1.0") {
+ override def getAbstractTokens: util.Set[String] =
Set("nlpcraft:date").asJava
+
override def getElements: util.Set[NCElement] =
Set(
- NCTestElement("cityWrapper", "^^[cityAlias]{# ==
'nlpcraft:city'}^^"),
+ NCTestElement("dateWrapper", "^^{# == 'nlpcraft:date'}^^"),
)
- @NCIntent(
- "intent=bigCity " +
- "term(city)={" +
- " # == 'cityWrapper' && " +
- " get(meta_part('cityAlias', 'nlpcraft:city:citymeta'),
'population') >= 10381222" +
- "}"
- )
- private def onBigCity(ctx: NCIntentMatch): NCResult = NCResult.text("OK")
-}
+ override def onContext(ctx: NCContext): NCResult = {
+ require(ctx.getRequest.getNormalizedText == "today")
+
+ println(s"Variants:\n${ctx.getVariants.asScala.mkString("\n")}")
+
+ // `nlpcraft:date` will be deleted.
+ require(ctx.getVariants.size() == 1)
+
+ NCResult.text("OK")
+ }
+}
/**
*
*/
-@NCTestEnvironment(model = classOf[NCNestedTestModel5], startClient = true)
-class NCEnricherNestedModelSpec5 extends NCTestContext {
+@NCTestEnvironment(model = classOf[NCNestedTestModel6], startClient = true)
+class NCEnricherNestedModelSpec6 extends NCTestContext {
@Test
- def test(): Unit = checkIntent("moscow", "bigCity")
+ def test(): Unit = checkResult("today", "OK")
}
\ No newline at end of file
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/anyword/space/NCNestedTestModelAnyNotSpace1.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/anyword/space/NCNestedTestModelAnyNotSpace1.scala
index c3d1b83..6769418 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/anyword/space/NCNestedTestModelAnyNotSpace1.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/model/anyword/space/NCNestedTestModelAnyNotSpace1.scala
@@ -31,13 +31,13 @@ import scala.jdk.CollectionConverters.SetHasAsJava
* 'any' element's position is not restricted.
*/
class NCNestedTestModelAnyNotSpace1 extends NCNestedModelAnyAdapter {
- //override def getAbstractTokens: util.Set[String] = Set("a", "b",
"any").asJava
+ override def getAbstractTokens: util.Set[String] = Set("a", "b",
"any").asJava
override def getElements: util.Set[NCElement] =
Set(
NCTestElement("a"),
NCTestElement("b"),
- mkNotGreedy("any", "{^^{tok_txt != '---'}^^}[1, 3]"),
+ mkNotGreedy("any", "{^^{tok_txt != ' '}^^}[1, 3]"),
NCTestElement("compose", "^^{# == 'a'}^^ ^^{# == 'any'}^^ ^^{# ==
'b'}^^")
)