我正在将使用 StanfordCoreNLP 的 Java 代码转换为访问 StanfordCoreNLPServer 的 Python 。我根本不是Java开发人员。
Java代码使用以下属性实例化StanfordCoreNLP pipeline
。
Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, regexner");
props.put("ner.model", serializedClassifier);
props.put("pos.model", posModel);
props.put("tokenize.language", "de");
props.put("ssplit.isOneSentence", "true");
props.put("ssplit.language", "de");
props.put("lemma.language", "de");
props.put("regexner.mapping", Init.REGEXNER);
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
我正在实例化Python管道,如下所示:
self.nlp = StanfordCoreNLP(host, port=port, timeout=30000)
self.props = {
'annotators': 'tokenize, ssplit, pos, lemma, ner, regexner',
'pipelineLanguage': 'de',
'tokenizeLanguage': 'de',
'outputFormat': 'json',
}
def annotate(self, sentence):
return json.loads(self.nlp.annotate(sentence, properties=self.props))
问题,我不确定如何将java属性(例如ner.model
)转换为Python dict键。我想它会像nerModel
一样...但是,当传入self.props
对象时-废话键不要出错。因此,我不知道密钥是否有效。
我在斯坦福页面的任何地方都没有看到有关Python属性的文档。
答案 0 :(得分:1)
启动服务器时,可以使用-serverProperties
选项并提交属性文件,该文件将自定义服务器使用的管道。
详细信息在这里: