我的环境是使用Python的Google Colab。我正在尝试按照此网站上的说明进行操作。
https://github.com/abisee/cnn-dailymail
它提到
然后将以下命令添加到您的bash_profile:
export CLASSPATH=/path/to/stanford-corenlp-full-2017-06-09/stanford-corenlp-3.8.0.jar
我最好的猜测是使用
!export CLASSPATH = / stanford-corenlp-full-2017-06-09 / stanford-corenlp-3.8.0.jar
执行时没有任何错误
但随后说明说
您可以通过运行检查它是否正常运行
echo "Please tokenize this text." | java edu.stanford.nlp.process.PTBTokenizer
所以我尝试了
!echo "Please tokenize this text." | java edu.stanford.nlp.process.PTBTokenizer
但是后来我得到了这个错误
Error: Could not find or load main class edu.stanford.nlp.process.PTBTokenizer
Caused by: java.lang.ClassNotFoundException: edu.stanford.nlp.process.PTBTokenizer
编辑:
我找到了在colab中安装Java的说明
# Install Java
!apt-get install -y openjdk-8-jdk-headless -qq > /dev/null
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
!java -version
但是
!echo "Please tokenize this text." | java edu.stanford.nlp.process.PTBTokenizer
仍然给出相同的错误
答案 0 :(得分:3)
我建议不要更改您的.bash_profile
,因为这会积累设置和垃圾。
相反,java允许您使用-cp
选项指定CLASSPATH,我们可以将其添加到Python脚本中。
(您也可以按照他们的建议使用java -cp /path/to/blahblah.jar etc
对其进行测试。)
将此行in make_datafile.py更改为:
command = ['java', '-cp', '/path/to/blahblah.jar', 'edu.stanford.nlp.process.PTBTokenizer',
'-ioFileList', '-preserveLines', 'mapping.txt']
如果仍然遇到问题,请确保您有一个有效的jar!
列出内容:
jar -tvf /path/to/blahblah.jar
您应该看到列出的edu/stanford/nlp/process/PTBTokenizer.class
,否则将CLASSPATH弄得一团糟。