使用StanfordCoreNLPServer

时间:2018-07-02 10:03:13

标签: java python-3.x stanford-nlp

我正在将使用 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属性的文档。

1 个答案:

答案 0 :(得分:1)

启动服务器时,可以使用-serverProperties选项并提交属性文件,该文件将自定义服务器使用的管道。

详细信息在这里:

https://stanfordnlp.github.io/CoreNLP/corenlp-server.html