如何使用无壳模型托管 CoreNLP 服务器?

How do I host CoreNLP server with caseless models?

我正在尝试托管一个 CoreNLP 服务器,但使用的是无壳模型,但我认为我没有成功,而且官方网站没有托管此类模型的示例。

我目前正在托管:

java -mx4g \
           -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer \
           -port 9000 \
           -timeout 15000

但这是不使用无壳模型的默认托管方式。我检查了应用程序日志,它正在加载标准模型而不是无壳模型:

[pool-1-thread-1] INFO edu.stanford.nlp.ie.AbstractSequenceClassifier - Loading classifier from edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz ... done [0.9 sec].
[pool-1-thread-1] INFO edu.stanford.nlp.ie.AbstractSequenceClassifier - Loading classifier from edu/stanford/nlp/models/ner/english.muc.7class.distsim.crf.ser.gz ... done [0.5 sec].
[pool-1-thread-1] INFO edu.stanford.nlp.ie.AbstractSequenceClassifier - Loading classifier from edu/stanford/nlp/models/ner/english.conll.4class.distsim.crf.ser.gz ... done [0.5 sec].

根据https://stanfordnlp.github.io/CoreNLP/caseless.html,我已经下载了英文模型jar文件并放在corenlp模块文件夹下,但我不知道如何指定和使用它们作为服务器托管。

在客户端,我正在执行以下操作:

import requests

r = requests.post('http://[::]:9000/?properties={"annotators":"tokenize,ssplit,truecase,pos,ner","outputFormat":"json"}', 
                  data="show me hotels in toronto for next weekend")
print(r.text)

truecase 正在运行,但我没有看到正在使用 caseless 模型。

如有任何帮助,我们将不胜感激。

您需要通过 属性 "ner.model": "edu/stanford/nlp/models/ner/english.all.3class.caseless.distsim.crf.ser.gz,edu/stanford/nlp/models/ner/english.muc.7class.caseless.distsim.crf.ser.gz,edu/stanford/nlp/models/ner/english.conll.4class.caseless.distsim.crf.ser.gz"

您可能还想使用 Stanza 来访问 Stanford CoreNLP 服务器。

详情在这里:https://stanfordnlp.github.io/stanza/corenlp_client.html#overview