This is an automated email from the ASF dual-hosted git repository.

sergeykamov pushed a commit to branch master-model
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git


The following commit(s) were added to refs/heads/master-model by this push:
     new 0502e4d  WIP.
0502e4d is described below

commit 0502e4da028e8149a027cb552c8d0881d5674b51
Author: Sergey Kamov <[email protected]>
AuthorDate: Fri Oct 8 15:01:34 2021 +0300

    WIP.
---
 .../main/scala/org/apache/nlpcraft/model/NCModel.java   |  4 ++--
 .../apache/nlpcraft/model/annotations/NCAddElement.java |  3 ++-
 .../apache/nlpcraft/model/builders/NCModelBuilder.java  |  6 ++++--
 .../nlpcraft/model/builders/NCMultiElementsBuilder.java |  2 ++
 .../apache/nlpcraft/model/builders/NCResultBuilder.java |  2 ++
 .../nlpcraft/model/builders/NCSingleElementBuilder.java |  2 ++
 .../apache/nlpcraft/model/impl/NCMetadataAdapter.java   |  2 ++
 .../model/impl/opennlp/NCOpenNlpTokensParser.java       |  1 +
 .../model/impl/opennlp/NCOpenNlpWordsParser.java        |  5 +++--
 .../org/apache/nlpcraft/model/nlp/NCNlpNerToken.java    |  1 +
 .../apache/nlpcraft/model/nlp/NCNlpNerTokensParser.java |  7 ++++++-
 .../org/apache/nlpcraft/model/nlp/NCNlpRichWord.java    |  3 ++-
 .../org/apache/nlpcraft/model/nlp/NCNlpTextParser.java  | 17 +++++++++++++++++
 .../scala/org/apache/nlpcraft/model/nlp/NCNlpWord.java  |  2 +-
 .../org/apache/nlpcraft/model/nlp/NCNlpWordsParser.java | 12 ------------
 15 files changed, 47 insertions(+), 22 deletions(-)

diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java
index dd255f7..0490083 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/NCModel.java
@@ -18,7 +18,7 @@
 package org.apache.nlpcraft.model;
 
 import org.apache.nlpcraft.model.nlp.NCNlpNerTokensParser;
-import org.apache.nlpcraft.model.nlp.NCNlpWordsParser;
+import org.apache.nlpcraft.model.nlp.NCNlpTextParser;
 import org.apache.nlpcraft.model.nlp.NCNlpWord;
 
 import java.time.Duration;
