2016-11-26 5 views
0

私はJavaでスタンフォードNLPを使っていくつかの感情分析をしようとしています。私はMavenを使用していますが、次のエラーが発生しています:スタンフォードNLP RuntimeIOException

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をダウンロードしましたが、どこから抽出するべきかわかりません。

私もpom.xmlファイルに

<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> 

を追加し、mvn packageを実行するときには、ダウンロードを開始、それは助けていないようでした。

+0

あなたのプロジェクトフォルダにjarファイルを展開してください。 projectPath/libのようなもの – Nuwanda

答えて

0

あなたはHadoopのを使用しているとプロジェクト(MVNパッケージ)を構築した後、それはすべての依存関係を持つ1つのjarファイルを作成します、あなたはMaven Shade Plugin

を使用して、プロジェクトのJavaの脂肪の瓶を使用することができますit.Youがする必要があるにマージあなたのhadoopドライバクラスをメインクラスとしてここに入れてください。

<transformer> implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
<mainClass>your-driver-class</mainClass> 
</transformer> 
関連する問題