gpt4 book ai didi

python - 在 OSX 中安装 StanleyCoreNLP 时出现问题 : How to set up the environment variables for jupyter/pycharm?

转载 作者:行者123 更新时间:2023-12-01 03:38:37 26 4
gpt4 key购买 nike

我下载并安装了StanfordCoreNLPfollows :

$ cd
$ wget http://nlp.stanford.edu/software/stanford-ner-2015-12-09.zip
$ unzip stanford-ner-2015-12-09.zip
$ ls stanford-ner-2015-12-09/
build.xml LICENSE.txt ner-gui.bat ner.sh sample.ner.txt stanford-ner-3.6.0.jar stanford-ner.jar
classifiers ner.bat ner-gui.command README.txt sample.txt stanford-ner-3.6.0-javadoc.jar
lib NERDemo.java ner-gui.sh sample-conll-file.txt sample-w-time.txt stanford-ner-3.6.0-sources.jar
$ export STANFORDTOOLSDIR=$HOME
$ export CLASSPATH=$STANFORDTOOLSDIR/stanford-ner-2015-12-09/stanford-ner.jar
$ export STANFORD_MODELS=$STANFORDTOOLSDIR/stanford-ner-2015-12-09/classifiers

然后让我们尝试一下它是否真的有效:

$ python3
>>>import nltk
>>> nltk.__version__
'3.1'
>>> from nltk.tag import StanfordNERTagger
>>> st = StanfordNERTagger('english.all.3class.distsim.crf.ser.gz')
>>> st.tag('Rami Eid is studying at Stony Brook University in NY'.split())

