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