如果要使用Python访问Stanford CoreNLP,可以尝试使用Stanford CoreNLP服务器。可从此处下载:http : //stanfordnlp.github.io/CoreNLP/download.html
启动Java服务器。我将在此处提供该命令,但您可以轻松地添加一行Python代码,该代码使用调用此命令subprocess并启动服务器并获取进程ID。
cd /path/to/stanford-corenlp-full-2016-10-31 ; java -Xmx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000 -annotators tokenize,ssplit,pos,lemma,ner,parse,mention,coref
以下是有关Java服务器的一些信息:http : //stanfordnlp.github.io/CoreNLP/corenlp-server.html
请注意,这只是一个示例命令,您可以提供所需的任何注释器列表。
现在,Java服务器将运行,并且您可以在Python程序运行时发出对其的调用。这是使用该requests库的基本示例。
拨打Stanford CoreNLP服务器的基本电话:
import requests
url = 'http://localhost:9000/?'
request_params = {'outputFormat': 'json'}
text = "This is a test sentence."
r = requests.post(url,data=text,params=request_params)
print r.json()
您将获得带有注释的返回JSON。
关闭服务器。 我们内部还使用一个Python包装器来访问可用的服务器,stanza 我认为该包装器可以与Python 3一起使用,但我并不乐观。如果您遇到问题,我提供的Python代码应该可以在Python 3上正常工作。
这是节的GitHub:https : //github.com/stanfordnlp/stanza