[('Rami', 'PERSON'), ('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'), ('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'), ('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'O')]

所以,这里一切都很完美。问题是当我关闭终端并开始在 jupyter 笔记本(或 pycharm)中工作时:

在:

from nltk.tag import StanfordNERTagger
st = StanfordNERTagger('english.all.3class.distsim.crf.ser.gz')
st.tag('Rami Eid is studying at Stony Brook University in NY'.split())

输出:

---------------------------------------------------------------------------
LookupError Traceback (most recent call last)
<ipython-input-2-118c7edca797> in <module>()
1 from nltk.tag import StanfordNERTagger
----> 2 st = StanfordNERTagger('english.all.3class.distsim.crf.ser.gz')
3 st.tag('Rami Eid is studying at Stony Brook University in NY'.split())

/usr/local/lib/python3.5/site-packages/nltk/tag/stanford.py in __init__(self, *args, **kwargs)
166
167 def __init__(self, *args, **kwargs):
--> 168 super(StanfordNERTagger, self).__init__(*args, **kwargs)
169
170 @property

/usr/local/lib/python3.5/site-packages/nltk/tag/stanford.py in __init__(self, model_filename, path_to_jar, encoding, verbose, java_options)
51 self._JAR, path_to_jar,
52 searchpath=(), url=_stanford_url,
---> 53 verbose=verbose)
54
55 self._stanford_model = find_file(model_filename,

/usr/local/lib/python3.5/site-packages/nltk/__init__.py in find_jar(name_pattern, path_to_jar, env_vars, searchpath, url, verbose, is_regex)
717 searchpath=(), url=None, verbose=True, is_regex=False):
718 return next(find_jar_iter(name_pattern, path_to_jar, env_vars,
--> 719 searchpath, url, verbose, is_regex))
720
721

/usr/local/lib/python3.5/site-packages/nltk/__init__.py in find_jar_iter(name_pattern, path_to_jar, env_vars, searchpath, url, verbose, is_regex)
712 (name_pattern, url))
713 div = '='*75
--> 714 raise LookupError('\n\n%s\n%s\n%s' % (div, msg, div))
715
716 def find_jar(name_pattern, path_to_jar=None, env_vars=(),

LookupError:

===========================================================================
NLTK was unable to find stanford-ner.jar! Set the CLASSPATH
environment variable.

For more information, on stanford-ner.jar, see:
<http://nlp.stanford.edu/software>
===========================================================================

那么,我的问题是如何正确设置环境变量?,我也尝试将其添加到我的 bash 配置文件中:

#StanfordCORENLP
export STANFORDTOOLSDIR=$HOME
export CLASSPATH=$STANFORDTOOLSDIR/stanford-ner-2015-12-09/stanford-ner.jar
export STANFORD_MODELS=$STANFORDTOOLSDIR/stanford-ner-2015-12-09/classifiers

更新

根据@alexis的回答,这是我尝试过的:

user@MacBook-Pro:~$ % jupyter notebook /Users/user/Jupyter/Project1/Version1 &
-bash: bg: %: no such job
-bash: bg: jupyter: no such job
-bash: bg: notebook: no such job
-bash: bg: /Users/user/Jupyter/Project1/Version1: no such job

还有这个:

user@MacBook-Pro-de-User:~$ sudo mate /etc/launchd.conf
Password:
path::entries: scandir("/Applications/TextMate.app/Contents/Resources/PrivilegedTool"): Not a directory

然后:

user@MacBook-Pro-de-User:~$ sudo mate /etc/launchd.conf
Password:
path::entries: scandir("/Applications/TextMate.app/Contents/Resources/PrivilegedTool"): Not a directory

然后在文本编辑器中:

#StanfordCORENLP
setenv export STANFORDTOOLSDIR=$HOME
setenv export CLASSPATH=$STANFORDTOOLSDIR/stanford-ner-2015-12-09/stanford-ner.jar
setenv export STANFORD_MODELS=$STANFORDTOOLSDIR/stanford-ner-2015-12-09/classifiers

更新2

我尝试了以下方法:

user@MacBook-Pro-de-User:~$ jupyter notebook /Users/user/Jupyter/Project1/Version1 & /Users/user/stanford-ner-2015-12-09

然后:

---------------------------------------------------------------------------
LookupError Traceback (most recent call last)
<ipython-input-1-215fd2418c10> in <module>()
1 from nltk.tag import StanfordNERTagger
----> 2 st = StanfordNERTagger('english.all.3class.distsim.crf.ser.gz')
3 #st = StanfordNERTagger('/home/me/stanford/stanford-postagger-full-2015-04-20/classifier/tagger.ser.gz',\
4 #'/home/me/stanford/stanford-spanish-corenlp-2015-01-08-models.jar')
5 st.tag('Rami Eid is studying at Stony Brook University in NY'.split())

/usr/local/lib/python3.5/site-packages/nltk/tag/stanford.py in __init__(self, *args, **kwargs)
166
167 def __init__(self, *args, **kwargs):
--> 168 super(StanfordNERTagger, self).__init__(*args, **kwargs)
169
170 @property

/usr/local/lib/python3.5/site-packages/nltk/tag/stanford.py in __init__(self, model_filename, path_to_jar, encoding, verbose, java_options)
51 self._JAR, path_to_jar,
52 searchpath=(), url=_stanford_url,
---> 53 verbose=verbose)
54
55 self._stanford_model = find_file(model_filename,

/usr/local/lib/python3.5/site-packages/nltk/__init__.py in find_jar(name_pattern, path_to_jar, env_vars, searchpath, url, verbose, is_regex)
717 searchpath=(), url=None, verbose=True, is_regex=False):
718 return next(find_jar_iter(name_pattern, path_to_jar, env_vars,
--> 719 searchpath, url, verbose, is_regex))
720
721

/usr/local/lib/python3.5/site-packages/nltk/__init__.py in find_jar_iter(name_pattern, path_to_jar, env_vars, searchpath, url, verbose, is_regex)
712 (name_pattern, url))
713 div = '='*75
--> 714 raise LookupError('\n\n%s\n%s\n%s' % (div, msg, div))
715
716 def find_jar(name_pattern, path_to_jar=None, env_vars=(),

LookupError:

===========================================================================
NLTK was unable to find stanford-ner.jar! Set the CLASSPATH
environment variable.

For more information, on stanford-ner.jar, see:
<http://nlp.stanford.edu/software>
===========================================================================

最佳答案

看起来您正在从 GUI 启动笔记本服务器。问题是在 OS X 中,GUI 不继承 shell 的环境。您可以通过从终端启动笔记本服务器立即使其工作:

jupyter notebook <path-to-notebook-folder> &

这应该让您可以在成功的 python3 调用所使用的相同环境中运行。

多种方法可以修改GUI启动的应用程序的环境;如果您不介意在系统范围内设置CLASSPATH,则可以按照here所述在/etc/launchd.conf中进行设置。 。 (编辑 launchd.conf 后注销或重新启动系统)。您也可以尝试this (不确定它是否仍然有效),或通过谷歌搜索其他替代方案。

关于python - 在 OSX 中安装 StanleyCoreNLP 时出现问题 : How to set up the environment variables for jupyter/pycharm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40012711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com