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 58dbb46 WIP.
58dbb46 is described below
commit 58dbb463b1224aa6da066d5ae14d4d34a2537a9e
Author: Sergey Kamov <[email protected]>
AuthorDate: Wed Jun 30 17:26:20 2021 +0300
WIP.
---
.../nlp/enrichers/ctxword/NCContextWordEnricher.scala | 8 +++++++-
.../org/apache/nlpcraft/server/probe/NCProbeManager.scala | 5 ++++-
.../apache/nlpcraft/model/ctxword/NCContextWordSpec.scala | 13 +++++++------
.../apache/nlpcraft/model/ctxword/NCContextWordSpec2.scala | 5 +++--
4 files changed, 21 insertions(+), 10 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 81633e0..3d2187b 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
@@ -36,6 +36,7 @@ import scala.jdk.CollectionConverters.SeqHasAsJava
/**
* ContextWord enricher.
+ * TODO: add metrics usage.
*/
object NCContextWordEnricher extends NCServerEnricher {
private final val MAX_CTXWORD_SCORE = 2
@@ -443,4 +444,9 @@ object NCContextWordEnricher extends NCServerEnricher {
println("detected="+detected.map(p => p._1.lemma -> p._2))
case None => // No-op.
}
-}
+
+ def onDisconnectProbe(probeId: String): Unit = {
+ valuesStems.synchronized { valuesStems --=
valuesStems.keySet.filter(_.probeId == probeId) }
+ samples.synchronized { samples --= samples.keySet.filter(_.probeId ==
probeId) }
+ }
+}
\ No newline at end of file
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 3f865ed..6488bb1 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
@@ -35,6 +35,7 @@ import org.apache.nlpcraft.probe.mgrs.NCProbeMessage
import org.apache.nlpcraft.server.company.NCCompanyManager
import org.apache.nlpcraft.server.mdo._
import org.apache.nlpcraft.server.nlp.enrichers.NCServerEnrichmentManager
+import org.apache.nlpcraft.server.nlp.enrichers.ctxword.NCContextWordEnricher
import org.apache.nlpcraft.server.proclog.NCProcessLogManager
import org.apache.nlpcraft.server.query.NCQueryManager
import org.apache.nlpcraft.server.sql.NCSql
@@ -67,7 +68,6 @@ object NCProbeManager extends NCService {
def reconnectTimeoutMs: Long = getLong(s"$pre.reconnectTimeoutMs")
def pingTimeoutMs: Long = getLong(s"$pre.pingTimeoutMs")
def soTimeoutMs: Int = getInt(s"$pre.soTimeoutMs")
-
/**
*
*/
@@ -259,6 +259,9 @@ object NCProbeManager extends NCService {
// Clears unused models.
mdls --= mdls.keys.filter(id => !probes.exists { case
(_, p) => p.probe.models.exists(_.id == id) })
+
+ // TODO: add new interface for server enrichers?
(services)
+
NCContextWordEnricher.onDisconnectProbe(probeKey.probeId)
}
case Some(hld) =>
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 8615d8a..a871b9a 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
@@ -49,7 +49,8 @@ class NCContextWordSpecModel extends NCModel {
override def getName: String = this.getClass.getSimpleName
override def getVersion: String = "1.0.0"
- val level = 0.4
+ val MDL_LEVEL = 0.4
+ val MDL_POLICY = MIN
override def getContextWordModelConfig: Optional[NCContextWordModelConfig]
= {
Optional.of(
@@ -58,8 +59,8 @@ class NCContextWordSpecModel extends NCModel {
getElements.asScala.map(e =>
e.getId ->
new NCContextWordElementConfig() {
- override def getPolicy: NCContextWordElementPolicy
= MIN
- override def getScore: Double = level
+ override def getPolicy: NCContextWordElementPolicy
= MDL_POLICY
+ override def getScore: Double = MDL_LEVEL
}
).toMap.asJava
@@ -86,9 +87,9 @@ class NCContextWordSpecModel extends NCModel {
override def getElements: util.Set[NCElement] =
Set(
- Element("class:cars", level, Value("BMW")),
- Element("class:animal", level, Value("fox"), Value("cat",
"tomcat")),
- Element("class:weather", level, Value("temperature"),
Value("rain"), Value("sun"))
+ Element("class:cars", MDL_LEVEL, Value("BMW")),
+ Element("class:animal", MDL_LEVEL, Value("fox"), Value("cat",
"tomcat")),
+ Element("class:weather", MDL_LEVEL, Value("temperature"),
Value("rain"), Value("sun"))
).map(p => {
val e: NCElement = p
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec2.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec2.scala
index 8d12d43..e99e326 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec2.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/ctxword/NCContextWordSpec2.scala
@@ -17,6 +17,7 @@
package org.apache.nlpcraft.model.ctxword
+import
org.apache.nlpcraft.model.NCContextWordElementConfig.NCContextWordElementPolicy.ANY
import org.apache.nlpcraft.model.{NCContext, NCResult}
import org.apache.nlpcraft.{NCTestContext, NCTestEnvironment}
import org.junit.jupiter.api.Test
@@ -25,8 +26,8 @@ import org.junit.jupiter.api.Test
* Test model.
*/
class NCContextWordSpecModel2 extends NCContextWordSpecModel {
- override val level: Double = 0
-
+ override val MDL_LEVEL: Double = 0
+ override val MDL_POLICY = ANY
override def onContext(ctx: NCContext): NCResult = NCResult.text("OK")
}