public SingletonAnnotator(ServerAnnotatorImplementations _enclosing, string host, int port, Properties properties, string annotator)
            {
                this._enclosing = _enclosing;
                Properties forClient = new Properties();

                foreach (object o in properties.Keys)
                {
                    string key   = o.ToString();
                    string value = properties.GetProperty(key);
                    forClient.SetProperty(key, value);
                    forClient.SetProperty(annotator + '.' + key, value);
                }
                if (this._enclosing.lazy)
                {
                    forClient.SetProperty("annotators", annotator);
                    forClient.SetProperty("enforceRequirements", "false");
                }
                else
                {
                    string annotators = "tokenize,ssplit,pos,lemma,ner,parse,mention,coref,natlog,openie,sentiment";
                    if (!annotators.Contains(annotator))
                    {
                        annotators += "," + annotator;
                    }
                    forClient.SetProperty("annotators", annotators);
                }
                this.client = new StanfordCoreNLPClient(forClient, host, port, this._enclosing.key, this._enclosing.secret);
            }
示例#2
0
        /// <summary>Client that runs data through a StanfordCoreNLPServer either just for testing or for command-line text processing.</summary>
        /// <remarks>
        /// Client that runs data through a StanfordCoreNLPServer either just for testing or for command-line text processing.
        /// This runs the pipeline you specify on the
        /// text in the file(s) that you specify (with -file or -filelist) and sends some results to stdout.
        /// The current code in this main method assumes that each line of the file
        /// is to be processed separately as a single sentence.
        /// A site must be specified with a protocol like "https:" in front of it.
        /// Example usage:<br />
        /// java -mx6g edu.stanford.nlp.pipeline.StanfordCoreNLP -props properties -backends site1:port1,site2:port2 <br />
        /// or just -host https://foo.bar.com [-port 9000]
        /// </remarks>
        /// <param name="args">List of required properties</param>
        /// <exception cref="System.IO.IOException">If IO problem</exception>
        /// <exception cref="System.TypeLoadException">If class loading problem</exception>
        public static void Main(string[] args)
        {
            //
            // process the arguments
            //
            // extract all the properties from the command line
            // if cmd line is empty, set the properties to null. The processor will search for the properties file in the classpath
            // if (args.length < 2) {
            //   log.info("Usage: " + StanfordCoreNLPClient.class.getSimpleName() + " -host <hostname> -port <port> ...");
            //   System.exit(1);
            // }
            Properties props   = StringUtils.ArgsToProperties(args);
            bool       hasH    = props.Contains("h");
            bool       hasHelp = props.Contains("help");

            if (hasH || hasHelp)
            {
                string helpValue = hasH ? props.GetProperty("h") : props.GetProperty("help");
                StanfordCoreNLP.PrintHelp(System.Console.Error, helpValue);
                return;
            }
            // Create the backends
            IList <StanfordCoreNLPClient.Backend> backends = new List <StanfordCoreNLPClient.Backend>();
            string defaultBack = "http://localhost:9000";
            string backStr     = props.GetProperty("backends");

            if (backStr == null)
            {
                string host = props.GetProperty("host");
                string port = props.GetProperty("port");
                if (host != null)
                {
                    if (port != null)
                    {
                        defaultBack = host + ':' + port;
                    }
                    else
                    {
                        defaultBack = host;
                    }
                }
            }
            foreach (string spec in props.GetProperty("backends", defaultBack).Split(","))
            {
                Matcher matcher = UrlPattern.Matcher(spec.Trim());
                if (matcher.Matches())
                {
                    string protocol = matcher.Group(1);
                    if (protocol == null)
                    {
                        protocol = "http";
                    }
                    string host    = matcher.Group(2);
                    int    port    = 80;
                    string portStr = matcher.Group(3);
                    if (portStr != null)
                    {
                        port = System.Convert.ToInt32(portStr);
                    }
                    backends.Add(new StanfordCoreNLPClient.Backend(protocol, host, port));
                }
            }
            log.Info("Using backends: " + backends);
            // Run the pipeline
            StanfordCoreNLPClient client = new StanfordCoreNLPClient(props, backends);

            client.Run();
            try
            {
                client.Shutdown();
            }
            catch (Exception)
            {
            }
        }
示例#3
0
 /// <summary>Runs an interactive shell where input text is processed with the given pipeline.</summary>
 /// <param name="pipeline">The pipeline to be used</param>
 /// <exception cref="System.IO.IOException">If IO problem with stdin</exception>
 private static void Shell(StanfordCoreNLPClient pipeline)
 {
     log.Info("Entering interactive shell. Type q RETURN or EOF to quit.");
     StanfordCoreNLP.OutputFormat outputFormat = StanfordCoreNLP.OutputFormat.ValueOf(pipeline.properties.GetProperty("outputFormat", "text").ToUpper());
     IOUtils.Console("NLP> ", null);
 }