代码之家  ›  专栏  ›  技术社区  ›  RightmireM

使用StdFordCordNLPServer从Java到Python 3转换道具(属性)

  •  0
  • RightmireM  · 技术社区  · 6 年前

    我正在转换 爪哇 使用的代码 斯坦福德科伦普 蟒蛇 访问 斯坦福德核心服务器 .我根本不是Java开发人员。

    Java代码实例化Stand FordCordNLP 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 回复  |  直到 6 年前
        1
  •  1
  •   StanfordNLPHelp    6 年前

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

    详细信息如下:

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