我的默认python是2.7,但是必须在python3.5中执行这个项目
我通过以下命令行安装了pycorenlp
:pip3 install pycorenlp
。
它显示我已经安装了它:
要求已经满足(使用--upgrade升级):pycorenlp in /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages 要求已经满足(使用--upgrade升级):/ Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages(来自pycorenlp)中的请求
但是,当我通过终端输入python3.5
进入python环境,然后输入from pycorenlp import StanfordCoreNLP
时,它显示错误:
ImportError:没有名为pycorenlp的模块
我也尝试了解决方案here但是对于python3.5,例如使用sudo
,chmod
,它们都没有用。
你知道如何解决这个问题吗?我必须通过终端运行代码,并且必须使用pycorenlp
答案 0 :(得分:0)
如果要在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