在StanfordNLP服务器中自定义NER

时间:2019-04-05 20:34:02

标签: stanford-nlp

您好,我正在尝试将其他实体添加到当前默认规则中。它适用于stanfordNLP中的txt.file,但是当我使用stanfordNLPServer在python中应用时,它无法覆盖默认规则。

我在Python中使用coreNLP的NLTK包装,并且输入文本是数据框中的一列。默认规则效果很好,但是无法添加自定义规则。

适用于StanfordCoreNLP的Java命令:

'java -Xmx4g -cp“ *” edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators标记化,拆分,pos,引理,ner -ner.additional.regexner.mapping extra.txt-文件example.txt -outputFormat文字”

但是当我运行以下StanfordCoreNLPServer命令时,它失败了:

'java -Xmx4g -cp“ *” edu.stanford.nlp.pipeline.StanfordCoreNLPServer -annotators标记化,拆分,pos,引理,ner -ner.additional.regexner.mapping extra.txt -status_port 9000 -port 9000-超时90000&'

我的猜测是coreNLPServer尚不能自定义实体,但不确定。如果有人可以帮助您,我将非常感谢!

1 个答案:

答案 0 :(得分:1)

您需要使用-serverProperties选项并使用所需的管道所有属性来设置文件。

您不能直接将管道属性提交给服务器。

例如,制作一个名为server.props的文件。

在该文件中放置您的属性:

annotators = tokenize,ssplit,pos,lemma,ner
ner.additional.regexner.mapping = extra.txt

然后运行以下命令:

java -Xmx4g edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000 -serverProperties server.props