2017-06-20 28 views
0

我在我的系統上安裝了斯坦福coreNLP庫的本地服務器。雖然,我能夠得到答案,因爲你可以得到demo site。但在我的服務器wikipedia entity選項不起作用。該服務器提供了以下錯誤:維基百科實體註釋器在斯坦福核心中不工作NLP

java.lang.RuntimeException: edu.stanford.nlp.io.RuntimeIOException: java.io.IOException: Unable to open "edu/stanford/nlp/models/kbp/wikidict.tab.gz" as class path, filename or URL 
     at edu.stanford.nlp.pipeline.WikidictAnnotator.<init>(WikidictAnnotator.java:81) 
     at edu.stanford.nlp.pipeline.AnnotatorImplementations.link(AnnotatorImplementations.java:296) 
     at edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda$getNamedAnnotators$63(StanfordCoreNLP.java:517) 
     at edu.stanford.nlp.pipeline.StanfordCoreNLP.lambda$getDefaultAnnotatorPool$65(StanfordCoreNLP.java:533) 
     at edu.stanford.nlp.util.Lazy$3.compute(Lazy.java:118) 
     at edu.stanford.nlp.util.Lazy.get(Lazy.java:31) 
     at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:146) 
     at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:447) 
     at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:150) 
     at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:146) 
     at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:133) 
     at edu.stanford.nlp.pipeline.StanfordCoreNLPServer.mkStanfordCoreNLP(StanfordCoreNLPServer.java:319) 
     at edu.stanford.nlp.pipeline.StanfordCoreNLPServer.access$500(StanfordCoreNLPServer.java:50) 
     at edu.stanford.nlp.pipeline.StanfordCoreNLPServer$CoreNLPHandler.handle(StanfordCoreNLPServer.java:642) 
     at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79) 
     at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83) 
     at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:82) 
     at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:675) 
     at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79) 
     at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:647) 
     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:748) 
Caused by: edu.stanford.nlp.io.RuntimeIOException: java.io.IOException: Unable to open "edu/stanford/nlp/models/kbp/wikidict.tab.gz" as class path, filename or URL 
     at edu.stanford.nlp.io.IOUtils$GetLinesIterable$1.getReader(IOUtils.java:802) 
     at edu.stanford.nlp.io.IOUtils$GetLinesIterable$1.<init>(IOUtils.java:760) 
     at edu.stanford.nlp.io.IOUtils$GetLinesIterable.iterator(IOUtils.java:758) 
     at edu.stanford.nlp.pipeline.WikidictAnnotator.<init>(WikidictAnnotator.java:58) 
     ... 22 more 
Caused by: java.io.IOException: Unable to open "edu/stanford/nlp/models/kbp/wikidict.tab.gz" as class path, filename or URL 
     at edu.stanford.nlp.io.IOUtils.getInputStreamFromURLOrClasspathOrFileSystem(IOUtils.java:480) 
     at edu.stanford.nlp.io.IOUtils$GetLinesIterable.getStream(IOUtils.java:750) 
     at edu.stanford.nlp.io.IOUtils$GetLinesIterable.access$000(IOUtils.java:719) 
     at edu.stanford.nlp.io.IOUtils$GetLinesIterable$1.getReader(IOUtils.java:792) 
     ... 25 more 

我已經下載wikidict.tab.gz文件,但我無法理解如何使用它。

+0

什麼問題?爲什麼downvote?也提到一些原因。 –

回答

3

@ sv_jan5的回答將正常工作,但下載頁面(https://stanfordnlp.github.io/CoreNLP/download.html)中的English (KBP)模型jar可能更容易下載並在類路徑中包含該模型。命名有點神祕 - KBP代表「知識庫人口」,它包含了實體鏈接模型和新的關係抽取模型。

直接鏈接是here爲3.8.0版本(警告:500MB下載)。

+0

你的答案更清潔。非常感謝! –

0

我有辦法解決這個問題。您需要執行以下步驟:

  1. unzip stanford-corenlp-3.8.0-models.jar
  2. 下載wikidict.tab.gz文件從here
  3. 複製wikidict.tab.gz在EDU文件/斯坦福/ NLP /模型/ KBP
  4. 壓縮到一切stanford-corenlp-3.8.0-models.jar文件
  5. 重新運行服務器