[我正在尝试加载StanfordCoreNLP软件包,以便对其页面(https://nlp.stanford.edu/sentiment/treebank.html)中显示的电影评论进行正确的解析:(我正在使用MAC)
nlp = StanfordCoreNLP("/Users//NLP_models/stanford-corenlp-full-2018-01-31")
但是得到错误:
Traceback (most recent call last):
File "/Users/anaconda3/lib/python3.6/site-packages/psutil/_psosx.py", line 295, in wrapper
return fun(self, *args, **kwargs)
File "/Users/anaconda3/lib/python3.6/site-packages/psutil/_psosx.py", line 480, in connections
rawlist = cext.proc_connections(self.pid, families, types)
PermissionError: [Errno 1] Operation not permitted
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py", line 2411, in <module>
globals = debugger.run(setup['file'], None, None, is_module)
File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py", line 1802, in run
launch(file, globals, locals) # execute the script
File "/Applications/PyCharm CE.app/Contents/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
...
...
...
File "/Users/anaconda3/lib/python3.6/site-packages/stanfordcorenlp/corenlp.py", line 79, in __init__
if port_candidate not in [conn.laddr[1] for conn in psutil.net_connections()]:
File "/Users/anaconda3/lib/python3.6/site-packages/psutil/__init__.py", line 2191, in net_connections
return _psplatform.net_connections(kind)
File "/Users/anaconda3/lib/python3.6/site-packages/psutil/_psosx.py", line 229, in net_connections
cons = Process(pid).connections(kind)
File "/Users/anaconda3/lib/python3.6/site-packages/psutil/_psosx.py", line 300, in wrapper
raise AccessDenied(self.pid, self._name)
psutil.AccessDenied: psutil.AccessDenied (pid=5488)
我尝试过
conda update conda
conda update anaconda-navigator
conda update navigator-updater
但是没有帮助。有什么想法吗?
谢谢!
我有同样的问题,我可以通过使用sudo
如下运行代码来使其正常工作:
sudo /Users/edamame/workspace/git/chinese_nlp/venv/bin/python3 chinese_segmenter1.py
希望这也对您有效。
这里有同样的问题。
对此的很多讨论都指向https://github.com/ContinuumIO/anaconda-issues/issues/1984,它建议更新到最新的Navigator,并以root身份运行(通过sudo)。
我都尝试过,但完全没有发现变化(您可能会更幸运)。
[https://github.com/Lynten/stanford-corenlp/issues/26引用了corenlp.py的经过调整的版本,该版本声称可以避免该问题,尽管我也没有使其工作。
此问题似乎是特定于Mac OS X的,它不允许Python检查当前端口。
注释corenlp.py文件的这段代码:
if self.port is None:
for port_candidate in range(9000, 65535):
if port_candidate not in [conn.laddr[1] for conn in psutil.net_connections()]:
self.port = port_candidate
break
if self.port in [conn.laddr[1] for conn in psutil.net_connections()]:
raise IOError('Port ' + str(self.port) + ' is already in use.')
用此行替换:
self.port = 9999
来源:https://github.com/Lynten/stanford-corenlp/issues/26#issuecomment-445507811
另一种解决方案是使用sudo命令行运行StanfordCoreNLP。