/// <summary> /// Setup extended tagger that includes POS, lemma and entity analysis /// </summary> private void SetupExtendedTagger() { PerformanceTester.StartMET("NLP"); // Get path to Stanford NLP models var jarRoot = Path.Combine(Utility.GetResourcesFolder(), @"stanford-corenlp-3.9.2-models"); // Turn off logging RedwoodConfiguration.current().clear().apply(); var props = new java.util.Properties(); props.setProperty("annotators", "tokenize, ssplit, pos, lemma, ner"); // Makes Named Entity Recognition work in the library props.setProperty("ner.useSUTime", "0"); props.put("ner.applyFineGrained", "0"); props.put("ner.fine.regexner.mapping", jarRoot + @"\edu\stanford\nlp\models\kbp\english\"); // Set current directory var curDir = Environment.CurrentDirectory; var modelsDirectory = curDir + "\\" + jarRoot + @"\edu\stanford\nlp\models"; Directory.SetCurrentDirectory(jarRoot); // Load Stanford NLP Tagger = new StanfordCoreNLP(props); PerformanceTester.StopMET("NLP"); }
public static void Demonstrate(string text, POSMode partOfSpeechMode, NERMode namedEntityRecognitionMode, bool disableLogging = true) { if (disableLogging) { RedwoodConfiguration.current().clear().apply(); } //Input //Console.WriteLine("Input: {0}\n\n\n", text); ////Tokenization //Console.WriteLine("Tokenization:"); //Tokenisation.TokenizeText(text); //Console.WriteLine("\n\n\n"); ////POS //Console.WriteLine("Part Of Speech:"); //PartOfSpeech.Tag(text, partOfSpeechMode); //Console.WriteLine("\n\n\n"); ////NER //Console.WriteLine("Named Entity Recognition:"); //var ner = new NER(namedEntityRecognitionMode); //Console.WriteLine(ner.classifyToString(text)); //Console.WriteLine("\n\n\n"); ////Parser //Console.WriteLine("Parsed Text:"); //Parser.ParseString(text); //Console.WriteLine("\n\n\n"); //Find co-reference CorefAnnotator.FindCoreferenceResolution(text); }
public static void Execute(string option, string text, bool disableLogging = true) { if (disableLogging) { RedwoodConfiguration.current().clear().apply(); } var jarRoot = @"../../../data/paket-files/stanford-corenlp-3.9.1-models/"; var props = new Properties(); props.setProperty("annotators", option); props.setProperty("ner.useSUTime", "0"); // We should change current directory, so StanfordCoreNLP could find all the model files automatically var curDir = Environment.CurrentDirectory; Directory.SetCurrentDirectory(jarRoot); var pipeline = new StanfordNLP.StanfordCoreNLP(props); Directory.SetCurrentDirectory(curDir); // Annotation var annotation = new StanfordNLP.Annotation(text); pipeline.annotate(annotation); //get sentencesAnnotation to get sentences var sentencesAnnotation = new CoreAnnotations.SentencesAnnotation().getClass(); //get tokensAnnotaion to get tokens in each sentence var tokensAnnotaion = new CoreAnnotations.TokensAnnotation().getClass(); //get posAnnotation to get POS result of each token var posAnnotation = new CoreAnnotations.PartOfSpeechAnnotation().getClass(); //get nerAnnotation to get NER result of each token var nerAnnotaion = new CoreAnnotations.NamedEntityTagAnnotation().getClass(); var deparseAnnotation = new TreeCoreAnnotations.TreeAnnotation().getClass(); //deparseAnnotation = new TypedDependency().getClass(); var sentences = annotation.get(sentencesAnnotation) as ArrayList; foreach (CoreMap sentence in sentences.toArray()) { var tokens = (ArrayList)sentence.get(tokensAnnotaion); Console.WriteLine("Token-POS-NER: "); foreach (CoreLabel token in tokens) { Console.Write($"{token.value()}-{token.get(posAnnotation)}-{token.get(nerAnnotaion)} "); } Console.WriteLine("\n\n\n"); var parsedText = (Tree)sentence.get(deparseAnnotation); if (parsedText != null) { Console.WriteLine("Parsed Text: "); new TreePrint("penn,typedDependenciesCollapsed").printTree(parsedText); } } }
//*************************************************/ // METHODS //*************************************************/ #region Methods /// <summary> /// Setup tagger including POS /// </summary> private void SetupTagger() { PerformanceTester.StartMET("NLP"); // Get path to Stanford NLP models var jarRoot = Path.Combine(Utility.GetResourcesFolder(), @"stanford-corenlp-3.9.2-models"); // Turn off logging RedwoodConfiguration.current().clear().apply(); // Set properties var props = new java.util.Properties(); props.setProperty("annotators", "tokenize, ssplit, pos"); // Set current directory var curDir = Environment.CurrentDirectory; var modelsDirectory = curDir + "\\" + jarRoot + @"\edu\stanford\nlp\models"; Directory.SetCurrentDirectory(jarRoot); // Load Stanford NLP Tagger = new StanfordCoreNLP(props); PerformanceTester.StopMET("NLP"); }