This is an automated email from the ASF dual-hosted git repository. sergeykamov pushed a commit to branch NLPCRAFT-376 in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
commit 307e9758844624417eba790d4b560664449ebeb9 Merge: abcfa62 251364a Author: Sergey Kamov <[email protected]> AuthorDate: Tue Jul 27 15:54:05 2021 +0300 Merge branch 'master' into NLPCRAFT-376 # Conflicts: # nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/solver/NCIntentSolverEngine.scala hs_err_pid98656.log | 3856 ++++++++++++++++++++ .../apache/nlpcraft/examples/alarm/AlarmModel.java | 4 - .../alarm/src/main/resources/alarm_samples.txt | 2 +- .../nlpcraft/example/minecraft/MinecraftModel.kt | 17 +- .../apache/nlpcraft/examples/time/TimeModel.java | 2 - .../nlpcraft/examples/weather/WeatherModel.java | 4 - .../org/apache/nlpcraft/common/NCService.scala | 17 +- .../nlpcraft/common/config/NCConfigurable.scala | 2 +- .../apache/nlpcraft/common/debug/NCLogHolder.scala | 5 +- .../apache/nlpcraft/model/NCDialogFlowItem.java | 13 - .../org/apache/nlpcraft/model/NCIntentMatch.java | 15 - .../scala/org/apache/nlpcraft/model/NCToken.java | 9 + .../apache/nlpcraft/model/intent/NCIdlIntent.scala | 9 +- .../nlpcraft/model/intent/NCIdlIntentOptions.scala | 40 + .../apache/nlpcraft/model/intent/NCIdlTerm.scala | 2 +- .../model/intent/compiler/NCIdlCompiler.scala | 55 +- .../nlpcraft/model/intent/compiler/antlr4/NCIdl.g4 | 8 +- .../model/intent/compiler/antlr4/NCIdl.interp | 8 +- .../model/intent/compiler/antlr4/NCIdl.tokens | 4 +- .../intent/compiler/antlr4/NCIdlBaseListener.java | 18 +- .../model/intent/compiler/antlr4/NCIdlLexer.interp | 8 +- .../model/intent/compiler/antlr4/NCIdlLexer.java | 16 +- .../model/intent/compiler/antlr4/NCIdlLexer.tokens | 4 +- .../intent/compiler/antlr4/NCIdlListener.java | 22 +- .../model/intent/compiler/antlr4/NCIdlParser.java | 240 +- .../model/intent/solver/NCIntentSolver.scala | 1 - .../model/intent/solver/NCIntentSolverEngine.scala | 170 +- .../model/intent/solver/NCIntentSolverResult.scala | 6 +- .../model/tools/test/NCTestClientBuilder.java | 22 +- .../nlpcraft/probe/mgrs/cmd/NCCommandManager.scala | 35 +- .../probe/mgrs/conversation/NCConversation.scala | 48 +- .../mgrs/dialogflow/NCDialogFlowManager.scala | 58 +- .../probe/mgrs/nlp/NCProbeEnrichmentManager.scala | 12 +- .../server/ignite/NCIgniteCacheStore.scala | 2 +- .../nlpcraft/server/probe/NCProbeManager.scala | 4 +- .../nlpcraft/server/query/NCQueryManager.scala | 2 +- .../nlpcraft/server/user/NCUserManager.scala | 2 +- nlpcraft/src/test/resources/log4j2.xml | 2 +- .../scala/org/apache/nlpcraft/NCTestContext.scala | 7 +- .../nlpcraft/model/NCTrueIntentIdlSpec.scala | 2 +- .../intent/idl/compiler/NCIdlCompilerSpec.scala | 71 +- .../model/intent/idl/options/NCFreeWordsSpec.scala | 75 + .../model/intent/idl/options/NCOrderedSpec.scala | 75 + .../model/intent/idl/options/NCStmOnlySpec.scala | 130 + .../model/intent/idl/options/NCSysTokensSpec.scala | 75 + .../intent/idl/options/NCUserTokensSpec.scala | 75 + .../model/properties/NCTokensPropertiesSpec.scala | 68 +- .../mgrs/nlp/enrichers/NCEnricherBaseSpec.scala | 4 +- 48 files changed, 4909 insertions(+), 417 deletions(-) diff --cc nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/solver/NCIntentSolver.scala index 4031ca9,e16e8a5..bd6e734 --- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/solver/NCIntentSolver.scala +++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/solver/NCIntentSolver.scala @@@ -95,26 -95,11 +95,25 @@@ class NCIntentSolver(intents: List[(NCI for (res <- results if res != null) { try { i += 1 - + + val allConvToks = ctx.getConversation.getTokens.asScala + val nonConvToks = res.groups.flatMap(_.tokens).filterNot(allConvToks.contains) + + val intentToks = + res.groups.map(_.tokens).map(toks => { + toks.filter(allConvToks.contains).foreach(convTok => + NCSentenceManager.fixMeta(convTok, nonConvToks, allConvToks) + ) + + toks + }) + + ctx.getConversation.getTokens + val intentMatch: NCIntentMatch = new NCMetadataAdapter with NCIntentMatch { override val getContext: NCContext = ctx - override val getIntentTokens: JList[JList[NCToken]] = res.groups.map(_.tokens.asJava).asJava + override val getIntentTokens: JList[JList[NCToken]] = intentToks.map(_.asJava).asJava override val getVariant: NCVariant = new NCVariantImpl(res.variant.tokens) - override val isAmbiguous: Boolean = !res.isExactMatch override val getIntentId: String = res.intentId override def getTermTokens(idx: Int): JList[NCToken] = res.groups(idx).tokens.asJava override def getTermTokens(termId: String): JList[NCToken] = res.groups.find(_.termId === termId).flatMap(grp => Some(grp.tokens)).getOrElse(Nil).asJava
