diff --git a/.vscode/launch.json b/.vscode/launch.json index 2978ffd..4f095e3 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -8,6 +8,7 @@ "type": "java", "name": "Launch Java Program", "request": "launch", + "vmArgs": "-Xmx4G -Xms1024m", "mainClass": "" }, { diff --git a/pom.xml b/pom.xml index 7d87dfc..8bb6dd1 100644 --- a/pom.xml +++ b/pom.xml @@ -12,6 +12,7 @@ 1.0.0-M2 nd4j-native + 4.5.6 @@ -46,6 +47,28 @@ + + + + edu.stanford.nlp + stanford-corenlp + ${corenlp.version} + + + edu.stanford.nlp + stanford-corenlp + ${corenlp.version} + models + + + edu.stanford.nlp + stanford-corenlp + ${corenlp.version} + models-english + + + + diff --git a/src/main/java/org/studiorailgun/Globals.java b/src/main/java/org/studiorailgun/Globals.java index df7cf7c..6fc4fc5 100644 --- a/src/main/java/org/studiorailgun/Globals.java +++ b/src/main/java/org/studiorailgun/Globals.java @@ -4,6 +4,7 @@ import java.io.File; import org.studiorailgun.conversation.categorization.SentenceFunctionCategorizor; import org.studiorailgun.conversation.evaluators.greet.GreetingEval; +import org.studiorailgun.conversation.parser.NLPParser; import org.studiorailgun.conversation.tracking.Conversation; import org.studiorailgun.knowledge.KnowledgeWeb; @@ -30,6 +31,9 @@ public class Globals { GreetingEval.init(); SentenceFunctionCategorizor.init(); + //init nlp parser + NLPParser.init(); + //init web Globals.web = FileUtils.loadObjectFromFile(new File(webPath), KnowledgeWeb.class); Globals.web.initLinks(); diff --git a/src/main/java/org/studiorailgun/conversation/AgentLoop.java b/src/main/java/org/studiorailgun/conversation/AgentLoop.java index 5e638ed..44cd0ae 100644 --- a/src/main/java/org/studiorailgun/conversation/AgentLoop.java +++ b/src/main/java/org/studiorailgun/conversation/AgentLoop.java @@ -3,7 +3,7 @@ package org.studiorailgun.conversation; import java.util.Scanner; import org.studiorailgun.Globals; -import org.studiorailgun.conversation.parser.CommandParser; +import org.studiorailgun.conversation.command.CommandParser; import org.studiorailgun.conversation.tracking.Quote; public class AgentLoop { diff --git a/src/main/java/org/studiorailgun/conversation/command/CommandParser.java b/src/main/java/org/studiorailgun/conversation/command/CommandParser.java index 3341885..b75d9f6 100644 --- a/src/main/java/org/studiorailgun/conversation/command/CommandParser.java +++ b/src/main/java/org/studiorailgun/conversation/command/CommandParser.java @@ -1,4 +1,4 @@ -package org.studiorailgun.conversation.parser; +package org.studiorailgun.conversation.command; import org.studiorailgun.conversation.AgentLoop; import org.studiorailgun.conversation.llm.LLMLoop; diff --git a/src/main/java/org/studiorailgun/conversation/llm/LLMLoop.java b/src/main/java/org/studiorailgun/conversation/llm/LLMLoop.java index f453691..7ae4ce3 100644 --- a/src/main/java/org/studiorailgun/conversation/llm/LLMLoop.java +++ b/src/main/java/org/studiorailgun/conversation/llm/LLMLoop.java @@ -2,7 +2,7 @@ package org.studiorailgun.conversation.llm; import java.util.Scanner; -import org.studiorailgun.conversation.parser.CommandParser; +import org.studiorailgun.conversation.command.CommandParser; import org.studiorailgun.kobold.KoboldPrinter; import org.studiorailgun.kobold.KoboldRequest; diff --git a/src/main/java/org/studiorailgun/conversation/parser/NLPParser.java b/src/main/java/org/studiorailgun/conversation/parser/NLPParser.java new file mode 100644 index 0000000..23e20a4 --- /dev/null +++ b/src/main/java/org/studiorailgun/conversation/parser/NLPParser.java @@ -0,0 +1,52 @@ +package org.studiorailgun.conversation.parser; + +import edu.stanford.nlp.coref.data.CorefChain; +import edu.stanford.nlp.ling.*; +import edu.stanford.nlp.ie.util.*; +import edu.stanford.nlp.pipeline.*; +import edu.stanford.nlp.semgraph.*; +import edu.stanford.nlp.trees.*; +import java.util.*; + +/** + * Parses a sentence + */ +public class NLPParser { + + public static String text = "Joe Smith was born in California. " + + "In 2017, he went to Paris, France in the summer. " + + "His flight left at 3:00pm on July 10th, 2017. " + + "After eating some escargot for the first time, Joe said, \"That was delicious!\" " + + "He sent a postcard to his sister Jane Smith. " + + "After hearing about Joe's trip, Jane decided she might go to France one day."; + + static StanfordCoreNLP pipeline; + + /** + * Initializes the part-of-speech Parser + */ + public static void init(){ + // set up pipeline properties + Properties props = new Properties(); + // set the list of annotators to run + props.setProperty("annotators", "tokenize,pos,lemma,ner,parse,depparse,coref,kbp,quote"); + // set a property for an annotator, in this case the coref annotator is being set to use the neural algorithm + props.setProperty("coref.algorithm", "neural"); + // build pipeline + pipeline = new StanfordCoreNLP(props); + } + + /** + * Parses the input sentence + * @param input The input sentence + */ + public static void parse(String input){ + // create a document object + CoreDocument document = new CoreDocument(text); + // annnotate the document + pipeline.annotate(document); + + //TODO: grab information from document here + } + +}