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);
-}