斯坦福大学NLP代码中的异常

时间:2018-07-11 09:53:58

标签: c# stanford-nlp

通过Visual Studio执行Stanford NLP时发生异常:

  

包装:stanford-corenlp-full-2016-10-31的未处理异常   类型“ edu.stanford.nlp.io.RuntimeIOException”发生在   stanford-corenlp-3.9.1.dll

代码:

namespace Stanford.NLP.SUTime.CSharp
{
    class Program
    {
        private static void Main()
        {

            // Path to the folder with models extracted from `stanford-corenlp-3.7.0-models.jar`
            var jarRoot = @"C:\Users\Tharmarajan.s\Desktop\stanford-corenlp-full-2016-10-31\stanford-corenlp-full-2016-10-31\models";
            var modelsDirectory = jarRoot + @"\edu\stanford\nlp\models\";

            // Annotation pipeline configuration
            var pipeline = new AnnotationPipeline();
            pipeline.addAnnotator(new TokenizerAnnotator(false));
            pipeline.addAnnotator(new WordsToSentencesAnnotator(false));

            // Loading POS Tagger and including them into pipeline
            var tagger = new MaxentTagger(modelsDirectory +@"\pos-tagger\english-left3words\english-left3words-distsim.tagger");

            pipeline.addAnnotator(new POSTaggerAnnotator(tagger));

            // SUTime configuration
            var sutimeRules = modelsDirectory + @"\sutime\defs.sutime.txt,"
                              + modelsDirectory + @"\sutime\english.holidays.sutime.txt,"
                              + modelsDirectory + @"\sutime\english.sutime.txt";
            var props = new Properties();
            props.setProperty("sutime.rules", sutimeRules);
            props.setProperty("sutime.binders", "0");
            pipeline.addAnnotator(new TimeAnnotator("sutime", props));

            // Sample text for time expression extraction
            var text = "Three interesting dates are 18 Feb 1997, the 20th of july and 4 days from today.";
            var annotation = new Annotation(text);
            annotation.set(new CoreAnnotations.DocDateAnnotation().getClass(), "2013-07-14");
            pipeline.annotate(annotation);

            Console.WriteLine("{0}\n", annotation.get(new CoreAnnotations.TextAnnotation().getClass()));

            var timexAnnsAll = annotation.get(new TimeAnnotations.TimexAnnotations().getClass()) as ArrayList;
            foreach (CoreMap cm in timexAnnsAll)
            {
                var tokens = cm.get(new CoreAnnotations.TokensAnnotation().getClass()) as List;
                var first = tokens.get(0);
                var last = tokens.get(tokens.size() - 1);
                var time = cm.get(new TimeExpression.Annotation().getClass()) as TimeExpression;
                Console.WriteLine("{0} [from char offset {1} to {2}] --> {3}",
                                  cm, first, last, time.getTemporal());
            }
        }
    }
}

0 个答案:

没有答案