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 4db1dde WIP.
4db1dde is described below
commit 4db1dde650b39548c854f5ee4dabed901b137169
Author: Sergey Kamov <[email protected]>
AuthorDate: Sat Jun 26 09:34:57 2021 +0300
WIP.
---
.../nlp/enrichers/ctxword/NCContextWordEnricher.scala | 19 +++++++++----------
1 file changed, 9 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 792dbf5..0ee5932 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
@@ -34,12 +34,13 @@ import scala.concurrent.duration.Duration
*/
object NCContextWordEnricher extends NCServerEnricher {
private final val MAX_CTXWORD_SCORE = 2
- private final val NOT_SCORE = -1.0
+ private final val EXCLUSIVE_MIN_SCORE = -1.0
private case class ModelProbeKey(probeId: String, modelId: String)
private case class WordIndex(word: String, index: Int)
private case class ElementValue(elementId: String, value: String)
private case class ElementScore(elementId: String, score: Double)
+
private type ElementStemScore = Map[/** Element ID */String, Map[/** Stem
*/String,/** Score */Double]]
@volatile private var samples: mutable.HashMap[ModelProbeKey,
ElementStemScore] = _
@@ -123,9 +124,7 @@ object NCContextWordEnricher extends NCServerEnricher {
case None =>
val res = askSamples(cfg)
- samples.synchronized {
- samples += key -> res
- }
+ samples.synchronized { samples += key -> res }
res
}
@@ -194,7 +193,7 @@ object NCContextWordEnricher extends NCServerEnricher {
for (
nounTok <- nounToks;
(elemId, suggs) <- mdlSamples;
- score = suggs.getOrElse(nounTok.stem, NOT_SCORE)
+ score = suggs.getOrElse(nounTok.stem,
EXCLUSIVE_MIN_SCORE)
if score >= cfg.levels(elemId)
)
add(nounTok, elemId, score)
@@ -208,16 +207,16 @@ object NCContextWordEnricher extends NCServerEnricher {
// separated by space, and Suggestion Manager uses
space tokenizer.
(sugg, tokIdx) <- getSentenceData(reqs);
suggStem = stem(sugg.word);
- suggScore = normalizeScore(sugg.score);
+ senSuggScore = normalizeScore(sugg.score);
(elemId, mdlSamplesSuggs) <- mdlSamples
if mdlSamplesSuggs.contains(suggStem);
elemScore = cfg.levels(elemId);
- sampleScore = mdlSamplesSuggs(suggStem);
- avg = (sampleScore + suggScore) / 2
- if avg >= elemScore
+ sampleSuggScore = mdlSamplesSuggs(suggStem);
+ score = (sampleSuggScore + senSuggScore) / 2
+ if score >= elemScore
)
//println(s"elemId=$elemId,
word=${ns.tokens(tokIdx).origText}, sampleScore=$sampleScore,
suggScore=$suggScore, avg=$avg, suggStem=$suggStem, ")
- add(ns.tokens(tokIdx), elemId, avg)
+ add(ns.tokens(tokIdx), elemId, score)
}
case None => // No-op.
}