【发布时间】:2016-11-26 15:48:45
【问题描述】:
我正在尝试使用 Java 中的斯坦福 NLP 进行一些情绪分析。我正在使用 Maven,但出现以下错误:
java.lang.Exception: edu.stanford.nlp.io.RuntimeIOException: java.io.IOException: Unable to resolve "/home/amos/CPP/2016/Hadoop/englishPCFG.ser.gz" as either class path, filename or URL
at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522)
Caused by: edu.stanford.nlp.io.RuntimeIOException: java.io.IOException: Unable to resolve "/home/amos/CPP/2016/Hadoop/englishPCFG.ser.gz" as either class path, filename or URL
at edu.stanford.nlp.parser.common.ParserGrammar.loadModel(ParserGrammar.java:182)
at edu.stanford.nlp.pipeline.ParserAnnotator.loadModel(ParserAnnotator.java:187)
at edu.stanford.nlp.pipeline.ParserAnnotator.<init>(ParserAnnotator.java:107)
at edu.stanford.nlp.pipeline.AnnotatorImplementations.parse(AnnotatorImplementations.java:132)
at edu.stanford.nlp.pipeline.AnnotatorFactories$10.create(AnnotatorFactories.java:420)
at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:85)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:289)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:126)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:122)
at nl.uva.cpp.WordCountMapper.create_pipeline(WordCountMapper.java:68)
at nl.uva.cpp.WordCountMapper.map(WordCountMapper.java:73)
at nl.uva.cpp.WordCountMapper.map(WordCountMapper.java:22)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:243)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Unable to resolve "/home/amos/CPP/2016/Hadoop/englishPCFG.ser.gz" as either class path, filename or URL
at edu.stanford.nlp.io.IOUtils.getInputStreamFromURLOrClasspathOrFileSystem(IOUtils.java:448)
at edu.stanford.nlp.io.IOUtils.readObjectFromURLOrClasspathOrFileSystem(IOUtils.java:310)
at edu.stanford.nlp.parser.common.ParserGrammar.loadModel(ParserGrammar.java:179)
... 20 more
我不知道该怎么做。我已经从here 下载了 Stanford CoreNLP,但我不确定应该在哪里提取它。
我也加了
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.5.0</version>
<classifier>models</classifier>
</dependency>
到我的pom.xml 文件,它在运行mvn package 时开始下载,但这似乎没有帮助。
【问题讨论】:
-
将 jar 解压到您的项目文件夹中。类似 projectPath/lib
标签: java maven nlp stanford-nlp