@@ -165,7 +165,7 @@ public interface NCModel {
 
     // Nlp.
     // TODO: add defaults for open nlp and EN related implementations.
-    NCNlpWordsParser getNlpWordsParser();
+    NCNlpTextParser getNlpWordsParser();
     List<NCNlpNerTokensParser> getNlpTokensParsers();
     Function<List<NCNlpWord>, List<NCNlpWord>> getStopWordsFilter();
     Function<List<NCNlpWord>, List<NCNlpWord>> getSwearWordsFilter();
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/annotations/NCAddElement.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/annotations/NCAddElement.java
index 1cc7202..a745bba 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/annotations/NCAddElement.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/annotations/NCAddElement.java
@@ -26,7 +26,8 @@ import java.lang.annotation.Target;
 import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
-// TODO: json or yaml
+// TODO: Element defined via json or yaml. Usefull for development.
+//  Check it when examples development and drop if it is not necessary.
 @Documented
 @Retention(value=RUNTIME)
 @Target(value=METHOD)
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCModelBuilder.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCModelBuilder.java
index 95daf89..7888550 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCModelBuilder.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCModelBuilder.java
@@ -8,7 +8,7 @@ import org.apache.nlpcraft.model.NCModel;
 import org.apache.nlpcraft.model.NCRejection;
 import org.apache.nlpcraft.model.NCResult;
 import org.apache.nlpcraft.model.NCVariant;
-import org.apache.nlpcraft.model.nlp.NCNlpWordsParser;
+import org.apache.nlpcraft.model.nlp.NCNlpTextParser;
 import org.apache.nlpcraft.model.nlp.NCNlpWord;
 
 import java.io.File;
@@ -19,6 +19,8 @@ import java.util.function.BiFunction;
 import java.util.function.Function;
 import java.util.function.Predicate;
 
+// Mandatory withOnContext or any of withIntentsXXX methods.
+// All other - optional.
 public class NCModelBuilder {
     public NCModelBuilder withDescription(String description) {
         return null;
@@ -108,7 +110,7 @@ public class NCModelBuilder {
         return null;
     }
 
-    public NCModelBuilder withNlpWordsParser(NCNlpWordsParser parser) {
+    public NCModelBuilder withNlpWordsParser(NCNlpTextParser parser) {
         return null;
     }
     public NCModelBuilder withNlpTokensParsers(List<NCNlpNerTokensParser> 
parsers) {
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCMultiElementsBuilder.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCMultiElementsBuilder.java
index 9bf822e..86f32c5 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCMultiElementsBuilder.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCMultiElementsBuilder.java
@@ -8,6 +8,8 @@ import java.util.List;
 import java.util.Map;
 import java.io.File;
 
+// Utility for ready multiple elements from files in our own format, based on 
DSL, macros etc.
+// Can be renamed to Provider, because it is not real builder - it is helper.
 public class NCMultiElementsBuilder {
     // Reads YSON/YAML
     public NCMultiElementsBuilder withFiles(File... files) {
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCResultBuilder.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCResultBuilder.java
index 4bda83d..ac4f184 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCResultBuilder.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCResultBuilder.java
@@ -2,6 +2,8 @@ package org.apache.nlpcraft.model.builders;
 
 import org.apache.nlpcraft.model.NCResult;
 
+// Can be refactored after any server (spring, akka etc) implementation.
+// Maybe some 'result type' will be added again etc.
 public class NCResultBuilder {
     // TODO: implement it.
     public NCResultBuilder withBody(Object o) {
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCSingleElementBuilder.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCSingleElementBuilder.java
index d17f339..7f31bc6 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCSingleElementBuilder.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/builders/NCSingleElementBuilder.java
@@ -7,6 +7,8 @@ import org.apache.nlpcraft.model.NCValueLoader;
 import java.util.List;
 import java.util.Map;
 
+// withId is only one mandatory call.
+// It is named NCSingleElementBuilder to have different name with 
NCMultiElementsBuilder.
 public class NCSingleElementBuilder {
     public NCSingleElementBuilder withId(String id) {
         return null;
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/impl/NCMetadataAdapter.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/impl/NCMetadataAdapter.java
index b3b9d09..3c25263 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/impl/NCMetadataAdapter.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/impl/NCMetadataAdapter.java
@@ -24,6 +24,8 @@ import java.util.Map;
 
 /**
  * Abstract adapter for metadata.
+ *
+ * TODO: I'dd like to drop it.
  */
 public abstract class NCMetadataAdapter implements NCMetadata {
     final private Map<String, Object> meta;
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/impl/opennlp/NCOpenNlpTokensParser.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/impl/opennlp/NCOpenNlpTokensParser.java
index 97340ca..2e356ce 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/impl/opennlp/NCOpenNlpTokensParser.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/impl/opennlp/NCOpenNlpTokensParser.java
@@ -8,6 +8,7 @@ import org.apache.nlpcraft.model.nlp.NCNlpNerTokensParser;
 
 import java.util.List;
 
+// Implementation by default. Stanford in another module. Can  be provided by 
user.
 public class NCOpenNlpTokensParser implements NCNlpNerTokensParser {
     @Override
     public List<NCNlpNerToken> parse(NCRequest req, NCModel mdl, 
List<NCNlpRichWord> words, List<NCNlpNerToken> elements) {
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/impl/opennlp/NCOpenNlpWordsParser.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/impl/opennlp/NCOpenNlpWordsParser.java
index 251de0d..c658e92 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/impl/opennlp/NCOpenNlpWordsParser.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/impl/opennlp/NCOpenNlpWordsParser.java
@@ -2,11 +2,12 @@ package org.apache.nlpcraft.model.impl.opennlp;
 
 import org.apache.nlpcraft.model.NCRequest;
 import org.apache.nlpcraft.model.nlp.NCNlpWord;
-import org.apache.nlpcraft.model.nlp.NCNlpWordsParser;
+import org.apache.nlpcraft.model.nlp.NCNlpTextParser;
 
 import java.util.List;
 
-public class NCOpenNlpWordsParser implements NCNlpWordsParser {
+// Implementation by default. Stanford in another module. Can  be provided by 
user.
+public class NCOpenNlpWordsParser implements NCNlpTextParser {
     @Override
     public List<NCNlpWord> parse(NCRequest req) {
         return null;
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpNerToken.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpNerToken.java
index 68cf4a5..57d9d07 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpNerToken.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpNerToken.java
@@ -21,6 +21,7 @@ import org.apache.nlpcraft.model.NCMetadata;
 
 import java.util.*;
 
+// NCNlpNerTokensParser parsing result.
 public interface NCNlpNerToken extends NCMetadata {
     String getId();
 
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpNerTokensParser.java
 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpNerTokensParser.java
index 0b0161c..f065cdc 100644
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpNerTokensParser.java
+++ 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpNerTokensParser.java
@@ -23,7 +23,12 @@ import org.apache.nlpcraft.model.NCRequest;
 import java.util.*;
 
 /**
- * User implementations and built in Stanford and OpneNlp implementations.
+ * OnenNlp implementation - provided (DATE etc)
+ * Stanford implementation - separated module.
+ * User implementations can be provided too.
+ *
+ * Order of configured NCNlpNerTokensParser elements is important.
+ * Only one parsers iteration called.
  */
 public interface NCNlpNerTokensParser {
     List<NCNlpNerToken> parse(NCRequest req, NCModel mdl, List<NCNlpRichWord> 
words, List<NCNlpNerToken> elements);
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpRichWord.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpRichWord.java
index 0fba051..1ccd742 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpRichWord.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpRichWord.java
@@ -20,7 +20,8 @@ package org.apache.nlpcraft.model.nlp;
 import org.apache.nlpcraft.model.nlp.NCNlpWord;
 
 /**
- * Extended word data.
+ * Extended word data, enriched by NLP.
+ * It is argument for NCNlpNerTokensParser.
  */
 public interface NCNlpRichWord extends NCNlpWord {
     boolean isStopWord();
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpTextParser.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpTextParser.java
new file mode 100644
index 0000000..a63cab9
--- /dev/null
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpTextParser.java
@@ -0,0 +1,17 @@
+package org.apache.nlpcraft.model.nlp;
+
+import org.apache.nlpcraft.model.NCRequest;
+
+import java.util.List;
+
+/**
+ * Initial request text parser.
+ */
+public interface NCNlpTextParser {
+    /**
+     *
+     * @param req Main parameter is request text, but also request can contain 
some hints in its request data.
+     * @return
+     */
+    List<NCNlpWord> parse(NCRequest req);
+}
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpWord.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpWord.java
index 77fdf75..511553a 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpWord.java
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpWord.java
@@ -1,6 +1,6 @@
 package org.apache.nlpcraft.model.nlp;
 
-// Initial parser result by NCNlpWordsParser.
+// Initial parsing result, look at NCNlpWordsParser.
 public interface NCNlpWord {
     String getWord();
     String getNormalWord();
diff --git 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpWordsParser.java 
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpWordsParser.java
deleted file mode 100644
index d33cf52..0000000
--- 
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/nlp/NCNlpWordsParser.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.apache.nlpcraft.model.nlp;
-
-import org.apache.nlpcraft.model.NCRequest;
-
-import java.util.List;
-
-/**
- * Initial request parser.
- */
-public interface NCNlpWordsParser {
-    List<NCNlpWord> parse(NCRequest req);
-}

Reply via email to